diff --git a/demos/old_sokoban.lua b/demos/old_sokoban.lua deleted file mode 100644 index de97f3c..0000000 --- a/demos/old_sokoban.lua +++ /dev/null @@ -1,161 +0,0 @@ -FLOOR = 0 -GOAL = 1 -BOX = 2 -PLAYER = 4 -WALL = 7 - -function init() - mode(2) - level=1 - player={} - menu.init() -end - --- ==================================================================================================== --- MENU (game state) --- ==================================================================================================== -blink=0 - -menu={ - init = function() - update=menu.update - end, - - update = function() - color(15,0) cls() - ink(1) print("\x20\x20\x20\x87\x81\x87\x85\x85\x85\x87\x85\x87\x85\x87\x85\x87\x84\x20\x20\x20",0,2) - ink(9) print("\x20\x20\x20\x83\x85\x85\x85\x8D\x81\x85\x85\x87\x84\x8D\x85\x85\x85\x20\x20\x20",0,3) - ink(11) print("\x20\x20\x20\x83\x81\x83\x81\x81\x81\x83\x81\x83\x81\x81\x81\x81\x81\x20\x20\x20",0,4) - ink(15*flr((blink%60)/30)) print("PRESS SPACE TO PLAY",1,9) - blink=blink+1 - - if btnp(KEY_SPACE) then - level=1 - game.init() - end - end -} - --- ==================================================================================================== --- GAME (game state) --- ==================================================================================================== -game={ - init = function() - update=game.update - level.load_from_string("####|# .#|# ###|#*@ #|# $ #|# ###|####") - end, - - update = function() - border(0) - color(1,0) - cls() - level.draw() - - if btnp(KEY_UP) then level.try_move(0,-1) - elseif btnp(KEY_DOWN) then level.try_move(0,1) - elseif btnp(KEY_LEFT) then level.try_move(-1,0) - elseif btnp(KEY_RIGHT) then level.try_move(1,0) - end - end -} - --- ==================================================================================================== --- LOADING (game state) --- ==================================================================================================== -loading = { - init = function() - border(15) - update=loading.update - wait=120 - end - - function inbetween_update() - color(15,0) - cls() - print("LEVEL "..level,6,6) - print("GOOD JOB!",4,8) - wait=wait-1 - if wait==0 then - level=level+1 - game_init() - end - end -} - -function level_load_from_string(str) - map={} - local pos=0 - local y,x=1,1 - local maxx=0 - map[y] = {} - while pos<#str do - local chr = ascii(str,pos) - if chr == 35 then map[y][x] = WALL end - if chr == 64 then player.x,player.y=x,y map[y][x] = FLOOR end - if chr == 43 then player.x,player.y=x,y map[y][x] = GOAL end - if chr == 36 then map[y][x] = BOX end - if chr == 42 then map[y][x] = GOAL+BOX end - if chr == 46 then map[y][x] = GOAL end - if chr == 32 then map[y][x] = FLOOR end - if chr == 124 then - y=y+1 - map[y] = {} - if maxx < x then maxx=x end - x=0 - end - pos=pos+1 - x=x+1 - end - ox = flr((20-maxx)/2) - oy = flr((15-y)/2) -end - -function level_draw() - for y=1,#map do - for x=1,#map[y] do - if map[y][x] == WALL then color(4,15) print("\127",ox+x-1,oy+y-1) - elseif map[y][x] == BOX then color(0,6) print("\016",ox+x-1,oy+y-1) - elseif map[y][x] == BOX+GOAL then color(0,4) print("\016",ox+x-1,oy+y-1) - elseif map[y][x] == GOAL then color(4,0) print("\144",ox+x-1,oy+y-1) - end - end - end - color(15,0) print("\248",ox+player.x-1,oy+player.y-1) -end - -function try_move(x,y) - if is_empty(x,y) then - move_player(x,y) - elseif is_box(x,y) and is_empty(x*2,y*2) then - move_box(x,y) - end -end - -function is_empty(x,y) - return map[player.y+y][player.x+x] < 2 -end - -function is_box(x,y) - return map[player.y+y][player.x+x] < 4 -end - -function move_player(x,y) - player.x=player.x+x - player.y=player.y+y -end - -function move_box(x,y) - map[player.y+y*2][player.x+x*2] = map[player.y+y*2][player.x+x*2] + BOX - map[player.y+y][player.x+x] = map[player.y+y][player.x+x] - BOX - move_player(x,y) - check_finished() -end - -function check_finished() - for y=1,#map do - for x=1,#map[y] do - if map[y][x] == GOAL then return end - end - end - inbetween_init() -end diff --git a/lua.cpp b/lua.cpp index a86973a..c469200 100644 --- a/lua.cpp +++ b/lua.cpp @@ -431,15 +431,14 @@ const char boot[] = "ink(1) print('G A M E',8,16)" "ink(4) print('S Y S T E M',20,16)" "ink(7) print('mini',9,8)" - "ink(8) print('v0.7.4',34,29)" - "w=0 " + "ink(8) print('v0.7.5',34,29)" + "w=time() " "end " "function update()" - "w=w+1 " - "if w>90 then " + "if time()>w+2000 then " "cls()" "load()" - "end" + "end " "end"; void lua_init(const char* filename, const bool start_playing) {