External Exam Download Resources Web Applications Games Recycle Bin

score health lives | gml

 TypeDesc
instance_position(x,y,object)functionalmost identical to instance_place(x,y,object), however instance_position checks for a collision within a specific pixel, whereas instance_place checks for a collision within a collision mask. Both functions return the instance_id of the object collision that we can do stuff with.
object_get_name(object_index)functionwe are using this as a bit of a hack to return the string name of the object we clicked on. basically can tell us which object is running the current piece of code being executed.
otherkeywordopposite of self, used in a with block, can refer back to the original calling object
draw_healthbar(lots of arguments)functiondraws a healthbar, when you look at the arguments, be aware (x1, y1) == (top left corner) and (x2, y2) == (bottom right corner)
draw_set_font(font)functionif you want your game published to HTML5, and you plan on using draw_text(), then you have to specify a font for this to work.. so it is a good habit to get into declaring your fonts explicitly.
SpriteImages
sprPlusOne
sprMinusTwo
sprLifeIcon
ObjectSpriteProperties
objPlusOnesprPlusOneVisible
objMinusTwosprMinusTwoVisible
objPlayerno sprite 

Font:

Room layout:

objPlayer Create

myHealth = 100;
myLives = 3;
myScore = 0;

objPlayer Step

//if a button is clicked:
if (mouse_check_button_pressed(mb_left)) {
  //'with' the other object (if there is one):
  with(instance_position(mouse_x, mouse_y, all)){
  //find out if a button object was under the mouse:
    switch(object_get_name(object_index)){
      //since we are now 'with' the button reference,
      //using 'other' will refer back to objPlayer:
      case "objPlusOne": other.myHealth += 1; break;
      case "objMinusTwo": other.myHealth -=2; break;
    }
  }
  //one point just for clicking somewhere on screen:
  myScore += 1;
}

if (myHealth < 1){
  myLives -= 1;
  myHealth = 100;
}

objPlayer Draw GUI

//***RECTANGULAR HEALTH BAR***

//    draw_healthbar(x1, y1, x2, y2,
//    amount, background_colour, min_colour, max_colour,
//    direction, show_background_colour, show_border);

draw_healthbar(x-50, y-10, x+50, y-5,
               myHealth, c_black, c_red, c_lime,
               0, true, true)
    
for(i = 0; i < myLives; i++){
      draw_sprite(sprLifeIcon, -1, i*100, 0)
}
  
draw_set_font(gameFont);
draw_set_color(c_white);
draw_text(x,y,myScore);

Challenge: use these skills to add lives, score and health to your previous games