more cleanup and comment work
This commit is contained in:
parent
36e452b6ed
commit
76988a1af7
10 changed files with 66 additions and 56 deletions
5
Cakefile
5
Cakefile
|
@ -1,5 +0,0 @@
|
||||||
{exec} = require 'child_process'
|
|
||||||
task 'sbuild', 'Build project from ./src/*.coffee to ./build/*.js', ->
|
|
||||||
exec 'coffee --output ./build/ --join game.js --compile ./src/', (err, stdout, stderr) ->
|
|
||||||
throw err if err
|
|
||||||
console.log stdout + stderr
|
|
|
@ -1 +0,0 @@
|
||||||
coffee -o build -c src/main.coffee
|
|
|
@ -1 +1,3 @@
|
||||||
README
|
Not So Alone In The Dark
|
||||||
|
|
||||||
|
This game was created for the BaconGameJam 5 on June, the 8th and 9th in 2013 by Aaron Müller (dev), Jonas Müller (maps) and Ruben Müller (dev). The theme for the gamejam was 'Lights out'.
|
14
docs/TODO
14
docs/TODO
|
@ -1,9 +1,7 @@
|
||||||
+ items
|
# bugfixes
|
||||||
- knicklicht
|
* the outer glow of multiple intersecting lights are not added yet, they are overlapping
|
||||||
- feuerzeug
|
|
||||||
- fackel
|
|
||||||
|
|
||||||
+ schatten addieren
|
# ideas
|
||||||
|
* glowstick
|
||||||
|
* lighter
|
||||||
+ include reihenfolge
|
* torch
|
|
@ -2,11 +2,15 @@ canvas = document.getElementById 'canvas'
|
||||||
context = canvas.getContext '2d'
|
context = canvas.getContext '2d'
|
||||||
context.textAlign = 'center';
|
context.textAlign = 'center';
|
||||||
|
|
||||||
# the config
|
gamestates =
|
||||||
|
RUN = 'RUN'
|
||||||
|
WIN = 'WIN'
|
||||||
|
OVER = 'OVER'
|
||||||
|
|
||||||
config =
|
config =
|
||||||
gamewin: false
|
gamestate: gamestates.RUN
|
||||||
gameover: false
|
|
||||||
pixelsize: 15
|
pixelsize: 15
|
||||||
|
debug_available: true
|
||||||
debug: false
|
debug: false
|
||||||
lights: true
|
lights: true
|
||||||
map:
|
map:
|
||||||
|
@ -43,5 +47,4 @@ levels = []
|
||||||
current_level = 0
|
current_level = 0
|
||||||
level = null
|
level = null
|
||||||
|
|
||||||
# tmp: level
|
|
||||||
shadow_layer = enemy_layer = null
|
shadow_layer = enemy_layer = null
|
|
@ -1,23 +1,26 @@
|
||||||
# get input
|
|
||||||
keymap = []
|
keymap = []
|
||||||
|
|
||||||
addEventListener 'keydown', (event) ->
|
addEventListener 'keydown', (event) ->
|
||||||
keymap[event.keyCode] = true
|
keymap[event.keyCode] = true
|
||||||
|
|
||||||
#console.log event.keyCode
|
# key: plus
|
||||||
#if event.keyCode == 187 then player.lightrange++
|
|
||||||
if event.keyCode == 187
|
if event.keyCode == 187
|
||||||
config.pixelsize += 2
|
config.pixelsize += 2
|
||||||
update_canvas()
|
update_canvas(config.map.width*config.pixelsize+config.map.origin.x, config.map.height*config.pixelsize+config.map.origin.y)
|
||||||
#current_level++
|
|
||||||
#load_level(current_level)
|
# key: minus
|
||||||
#if event.keyCode == 189 then player.lightrange--
|
|
||||||
if event.keyCode == 189
|
if event.keyCode == 189
|
||||||
config.pixelsize -= 2
|
config.pixelsize -= 2
|
||||||
update_canvas()
|
update_canvas(config.map.width*config.pixelsize+config.map.origin.x, config.map.height*config.pixelsize+config.map.origin.y)
|
||||||
if event.keyCode == 68 then config.debug = !config.debug
|
|
||||||
|
# key: d
|
||||||
|
if event.keyCode == 68 and config.debug_available then config.debug = !config.debug
|
||||||
|
|
||||||
|
# key: space
|
||||||
if event.keyCode == 32 then break_walls(player.position)
|
if event.keyCode == 32 then break_walls(player.position)
|
||||||
if event.keyCode == 76 then config.lights = !config.lights
|
|
||||||
|
# key: l
|
||||||
|
if event.keyCode == 76 and config.debug_available then config.lights = !config.lights
|
||||||
|
|
||||||
addEventListener 'keyup', (event) ->
|
addEventListener 'keyup', (event) ->
|
||||||
keymap[event.keyCode] = false
|
keymap[event.keyCode] = false
|
|
@ -24,7 +24,7 @@ init_level = () ->
|
||||||
|
|
||||||
load_level = (number) ->
|
load_level = (number) ->
|
||||||
if number is levels.length
|
if number is levels.length
|
||||||
config.gamewin = true
|
config.gamestate = gamestates.WIN
|
||||||
else
|
else
|
||||||
init_level()
|
init_level()
|
||||||
level = levels[number]
|
level = levels[number]
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# preparing the canvas
|
# updates the canvas
|
||||||
update_canvas = () ->
|
update_canvas = (width, height) ->
|
||||||
canvas.width = config.map.width*config.pixelsize+config.map.origin.x
|
canvas.width = width
|
||||||
canvas.height = config.map.height*config.pixelsize+config.map.origin.y
|
canvas.height = height
|
||||||
update_canvas()
|
|
||||||
|
|
||||||
|
# a range mapper which maps 's' to 'to' based on 'from'
|
||||||
map_range = (from, to, s) ->
|
map_range = (from, to, s) ->
|
||||||
to[0] + (s-from[0]) * (to[1] - to[0]) / (from[1] - from[0])
|
to[0] + (s-from[0]) * (to[1] - to[0]) / (from[1] - from[0])
|
|
@ -1,25 +1,35 @@
|
||||||
main_loop = ->
|
loop_run = ->
|
||||||
if config.gamewin
|
reset_layers()
|
||||||
rect(0, 0, config.map.width*config.pixelsize, config.map.height*config.pixelsize+config.map.origin.y, '#ffffff')
|
calculate_lights()
|
||||||
write(250, 100, 'You won, awesome!', 20, '#000000')
|
|
||||||
else if config.gameover
|
|
||||||
rect(0, 0, config.map.width*config.pixelsize, config.map.height*config.pixelsize+config.map.origin.y, '#ff0000')
|
|
||||||
write(150, 100, 'Oh noes!', 20, '#ffffff')
|
|
||||||
else
|
|
||||||
reset_layers()
|
|
||||||
calculate_lights()
|
|
||||||
|
|
||||||
draw_level(level)
|
draw_level(level)
|
||||||
update_player_position()
|
update_player_position()
|
||||||
|
|
||||||
if config.lights
|
if config.lights
|
||||||
draw_lights('shadow')
|
draw_lights('shadow')
|
||||||
draw_lights('enemy')
|
draw_lights('enemy')
|
||||||
|
|
||||||
draw_player(player.position)
|
draw_player(player.position)
|
||||||
draw_hud()
|
draw_hud()
|
||||||
|
|
||||||
setTimeout main_loop, 50
|
loop_gamewin = ->
|
||||||
|
rect(0, 0, config.map.width*config.pixelsize, config.map.height*config.pixelsize+config.map.origin.y, '#ffffff')
|
||||||
|
write(250, 100, 'You won, awesome!', 20, '#000000')
|
||||||
|
|
||||||
|
loop_gameover = ->
|
||||||
|
rect(0, 0, config.map.width*config.pixelsize, config.map.height*config.pixelsize+config.map.origin.y, '#ff0000')
|
||||||
|
write(150, 100, 'Oh noes!', 20, '#ffffff')
|
||||||
|
|
||||||
|
loop_main = ->
|
||||||
|
switch config.gamestate
|
||||||
|
when gamestates.RUN then loop_run()
|
||||||
|
when gamestates.WIN then loop_gamewin()
|
||||||
|
when gamestates.OVER then loop_gameover()
|
||||||
|
|
||||||
|
setTimeout loop_main, 50
|
||||||
|
|
||||||
|
# load the first level and call the main loop for the first time
|
||||||
|
# those functioncalls are only used once
|
||||||
|
update_canvas()
|
||||||
load_level(current_level)
|
load_level(current_level)
|
||||||
main_loop()
|
loop_main()
|
|
@ -28,7 +28,7 @@ update_player_position = () ->
|
||||||
|
|
||||||
#console.log enemy_layer
|
#console.log enemy_layer
|
||||||
if enemy_layer[new_position] > 0 and !config.debug
|
if enemy_layer[new_position] > 0 and !config.debug
|
||||||
config.gameover = true
|
config.gamestate = gamestates.OVER
|
||||||
|
|
||||||
if level[new_position] in blocks.walkable then player.position = new_position
|
if level[new_position] in blocks.walkable then player.position = new_position
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue