Creamos los "SPRITES",que van ha ser 11 y le damos sus correspondientes nombres:
sprite_pac_left
sprite_pac_right
sprite_pac_up
sprite_pac_down
sprite_wall
sprite_punto_basico
sprita_punto_especial
sprite_live
sprite_bonus
sprite_ghost
sprite_pac_die
object_pac
object_wall
object_punto
object_punto_especial
object_bonus
object_ghost
object_control
Bueno vamos al tema empezaremos con los dos objetos màs complejos que son el objetct_pac y el object_ghost al objetct_pac en el evento "create" insertamos este còdigo:
sprite_index=sprite_pac_right;
hspeed=0;
vspeed=0;
estado=1;
alarm[0]=50;
tendrà estas cualidades:
el còdigo en el evento "step" serà asì:
if keyboard_check_direct(vk_right) then
{
if not place_meeting(x+4,y,object_wall) then
{sprite_index=sprite_pac_right;
vspeed=0;
hspeed=4;}
}
if keyboard_check_direct(vk_left) then
{
if not place_meeting(x-4,y,object_wall) then
{sprite_index=sprite_pac_left;
vspeed=0;
hspeed=-4;}
}
if keyboard_check_direct(vk_up) then
{
if not place_meeting(x,y-4,object_wall) then
{sprite_index=sprite_pac_up;
vspeed=-4;
hspeed=0;}
}
if keyboard_check_direct(vk_down) then
{
if not place_meeting(x,y+4,object_wall) then
{sprite_index=sprite_pac_down;
vspeed=4;
hspeed=0;}
}
en el evento "draw" insertamos este còdigo:
draw_set_alpha(1);
if estado=1 then draw_set_alpha(0.2+random(0.3));
draw_sprite(sprite_index,-1,x,y);
draw_set_alpha(1);
en el evento "animation end" insertamos este otro:
if estado=2 then
{image_speed=0;image_index=4;}
el evento "alarm 0" unicamente esto:
estado=0;
y en el evento "alarm 1" un còdigo seguido de un "jump to start position".
sprite_index=sprite_pac_right;
image_speed=1;
hspeed=0;
vspeed=0;
estado=1;
alarm[0]=50;
en el evento "colision" con el object_wall este còdigo:
hspeed=0;
vspeed=0;
y en el evento "colision" con el object_ghost este otro:
if other.bulnerable>0 then exit
if estado>0 then exit
sprite_index=sprite_pac_die;
image_speed=0.2;
hspeed=0;
vspeed=0;
estado=2;
lives+=-1;
alarm[1]=20;
y hemos acabado con el object_pac ahora vamos con el object_ghost.
en el evento "create" le damos al objeto 4 posibles direciones y le añadimos este còdigo:
bulnerable=0;image_speed=0;image_index=0;
bulnerable=0;image_speed=0;image_index=0;
en el evento "alarm 0" le añadimos este otro seguido de un "jump to start position".
bulnerable=0
en el evento "step" insertamos lo siguiente:
if bulnerable>0 then bulnerable+=-1
if (hspeed == 0)
{
if (random(3)<1 && place_free(x-4,y))
{ hspeed = -4; vspeed = 0;}
if (random(3)<1 && place_free(x+4,y))
{ hspeed = 4; vspeed = 0;}
}
else
{
if (random(3)<1 && place_free(x,y-4))
{ hspeed = 0; vspeed = -4;}
if (random(3)<1 && place_free(x,y+4))
{ hspeed = 0; vspeed = 4;}
}
if direction=0 then image_index=0;
if direction=180 then image_index=1;
if direction=90 then image_index=2;
if direction=270 then image_index=3;
en el evento "colision" con el object_pac este còdigo:
if bulnerable>0 then {x=-1000;alarm[0]=100;score+=+100;hspeed=0;vspeed=0;}
y en el evento "colision" con el object_wall estas cualidades:
draw_set_alpha(1);
if bulnerable>0 then draw_set_alpha(0.2+random(0.3));
draw_sprite(sprite_ghost,image_index,x,y);
draw_set_alpha(1);
El object_punto tendrà unicamente un evento de "colisiòn" con el object_pac donde añadiremos lo siguiente:
score+=+10;
instance_destroy();
score+=+10;
instance_destroy();
y el object_punto_especial serà parecido lo emparentamos con object_punto y en el evento de "colisiòn" con el object_pac hacemos que la direciòn del object_ghost se revierta.
score+=+10;
if instance_exists(object_ghost) then object_ghost.bulnerable=200;
instance_destroy();
en el evento "alarm 0" esto:
visible=true;
y en el evento "alarm 1" eso otro:
object_control.alarm[0]=100+random(100);
instance_destroy();
en el evento "colisiòn" con object_pac este còdigo:
score+=+500;
object_control.alarm[0]=100+random(100);
instance_destroy();
y en el evento "colisiòn" con object_wall este otro:
instance_create(random(room_width),random(room_height),object_bonus);
instance_destroy();
ahora vamos con el ùltimo objeto denominado object_control,bièn en el evento "create" añadimos esto:
score=0;
lives=3;
global.nivel=1;
alarm[0]=100;
en el evento "alarm 0" esto:
instance_create(random(room_width),random(room_height),object_bonus);
y en el evento "step" esto:
if not instance_exists(object_punto) then game_end();
ahora en el evento "draw" dibujamos en la pantalla el nùmero de vidas y demàs valores del juego.
draw_set_font(font0);
draw_set_colour(c_yellow);
draw_text(140,560,score);
draw_text(15,560,'score x');
draw_text(550,5,global.nivel);
draw_text(425,5,'stage x');
score+=+500;
object_control.alarm[0]=100+random(100);
instance_destroy();
y en el evento "colisiòn" con object_wall este otro:
instance_create(random(room_width),random(room_height),object_bonus);
instance_destroy();
ahora vamos con el ùltimo objeto denominado object_control,bièn en el evento "create" añadimos esto:
score=0;
lives=3;
global.nivel=1;
alarm[0]=100;
en el evento "alarm 0" esto:
instance_create(random(room_width),random(room_height),object_bonus);
if not instance_exists(object_punto) then game_end();
ahora en el evento "draw" dibujamos en la pantalla el nùmero de vidas y demàs valores del juego.
draw_set_font(font0);
draw_set_colour(c_yellow);
draw_text(140,560,score);
draw_text(15,560,'score x');
draw_text(550,5,global.nivel);
draw_text(425,5,'stage x');
No hay comentarios:
Publicar un comentario