switches implemented
This commit is contained in:
21
abad.lua
21
abad.lua
@@ -132,8 +132,8 @@ end
|
|||||||
function abad_state_jumping()
|
function abad_state_jumping()
|
||||||
abad.frame=3
|
abad.frame=3
|
||||||
abad.wait=abad.wait+1
|
abad.wait=abad.wait+1
|
||||||
print(abad.x,1,50)
|
--print(abad.x,1,50)
|
||||||
print(abad.y,10,50)
|
--print(abad.y,10,50)
|
||||||
if abad.wait==6 then
|
if abad.wait==6 then
|
||||||
abad.wait=0
|
abad.wait=0
|
||||||
|
|
||||||
@@ -146,7 +146,22 @@ function abad_state_jumping()
|
|||||||
if abad.y>0 then
|
if abad.y>0 then
|
||||||
if check_tile(abad.hab,abad.x+4,abad.y-2)~=tiletype.block then
|
if check_tile(abad.hab,abad.x+4,abad.y-2)~=tiletype.block then
|
||||||
if (abad.x+4)&7==0 or check_tile(abad.hab,abad.x+12,abad.y-2)~=tiletype.block then
|
if (abad.x+4)&7==0 or check_tile(abad.hab,abad.x+12,abad.y-2)~=tiletype.block then
|
||||||
abad.y=abad.y-2
|
|
||||||
|
if check_tile(abad.hab,abad.x+4,abad.y-2)==tiletype.switch then
|
||||||
|
-- Executar el switch
|
||||||
|
local xx=min(11,max(0,flr((abad.x+4)/8)))
|
||||||
|
local yy=min(5,max(0,flr((abad.y-2)/8)))
|
||||||
|
switches.start(abad.hab,1+xx+yy*12)
|
||||||
|
--cls(4)
|
||||||
|
elseif (abad.x+4)&7~=0 and check_tile(abad.hab,abad.x+12,abad.y-2)==tiletype.switch then
|
||||||
|
-- Executar el switch
|
||||||
|
local xx=min(11,max(0,flr((abad.x+12)/8)))
|
||||||
|
local yy=min(5,max(0,flr((abad.y-2)/8)))
|
||||||
|
switches.start(abad.hab,1+xx+yy*12)
|
||||||
|
--cls(4)
|
||||||
|
else
|
||||||
|
abad.y=abad.y-2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|||||||
2
game.ini
2
game.ini
@@ -2,4 +2,4 @@ title=Cacaus
|
|||||||
width=128
|
width=128
|
||||||
height=96
|
height=96
|
||||||
zoom=4
|
zoom=4
|
||||||
files=score.lua,map.lua,mapa.lua,cacau.lua,caco.lua,zombie.lua,abad.lua,main.lua
|
files=score.lua,switches.lua,map.lua,mapa.lua,cacau.lua,caco.lua,zombie.lua,abad.lua,main.lua
|
||||||
|
|||||||
14
main.lua
14
main.lua
@@ -57,7 +57,7 @@ function _update()
|
|||||||
|
|
||||||
if mode==modes.editing then
|
if mode==modes.editing then
|
||||||
draw_hab(abad.hab,0,0,true)
|
draw_hab(abad.hab,0,0,true)
|
||||||
text(abad.hab,100,10,2)
|
text(abad.hab,120,1,2)
|
||||||
|
|
||||||
sspr(0,64,128,48,0,48)
|
sspr(0,64,128,48,0,48)
|
||||||
color(3)
|
color(3)
|
||||||
@@ -84,6 +84,11 @@ function _update()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local mx,my=mousex(),mousey()
|
local mx,my=mousex(),mousey()
|
||||||
|
if mx>>3 < 12 and my>>3 < 6 then
|
||||||
|
text(mx>>3,100,10,2)
|
||||||
|
text(my>>3,111,10,2)
|
||||||
|
text((mx>>3)+(my>>3)*12,118,10,2)
|
||||||
|
end
|
||||||
if mbtn(1) then
|
if mbtn(1) then
|
||||||
if my>=48 then
|
if my>=48 then
|
||||||
seltile=(mx>>3)+((my-48)>>3)*16
|
seltile=(mx>>3)+((my-48)>>3)*16
|
||||||
@@ -95,6 +100,10 @@ function _update()
|
|||||||
mapa_set_tile(abad.hab,mx>>3,my>>3,255)
|
mapa_set_tile(abad.hab,mx>>3,my>>3,255)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if mx>>3 < 12 and my>>3 < 6 then
|
||||||
|
local tx,ty=(mx>>3)<<3,(my>>3)<<3
|
||||||
|
rect(tx,ty,tx+8,ty+8,3)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
draw_hab(abad.hab,0,0)
|
draw_hab(abad.hab,0,0)
|
||||||
text(abad.hab,1,1,2)
|
text(abad.hab,1,1,2)
|
||||||
@@ -114,7 +123,8 @@ function _update()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
cacau.update()
|
cacau.update()
|
||||||
|
switches.update()
|
||||||
|
|
||||||
if btnp(KEY_RETURN) then
|
if btnp(KEY_RETURN) then
|
||||||
mode=modes.editing
|
mode=modes.editing
|
||||||
end
|
end
|
||||||
|
|||||||
24
map.lua
24
map.lua
@@ -1,11 +1,11 @@
|
|||||||
mapa={
|
mapa={
|
||||||
-- 1
|
-- 1
|
||||||
{
|
{
|
||||||
18,19,20,21,20,21,20,21,20,21,20,21,
|
18,19,20,21,20,21,20,21,18,19,20,21,
|
||||||
16,72,255,255,255,255,255,255,255,255,255,255,
|
16,72,255,255,255,15,255,255,255,17,255,255,
|
||||||
16,88,255,255,255,255,255,255,255,255,255,255,
|
16,88,255,255,255,255,255,255,255,17,255,255,
|
||||||
16,255,255,255,255,255,255,255,255,255,255,255,
|
16,255,255,255,255,255,255,255,255,38,255,255,
|
||||||
16,255,255,255,255,255,255,255,255,255,255,255,
|
16,255,255,255,255,255,255,255,255,38,255,255,
|
||||||
20,21,20,21,20,21,20,21,20,21,20,21,
|
20,21,20,21,20,21,20,21,20,21,20,21,
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -501,9 +501,9 @@ mapa={
|
|||||||
},
|
},
|
||||||
-- 51
|
-- 51
|
||||||
{
|
{
|
||||||
41,45,44,45,44,45,45,255,255,255,44,45,
|
42,43,44,45,44,45,45,255,255,255,44,45,
|
||||||
40,255,255,255,255,255,255,255,255,41,255,255,
|
40,72,255,255,255,255,255,255,255,41,255,255,
|
||||||
40,255,255,255,255,255,255,255,3,255,255,255,
|
40,88,255,255,255,255,255,255,3,255,255,255,
|
||||||
40,255,255,255,255,255,255,3,255,255,255,255,
|
40,255,255,255,255,255,255,3,255,255,255,255,
|
||||||
40,255,255,255,255,255,3,255,255,255,255,255,
|
40,255,255,255,255,255,3,255,255,255,255,255,
|
||||||
44,45,44,45,44,45,44,45,44,45,44,45,
|
44,45,44,45,44,45,44,45,44,45,44,45,
|
||||||
@@ -651,12 +651,12 @@ mapa={
|
|||||||
},
|
},
|
||||||
-- 66
|
-- 66
|
||||||
{
|
{
|
||||||
20,21,20,21,20,21,20,21,20,21,20,21,
|
48,49,48,48,50,49,48,50,49,48,48,50,
|
||||||
255,255,255,255,255,255,255,255,255,255,255,255,
|
255,255,255,255,255,255,255,255,255,255,255,255,
|
||||||
255,255,255,255,255,255,255,255,255,255,255,255,
|
255,255,255,255,255,255,255,255,255,255,255,255,
|
||||||
255,255,255,255,255,255,255,255,255,255,255,255,
|
42,43,42,43,42,43,255,255,255,255,255,255,
|
||||||
255,255,255,255,255,255,255,255,255,255,255,255,
|
255,255,255,255,42,43,3,255,255,255,255,255,
|
||||||
20,21,20,21,20,21,20,21,20,21,20,21,
|
255,255,255,255,42,43,42,43,42,43,42,43,
|
||||||
|
|
||||||
},
|
},
|
||||||
-- 67
|
-- 67
|
||||||
|
|||||||
10
mapa.lua
10
mapa.lua
@@ -1,5 +1,5 @@
|
|||||||
--mapa={}
|
--mapa={}
|
||||||
tiletype={void=0,stair=1,half=2,block=3}
|
tiletype={void=0,stair=1,switch=2,half=3,block=4}
|
||||||
|
|
||||||
function mapa_new()
|
function mapa_new()
|
||||||
for my=0,7 do
|
for my=0,7 do
|
||||||
@@ -58,6 +58,10 @@ function mapa_set_tile(hab,x,y,tile)
|
|||||||
mapa[1+hab][1+x+y*12]=tile
|
mapa[1+hab][1+x+y*12]=tile
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mapa_set_tile_by_index(hab,index,tile)
|
||||||
|
mapa[1+hab][index]=tile
|
||||||
|
end
|
||||||
|
|
||||||
function mapa_get_tile(hab,x,y)
|
function mapa_get_tile(hab,x,y)
|
||||||
return mapa[1+hab][1+x+y*12]
|
return mapa[1+hab][1+x+y*12]
|
||||||
end
|
end
|
||||||
@@ -83,8 +87,10 @@ function check_tile(hab,x,y)
|
|||||||
local tile=mapa_get_tile(hab,xx,yy)
|
local tile=mapa_get_tile(hab,xx,yy)
|
||||||
if tile<8 then
|
if tile<8 then
|
||||||
return tiletype.half
|
return tiletype.half
|
||||||
elseif tile<16 then
|
elseif tile<15 then
|
||||||
return tiletype.stair
|
return tiletype.stair
|
||||||
|
elseif tile==15 then
|
||||||
|
return tiletype.switch
|
||||||
elseif tile<64 then
|
elseif tile<64 then
|
||||||
return tiletype.block
|
return tiletype.block
|
||||||
else
|
else
|
||||||
|
|||||||
36
switches.lua
Normal file
36
switches.lua
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
switches={
|
||||||
|
cooldown=0,
|
||||||
|
wait=0,
|
||||||
|
current_list=nil,
|
||||||
|
current_index=-1,
|
||||||
|
}
|
||||||
|
switches[1]={}
|
||||||
|
switches[1][18]={1, 57,45}
|
||||||
|
|
||||||
|
function switches.start(hab,tile)
|
||||||
|
if switches.cooldown>0 then return end
|
||||||
|
mapa_set_tile_by_index(hab,tile,57)
|
||||||
|
switches.current_list=switches[hab+1][tile]
|
||||||
|
print(tile)
|
||||||
|
switches.current_index=2
|
||||||
|
switches.wait=0
|
||||||
|
switches.cooldown=60
|
||||||
|
end
|
||||||
|
|
||||||
|
function switches.update()
|
||||||
|
if switches.cooldown>0 then switches.cooldown=switches.cooldown-1 end
|
||||||
|
if switches.current_list==nil then return end
|
||||||
|
--cls(4)
|
||||||
|
|
||||||
|
switches.wait=switches.wait+1
|
||||||
|
|
||||||
|
if switches.wait==6 then
|
||||||
|
switches.wait=0
|
||||||
|
mapa_set_tile_by_index(switches.current_list[1]-1,switches.current_list[switches.current_index]+1,255)
|
||||||
|
switches.current_index=switches.current_index+1
|
||||||
|
if switches.current_index>#switches.current_list then
|
||||||
|
switches.current_list=nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user