43 lines
1.5 KiB
CoffeeScript
43 lines
1.5 KiB
CoffeeScript
# function: update player position
|
|
update_player_position = () ->
|
|
new_position = player.position
|
|
if keymap[37] and toxy(player.position).x > 0 # left
|
|
new_position = new_position-1
|
|
if keymap[39] and toxy(player.position).x < config.map.width-1 # right
|
|
new_position = new_position+1
|
|
if keymap[38] and toxy(player.position).y > 0 # up
|
|
new_position = new_position - config.map.width
|
|
if keymap[40] and toxy(player.position).y < config.map.height-1 # down
|
|
new_position = new_position + config.map.width
|
|
|
|
switch level[new_position]
|
|
# EXIT
|
|
when 7
|
|
current_level++
|
|
load_level(current_level)
|
|
return
|
|
# DOOR
|
|
when 2
|
|
if inventar.key
|
|
inventar.key = false
|
|
level[new_position] = 0
|
|
# KEY
|
|
when 1
|
|
inventar.key = true
|
|
level[new_position] = 0
|
|
|
|
#console.log enemy_layer
|
|
if enemy_layer[new_position] > 0 and !config.debug
|
|
config.gamestate = gamestates.OVER
|
|
|
|
if level[new_position] in blocks.walkable then player.position = new_position
|
|
|
|
# function: draw player
|
|
draw_player = (position) ->
|
|
pixel(position, config.pixelsize, config.pixelsize, colors.player)
|
|
|
|
break_walls = (position) ->
|
|
level[position-1] = 0 if level[position-1] is 5 or config.debug
|
|
level[position+1] = 0 if level[position+1] is 5 or config.debug
|
|
level[position-config.map.width] = 0 if level[position-config.map.width] is 5 or config.debug
|
|
level[position+config.map.width] = 0 if level[position+config.map.width] is 5 or config.debug |