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.gameover = true
|
||
|
|
||
|
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
|