//okay, c'est parti, let's do un cass brique en un script!!
/*
Bon, script par Roth 'M@D_Doc' René
pour le CBNA
www.lecbna.orgpremière communauté francophone sur game maker!
et en plus, on a un sachem avec nous :crossa:
*/
//bon, là on va d'abord créer les sprites
//spr_ball org au centre
sf=surface_create(17,17)
surface_set_target(sf)
draw_clear(c_fuchsia)//oh oui, j'adore le fuchsia
draw_circle_color(9,9,9,c_white,0,0)
surface_reset_target()
spr_ball=sprite_create_from_surface(sf,0,0,17,17,true,false,9,9)
surface_free(sf)
//spr_batte org en milieu bas
sf=surface_create(64,20)
surface_set_target(sf)
draw_clear(c_fuchsia)
draw_roundrect_color(0,0,64,20,c_gray,c_dkgray,0)
surface_reset_target()
spr_batte=sprite_create_from_surface(sf,0,0,64,20,1,0,32,20)
surface_free(sf)
//spr_brick org en 0,0
sf=surface_create(32,16)
surface_set_target(sf)
draw_clear(c_fuchsia)
draw_roundrect_color(0,0,32,16,c_white,c_black,0)
surface_reset_target()
spr_brick=sprite_create_from_surface(sf,0,0,32,16,1,1,0,0)
surface_free(sf)
//------------------------------------------------------//
// Creation des objets //
//------------------------------------------------------//
//obj_ball
str_create="
move=0;
show_message(string(id));
";
str_step="
if ((x<=0)or (x>=room_width))
{hspeed*=-1;}
if (y<=0)
{vspeed*=-1;}
if (move=0)
{x=global.obj_batte.x;}
pid=instance_place(x+hspeed,y+vspeed,global.obj_brick)
if (pid!=noone)
{
move_contact_solid(direction,speed)
with(pid){hp-=1;}
move_bounce_solid(1)
}
if (move=0 && mouse_check_button_pressed(mb_left))
{
move=1;
speed=12;
direction=random(160)+10;
}
if place_meeting(x+hspeed,y+vspeed,global.obj_batte)
{
move_contact_all(direction,speed);
direction=180-(180*(x-global.obj_batte.x)/64)
direction=min(175,max(5,direction));
}
//si la balle sort
if (y>room_height)
{
move=0;
y=room_height-50;
speed=0;
}
";
obj_ball=object_add()
object_set_sprite(obj_ball,spr_ball)
object_event_add(obj_ball,ev_create,0,str_create)
object_event_add(obj_ball,ev_step,ev_step_normal,str_step)
//obj_batte
str_step="
x=mouse_x;
y=room_height-15;
";
global.obj_batte=object_add()
object_set_sprite(global.obj_batte,global.obj_batte)
object_event_add(global.obj_batte,ev_step,ev_step_normal,str_step)
//obj_brick
str_create="
image_blend=make_color_hsv(id-100000,255,255);
hp=1
"
str_step="
if (hp<=0)
{
score+=5;
instance_destroy();
}
";
global.obj_brick=object_add()
object_set_solid(global.obj_brick,true)
object_set_sprite(global.obj_brick,spr_brick)
object_event_add(global.obj_brick,ev_step,ev_step_normal,str_step)
object_event_add(global.obj_brick,ev_create,ev_step_normal,str_create)
//---------------------------------------------//
//---------Creation de la room-----------------//
//---------------------------------------------//
room1=room_add()
room_set_width(room1,800)
room_set_height(room1,600)
room_set_background_color(room1,c_navy,1)
//---------------------------------------------//
//---------Placement des instances-------------//
//---------------------------------------------//
room_instance_add(room1,0,0,global.obj_batte)
room_instance_add(room1,0,room_height-15-29,obj_ball)
for(Y=32;Y<400;Y+=16)
{
dec=(round(Y/32)=Y/32)*16
for(X=32;X<=32*17;X+=32)
{
room_instance_add(room1,X+dec,Y,global.obj_brick)
}
}
room_goto(room1)