Friday 26 March 2021

【GAMEMAKER】Simple Battle System

 Information about object: obj_setup

Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:

///set initial variables 
global.player_wins=0;
global.computer_wins=0;
global.draws=0;
enum play {
none,
water,
fire,
earth,
ice
}
global.computer_play=play.none;
global.player_play=play.none;

Information about object: obj_player_play
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:

///set up
global.text="Player To Go";
Step Event:
execute code:

///detect key press for move
if (keyboard_check(ord('1')))
{
global.player_play=play.water;
instance_create(x,y,obj_computer_play);
instance_destroy();
}
if (keyboard_check(ord('2')))
{
global.player_play=play.fire;
instance_create(x,y,obj_computer_play);
instance_destroy();
}
if (keyboard_check(ord('3')))
{
global.player_play=play.earth;
instance_create(x,y,obj_computer_play);
instance_destroy();
}
if (keyboard_check(ord('4')))
{
global.player_play=play.ice;
instance_create(x,y,obj_computer_play);
instance_destroy();
}
Information about object: obj_computer_play
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:

///For Computer Hand
global.text="Computer Playing";
play=irandom_range(1,4);//choose a random number

switch (play)
{
case 1:
global.computer_play=play.water;
break;
case 2:
global.computer_play=play.fire;
break;
case 3:
global.computer_play=play.earth;
break;
case 4:
global.computer_play=play.ice;
break;
}
alarm[0]=room_speed*1;
Alarm Event for alarm 0:
execute code:

///display result
instance_create(x,y,obj_result);
instance_destroy();
Information about object: obj_global_drawing
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Draw Event:
execute code:

///draw stuff

//draw info box
draw_sprite(spr_battle_loop,0,400,450);
//draw game results
draw_set_font(font_text);
draw_set_halign(fa_center);
draw_set_colour(c_white);
draw_text(room_width/2,550,global.text);
draw_text(room_width/2,600,"Player Wins "+string(global.player_wins));
draw_text(room_width/2,650,"Computer Wins "+string(global.computer_wins));
draw_text(room_width/2,700,"Draws "+string(global.draws));

switch (global.computer_play)
{
case play.ice:
draw_sprite(spr_ice,0,room_width-200,200);
break;
case play.water:
draw_sprite(spr_water,0,room_width-200,200);
break;
case play.earth:
draw_sprite(spr_ground,0,room_width-200,200);
break;
case play.fire:
draw_sprite(spr_fire,0,room_width-200,200);
break;
}

switch (global.player_play)
{
case play.ice:
draw_sprite(spr_ice,0,200,200);
break;
case play.water:
draw_sprite(spr_water,0,200,200);
break;
case play.earth:
draw_sprite(spr_ground,0,200,200);
break;
case play.fire:
draw_sprite(spr_fire,0,200,200);
break;
}

//draw the players
draw_sprite(spr_player_static,0,100,150);
draw_sprite(spr_pirate_static,0,700,150);
Information about object: obj_result
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:

///check result
result=scr_play(global.player_play, global.computer_play);
switch (result)
{
case -1:
global.computer_wins++;
global.text="Computer Wins";
break;
case 0:
global.draws++;
global.text="Draw";
break;
case 1:
global.player_wins++;
global.text="Player Wins";
break;
}
alarm[0]=room_speed*4;


///check score
if global.player_wins==5 room_goto(room_player_win);
if global.computer_wins==5 room_goto(room_computer_win);
Alarm Event for alarm 0:
execute code:

///done, player to play
global.computer_play=play.none;
global.player_play=play.none;
global.text="";
room_restart();
Information about object: obj_player
Sprite: spr_idle_down
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:

///set up
enum player_state  {
idle,
up,
down,
left,
right
}

dir=player_state.down;
is_moving=false;
image_speed=0.5;
Step Event:
execute code:

///keypress code
if (keyboard_check(vk_left))
{
dir=player_state .left;
is_moving=true;
}
else
if (keyboard_check(vk_right))
{
dir=player_state .right;
is_moving=true;
}
else
if (keyboard_check(vk_up))
{
dir=player_state .up;
is_moving=true;
}
else
if (keyboard_check(vk_down))
{
dir=player_state .down;
is_moving=true;
}
else
{
is_moving=false;
}

execute code:

///movement
if is_moving
{
switch (dir)
{
case player_state .up:
y -= 4;
break;

case player_state .down:
y += 4;
break;

case player_state .left:
x -= 4;
break;

case player_state .right:
x += 4;
break;
}
}
execute code:

///animation
if is_moving
{
switch (dir)
{
case player_state .up:
sprite_index=spr_walk_up;
break;

case player_state .down:
sprite_index=spr_walk_down;
break;

case player_state .left:
sprite_index=spr_walk_left;
break;

case player_state .right:
sprite_index=spr_walk_right;
break;
}
}
else
{
switch (dir)
{
case player_state .up:
sprite_index=spr_idle_up;
break;

case player_state .down:
sprite_index=spr_idle_down;
break;

case player_state .left:
sprite_index=spr_idle_left;
break;

case player_state .right:
sprite_index=spr_idle_right;
break;
}
}

Collision Event with object obj_pirate:
execute code:

room_goto(room_battle);
Information about object: obj_pirate
Sprite: spr_pirate
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object

Information about object: obj_player_win
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Draw Event:
execute code:

///display battle result
draw_text(400,400,"Player Wins");

Information about object: obj_computer_win
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Draw Event:
execute code:

///display battle result
draw_text(400,400,"Computer Wins");

Information about object scr_play

///scr_play(global.player_play, global.computer_play);
switch (argument0) {
case play.fire:
switch (argument1) {
case play.water: return -1;
case play.earth: return 1;
default: return 0;
}; break;
case play.earth:
switch (argument1) {
case play.fire: return -1;
case play.ice: return 1;
default: return 0;
}; break;
case play.ice:
switch (argument1) {
case play.water: return 1;
case play.earth: return -1;
default: return 0;
}; break;
case play.water:
switch (argument1) {
case play.ice: return -1;
case play.fire: return 1;
default: return 0;
}; break;


}

No comments:

Post a Comment

BREAKING: North Carolina automotive group acquires 7 Upstate dealerships

Breaking news from GSA Business Report Click here to view this message in a browser window. ...