-

miércoles, 22 de octubre de 2014

TUTORIAL 2,juego tipo asteroids

Aquì un sencillo ejemplo de como crear un juego tipo "ASTEROIDS"con lo màs bàsico.

TUTORIAL 2,juego tipo asteroids

Como siempre primero crearemos los "SPRITES",unicamente usaremos 5 que llamaremos asì:

sprite_nave1
sprite_disp1
sprite_meteoro1
sprite_meteoro2
sprite_meteoro3

sprites bàsicos

Ahora crearemos 7 objetos que llamaremos asì:

object_nave
object_disp
object_parent_meteoros
object_meteoro_grande
object_meteoro_mediano
object_meteoro_pequeno
object_control


Bièn al objetct_nave le añadiremos las siguientes caracterìsticas:
en el evento "create" este còdigo:

image_speed=0.5;
image_angle=0;
direction=0;
friction=0.1;
x=room_width/2;
y=room_height/2;


el evento "colision" con el
object_parent_meteoros pondremos efectos de explosiòn,escribiremos este còdigo y destruiremos el objeto:

lives+=-1;
if lives<1 then game_end();
object_control.alarm[1]=10;



Gamemaker studio














Tanto en el evento "key press left" y "key press right" estos còdigos respectivamente:
//left

direction+=+4;
image_angle+=+4;


//right

direction+=-4;
image_angle+=-4;

en el evento "key press up" este

speed=8;

y en el evento "press space" este otro

instance_create(self.x,self.y,object_disp);




En el object_parent_meteoros sòlo pondremos un evento que tambièn deberemos atribuir al object_nave

Gamemaker studio





Ahora en los objetos llamados object_meteoro_grande,object_meteoro_mediano y object_meteoro_pequeno insertaremos este còdigo en el evento "create" y emparentaremos los 3 objetos con object_parent_meteoros:

image_index=0;
image_speed=0.1+random(0.4);
speed=4+random(4);
direction=random(360);


Y en el evento "colisiòn" con object_disp este otro còdigo para object_meteoro_grande:

score+=+50;
instance_create(object_meteoro_mediano,x,y);
instance_create(object_meteoro_mediano,x,y);
instance_destroy();

para object_meteoro_mediano:

score+=+50;
instance_create(object_meteoro_pequeno,x,y);
instance_create(object_meteoro_pequeno,x,y);
instance_destroy();

y para object_meteoro_pequeno unicamente:

score+=+50;
instance_destroy();


Vamos con el ùltimo objeto denominado object_control en el que insertaremos el siguiente còdigo en el evento "create":

background_index[0]=back_fondo1a;
score=0;
lives=3;
global.nivel=1;
alarm[0]=2;

y en el evento "alarm 0" este otro para animar el background de la pantalla de juego:

alarm[0]=2;
if background_index[0]=back_fondo1a then {background_index[0]=back_fondo1b;exit};
if background_index[0]=back_fondo1b then {background_index[0]=back_fondo1c;exit};
if background_index[0]=back_fondo1c then {background_index[0]=back_fondo1d;exit};
if background_index[0]=back_fondo1d then {background_index[0]=back_fondo1e;exit};
if background_index[0]=back_fondo1e then {background_index[0]=back_fondo1f;exit};
if background_index[0]=back_fondo1f then {background_index[0]=back_fondo1a;exit};


En el evento "alarm 1" este pequeño còdigo:

instance_create(0,0,object_nave);
En el evento "step" este otro còdigo:

if not instance_exists(object_parent_meteoros) then {
global.nivel+=+1;
lives+=+1;
{repeat(4+global.nivel);
instance_create(random(room_width),random(room_height),object_meteoro_grande);
}
}
if global.nivel>10 then game_end();



Por ùltimo en el evento "draw" insertaremos el còdigo para visualizar los valores del juego,nivel,puntos,etc.ademàs de hacer que se vea la segunda view de la "room" en forma de minimapa.

if view_current=0 then
{draw_rectangle(view_xview+530,view_yview,view_xview+640,view_yview+110,0);
draw_text(view_xview+20,view_yview+15,'Score:');
draw_text(view_xview+150,view_yview+15,score);
draw_text(view_xview+500,view_yview+440,'Level:');
draw_text(view_xview+600,view_yview+440,global.nivel);
}


Gamemaker studio















Las 6 subimàgenes del background en forma de gif animado.


background animado

Ahora para terminar vemos los valores de las dos "view" que hemos usado en la "room" que tiene 1280x960 pixels.

Gamemaker studio

Y ya tenemos la estructura bàsica de nuestro juego.

TUTORIAL 2,juego tipo asteroids




No hay comentarios:

Publicar un comentario