precious code

This commit is contained in:
Ruben Müller 2013-07-11 22:55:45 +02:00
parent 9d6426a6f1
commit 930cd7691e
5 changed files with 40 additions and 35 deletions

View file

@ -38,7 +38,7 @@ map_range = function(from, to, s) {
return to[0] + (s - from[0]) * (to[1] - to[0]) / (from[1] - from[0]);
};
// Generated by CoffeeScript 1.6.3
var blocks, canvas, colors, config, context, current_level, enemy_layer, gamestates, inventar, level, levels, player, shadow_layer;
var blocks, canvas, colors, config, context, current_level, enemy_layer, gamestates, inventar, level, levels, player, selected_layer, shadow_layer;
canvas = document.getElementById('canvas');
@ -98,7 +98,11 @@ current_level = 0;
level = null;
shadow_layer = enemy_layer = null;
shadow_layer = null;
enemy_layer = null;
selected_layer = null;
// Generated by CoffeeScript 1.6.3
var add_level, draw_level, init_level, load_level, parse_levelentities, reset_layers;
@ -136,15 +140,15 @@ draw_level = function(level) {
};
reset_layers = function() {
var enemy_layer, shadow_layer, _i, _j, _ref, _ref1, _results, _results1;
shadow_layer = (function() {
var _i, _j, _ref, _ref1, _results, _results1;
window.shadow_layer = (function() {
_results = [];
for (var _i = 0, _ref = config.map.width * config.map.height; 0 <= _ref ? _i <= _ref : _i >= _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }
return _results;
}).apply(this).map(function() {
return 0;
});
return enemy_layer = (function() {
return window.enemy_layer = (function() {
_results1 = [];
for (var _j = 0, _ref1 = config.map.width * config.map.height; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; 0 <= _ref1 ? _j++ : _j--){ _results1.push(_j); }
return _results1;
@ -166,17 +170,16 @@ init_level = function() {
};
load_level = function(number) {
var level;
if (number === levels.length) {
return config.gamestate = gamestates.WIN;
} else {
init_level();
level = levels[number];
window.level = levels[number];
return parse_levelentities(level);
}
};
parse_levelentities = function() {
parse_levelentities = function(level) {
var block, position, _i, _len, _results;
_results = [];
for (position = _i = 0, _len = level.length; _i < _len; position = ++_i) {
@ -282,16 +285,17 @@ break_walls = function(position) {
};
// Generated by CoffeeScript 1.6.3
var calculate_lightray, calculate_lights, draw_lights, illuminate,
_this = this,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
calculate_lightray = function(x1, y1, x2, y2, type) {
var dx, dy, hit_wall, pixel_x1, pixel_x2, pixel_y1, pixel_y2, s, selected_layer, t, _ref, _results;
var dx, dy, hit_wall, pixel_x1, pixel_x2, pixel_y1, pixel_y2, s, t, _ref, _results;
switch (type) {
case 'enemy':
selected_layer = enemy_layer;
window.selected_layer = enemy_layer;
break;
default:
selected_layer = shadow_layer;
window.selected_layer = shadow_layer;
}
pixel_x1 = x1 * config.pixelsize + (config.pixelsize / 2);
pixel_y1 = y1 * config.pixelsize + (config.pixelsize / 2);
@ -390,15 +394,15 @@ calculate_lights = function() {
};
draw_lights = function(type) {
var alpha, brightness, color, position, selected_layer, _i, _len, _ref, _results;
var alpha, brightness, color, position, _i, _len, _ref, _results;
switch (type) {
case 'enemy':
color = '255, 0, 0';
selected_layer = enemy_layer;
window.selected_layer = enemy_layer;
break;
default:
color = '0, 0, 0';
selected_layer = shadow_layer;
window.selected_layer = shadow_layer;
}
_results = [];
for (position = _i = 0, _len = selected_layer.length; _i < _len; position = ++_i) {
@ -449,7 +453,8 @@ addEventListener('keyup', function(event) {
return keymap[event.keyCode] = false;
});
// Generated by CoffeeScript 1.6.3
var loop_gameover, loop_gamewin, loop_main, loop_run;
var loop_gameover, loop_gamewin, loop_main, loop_run,
_this = this;
loop_run = function() {
reset_layers();
@ -488,7 +493,7 @@ loop_main = function() {
return setTimeout(loop_main, 50);
};
update_canvas();
update_canvas(config.map.width * config.pixelsize, config.map.height * config.pixelsize + config.map.origin.y);
load_level(current_level);

View file

@ -46,5 +46,6 @@ inventar =
levels = []
current_level = 0
level = null
shadow_layer = enemy_layer = null
shadow_layer = null
enemy_layer = null
selected_layer = null

View file

@ -14,12 +14,11 @@ draw_level = (level) ->
pixel(position, config.pixelsize, config.pixelsize, color)
reset_layers = () ->
shadow_layer = [0..(config.map.width*config.map.height)].map -> 0
enemy_layer = [0..(config.map.width*config.map.height)].map -> 0
window.shadow_layer = [0..(config.map.width*config.map.height)].map -> 0
window.enemy_layer = [0..(config.map.width*config.map.height)].map -> 0
init_level = () ->
level = [0..(config.map.width*config.map.height)].map -> 0
inventar.key = false
load_level = (number) ->
@ -27,10 +26,10 @@ load_level = (number) ->
config.gamestate = gamestates.WIN
else
init_level()
level = levels[number]
window.level = levels[number]
parse_levelentities(level)
parse_levelentities = ->
parse_levelentities = (level) ->
for block, position in level
switch block
when 4

View file

@ -1,7 +1,7 @@
calculate_lightray = (x1, y1, x2, y2, type) ->
calculate_lightray = (x1, y1, x2, y2, type) =>
switch type
when 'enemy' then selected_layer = enemy_layer
else selected_layer = shadow_layer
when 'enemy' then window.selected_layer = enemy_layer
else window.selected_layer = shadow_layer
pixel_x1 = x1*config.pixelsize + (config.pixelsize/2)
pixel_y1 = y1*config.pixelsize + (config.pixelsize/2)
@ -61,7 +61,7 @@ calculate_lightray = (x1, y1, x2, y2, type) ->
t += s
illuminate = (x1, y1, range, type = 'shadow') ->
illuminate = (x1, y1, range, type = 'shadow') =>
r = 0
while r < Math.PI*2
@ -78,7 +78,7 @@ illuminate = (x1, y1, range, type = 'shadow') ->
calculate_lightray(x1, y1, x2, y2, type)
r += 0.03
calculate_lights = () ->
calculate_lights = () =>
#illuminate(8, 8, 5)
illuminate(toxy(player.position).x, toxy(player.position).y, player.lightrange)
@ -89,14 +89,14 @@ calculate_lights = () ->
when 8
illuminate(toxy(position).x, toxy(position).y, 4, 'enemy')
draw_lights = (type) ->
draw_lights = (type) =>
switch type
when 'enemy'
color = '255, 0, 0'
selected_layer = enemy_layer
window.selected_layer = enemy_layer
else
color = '0, 0, 0'
selected_layer = shadow_layer
window.selected_layer = shadow_layer
for brightness, position in selected_layer
switch type

View file

@ -1,4 +1,4 @@
loop_run = ->
loop_run = =>
reset_layers()
calculate_lights()
@ -16,11 +16,11 @@ 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 = ->
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 = ->
loop_main = =>
switch config.gamestate
when gamestates.RUN then loop_run()
when gamestates.WIN then loop_gamewin()
@ -30,6 +30,6 @@ loop_main = ->
# load the first level and call the main loop for the first time
# those functioncalls are only used once
update_canvas()
update_canvas(config.map.width*config.pixelsize, config.map.height*config.pixelsize+config.map.origin.y)
load_level(current_level)
loop_main()