comienza lo güeno !

global settings

excamera

importar la extensión desde el .zip que se han descargado con los recursos del taller

sprites

spr_wall y spr_torch son los únicos que no tienen el origen centrado

sounds

usar uncompressed

backgrounds

use as tileset; tile: horizontal; tile: vertical; tile width: 16; tile height: 16; 0; 0; 0; 0;

objects !

obj_genesis

* initialize vars

lives = 3;
score = 0;
alarm[0] = room_speed * 1;

obj_ctr_game

* initialize camera

global._camera = ex_camera_create(0, obj_player);
ex_camera_set_zoom_scale(global._camera, 50);
ex_camera_set_bounds(global._camera, 0, 0, 1024, 320);
ex_camera_set_fade_alpha(global._camera, 1);
ex_camera_fade_in(global._camera, 60);
ex_camera_set_easing(global._camera, ease_out_quad);
ex_camera_set_safe_area(global._camera, 256);

obj_player

* initialize vars

image_speed_idle = 0.1;
image_speed_walk = 0.25;
image_speed_jump = 0;
image_speed_fall = 0;
image_speed = image_speed_idle;
dead = false;
grav = 0.5;
hsp = 0;
vsp = 0;
jumpspeed = 7;
movespeed = 3;
* update player

key_right = keyboard_check(ord("D")) * !dead;
key_left = -keyboard_check(ord("A")) * !dead;
key_jump = (keyboard_check(vk_space) || keyboard_check(ord("W"))) && !dead;
move = key_left + key_right;
hsp = move * movespeed;

if (vsp < 10) {
  vsp += grav;
}

if (place_meeting(x, y + 1, obj_wall)) {
  vsp = key_jump * -jumpspeed;

  if (key_jump) {
    audio_play_sound(sfx_jump, 1, false);
  }
}

if (place_meeting(x + hsp, y, obj_wall)) {
  while (!place_meeting(x + sign(hsp), y, obj_wall)) {
    x += sign(hsp);
  }

  hsp = 0;
}

if (place_meeting(x, y + vsp, obj_wall)) {
  while (!place_meeting(x, y + sign(vsp), obj_wall)) {
    y += sign(vsp);
  }

  vsp = 0;
}

x += hsp;
y += vsp;

if (move != 0) {
  image_xscale = move;
  ex_camera_scroll_to(global._camera, move * 40, 0, 20);
}

if (place_meeting(x, y + 1, obj_wall)) {
  if (hsp != 0) {
    sprite_index = spr_player_walk;
    image_speed = image_speed_walk;
  } else {
    sprite_index = spr_player_idle;
    image_speed = image_speed_idle;
  }
} else {
  if (vsp < 0) {
    sprite_index = spr_player_jump;
    image_speed = image_speed_jump;
  } else {
    sprite_index = spr_player_fall;
    image_speed = image_speed_fall;
  }
}

obj_baddie

* initialize vars

hp = 1;
image_speed = 0.25;
grav = 0.5;
hsp = 0;
vsp = 0;
movespeed = 2;
dir = -1;
fear_of_heights = false;
* update enemy

hsp = dir * movespeed;

if (vsp < 10) {
  vsp += grav;
}

if (place_meeting(x + hsp, y, obj_wall)) {
  while (!place_meeting(x + sign(hsp), y, obj_wall)) {
    x += sign(hsp);
  }

  dir *= -1;
  hsp = 0;
}

if (place_meeting(x, y + vsp, obj_wall)) {
  while (!place_meeting(x, y + sign(vsp), obj_wall)) {
    y += sign(vsp);
  }

  vsp = 0;

  if (fear_of_heights && !position_meeting(x + (8 * dir), y + 16, obj_wall)) {
    dir *= -1;
  }
}

x += hsp;
y += vsp;

if (dir != 0) {
  image_xscale = dir;
}

obj_baddie_nofall

obj_wall

nothing here... :sad:

obj_torch

obj_gold

* update

if (vsp < 10) {
  vsp += grav;
}

if (place_meeting(x, y + vsp, obj_wall)) {
  while (!place_meeting(x, y + sign(vsp), obj_wall)) {
    y += sign(vsp);
  }

  vsp = 0;
}

y += vsp;

levels

genesis

level