- [NEW] Convertit a mini v1.0 RC2

This commit is contained in:
2025-05-31 14:29:29 +02:00
parent 28f9851f00
commit c2f7b470bf
14 changed files with 241 additions and 244 deletions

View File

@@ -45,7 +45,7 @@ actors={
actors.search(name).o = o
end,
draw=function()
display=function()
actors.under_cursor=""
for i,v in ipairs(actors.list) do
if v.o=='' then goto continue end
@@ -53,25 +53,25 @@ actors={
local x,y = v.x, v.y
if v.ox then x = x + v.ox end
if v.oy then y = y + v.oy end
local mousex,mousey=mouse()
local mousex,mousey=mouse.pos()
local mx = math.floor((mousex+game.cam.x)/8)
local my = math.floor((mousey+game.cam.y)/8)
if (mx==x or mx==x+1) and (my==y or my==y-1) then
actors.under_cursor=v.name
subpal(1,16,8)
pal.subpal(1,16,8)
end
if v.o=='u' then
blit(v.gfx.x+frame,v.gfx.y+16,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,v.dy>1)
draw.surf(v.gfx.x+frame,v.gfx.y+16,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,v.dy>1)
elseif v.o=='d' then
blit(v.gfx.x+frame,v.gfx.y,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,-v.dy>2)
draw.surf(v.gfx.x+frame,v.gfx.y,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,-v.dy>2)
elseif v.o=='l' then
blit(v.gfx.x+frame,v.gfx.y+32,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16)
draw.surf(v.gfx.x+frame,v.gfx.y+32,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16)
elseif v.o=='r' then
blit(v.gfx.x+frame,v.gfx.y+32,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,true)
draw.surf(v.gfx.x+frame,v.gfx.y+32,16,16,x*8+v.dx*2,y*8-12+v.dy*2,16,16,true)
end
if not btn(KEY_LSHIFT) then subpal() end
if not key.down(key.LSHIFT) then pal.subpal() end
::continue::
end
end,

View File

@@ -38,36 +38,36 @@ balloon={
if below==nil or below==false then
balloon.rect.y=balloon.rect.y-balloon.rect.h-16
local x,y,w,h=balloon.rect.x,balloon.rect.y,balloon.rect.w,balloon.rect.h
rectfill(x+1,y+1,x+w+1,y+h+1,5)
rectfill(x,y,x+w,y+h,8)
rect(x,y,x+w,y+h,6)
draw.rectf(x+1,y+1,w+1,h+1,5)
draw.rectf(x,y,w+1,h+1,8)
draw.rect(x,y,w+1,h+1,6)
if pos<80 then
for i=0,4 do rect(pos,y+h+(4-i),pos+i,y+h+(4-i),8) end
line(pos-1,y+h+1,pos-1,y+h+6,6)
line(pos+4,y+h+1,pos-1,y+h+6,6)
for i=0,4 do draw.rect(pos,y+h+(4-i),i+1,2,8) end
draw.line(pos-1,y+h+1,pos-1,y+h+6,6)
draw.line(pos+4,y+h+1,pos-1,y+h+6,6)
else
pos=pos-5
for i=0,4 do rect(pos+i,y+h+i,pos+4,y+h+i,8) end
line(pos+5,y+h+1,pos+5,y+h+6,6)
line(pos,y+h+1,pos+5,y+h+6,6)
for i=0,4 do draw.rect(pos+i,y+h+i,5-i,2,8) end
draw.line(pos+5,y+h+1,pos+5,y+h+6,6)
draw.line(pos,y+h+1,pos+5,y+h+6,6)
end
else
balloon.rect.y=balloon.rect.y+16
local x,y,w,h=balloon.rect.x,balloon.rect.y,balloon.rect.w,balloon.rect.h
rectfill(x+1,y+1,x+w+1,y+h+1,5)
rectfill(x,y,x+w,y+h,8)
rect(x,y,x+w,y+h,6)
draw.rectf(x+1,y+1,w+1,h+1,5)
draw.rectf(x,y,w+1,h+1,8)
draw.rect(x,y,w+1,h+1,6)
if pos<80 then
for i=0,4 do rect(pos,y-(4-i),pos+i,y-(4-i),8) end
line(pos-1,y,pos-1,y-6,6)
line(pos+5,y,pos-1,y-6,6)
for i=0,4 do draw.rect(pos,y-(4-i),i+1,2,8) end
draw.line(pos-1,y,pos-1,y-6,6)
draw.line(pos+5,y,pos-1,y-6,6)
else
pos=pos-5
for i=0,4 do rect(pos+i,y-i,pos+4,y-i,8) end
line(pos+5,y,pos+5,y-6,6)
line(pos-1,y,pos+5,y-6,6)
for i=0,4 do draw.rect(pos+i,y-i,5-i,2,8) end
draw.line(pos+5,y,pos+5,y-6,6)
draw.line(pos-1,y,pos+5,y-6,6)
end
end
@@ -87,15 +87,15 @@ balloon={
update=balloon.update
local x,y,w,h=balloon.rect.x,balloon.rect.y,balloon.rect.w,balloon.rect.h
rectfill(x+1,y+1,x+w+1,y+h+1,5)
rectfill(x,y,x+w,y+h,15)
rect(x,y,x+w,y+h,6)
draw.rectf(x+1,y+1,w+1,h+1,5)
draw.rectf(x,y,w+1,h+1,15)
draw.rect(x,y,w+1,h+1,6)
balloon.cursor={x=balloon.rect.x+12,y=balloon.rect.y+11}
end,
update=function()
if anykey() then
if key.any() then
if balloon.pos<0 then
update=balloon.old_update
update()
@@ -105,20 +105,20 @@ balloon={
end
end
if not beat() and not balloon.quick then return end
if not sys.beat() and not balloon.quick then return end
if balloon.pos<0 then
if balloon.obj then
setsource(objectes)
blit(balloon.obj.x,balloon.obj.y,16,16,balloon.rect.x+balloon.rect.w-28,balloon.rect.y+10)
surf.source(objectes)
draw.surf(balloon.obj.x,balloon.obj.y,16,16,balloon.rect.x+balloon.rect.w-28,balloon.rect.y+10)
end
local col=8
if math.floor(time()*4)%2==0 then col=10 end
if math.floor(sys.time()*4)%2==0 then col=10 end
local x,y=balloon.rect.x+balloon.rect.w-8, balloon.rect.y+balloon.rect.h-6
line(x,y,x+4,y,col)
line(x+1,y+1,x+3,y+1,col)
line(x+2,y+2,x+2,y+2,col)
if btnp(KEY_SPACE) then
draw.line(x,y,x+4,y,col)
draw.line(x+1,y+1,x+3,y+1,col)
draw.line(x+2,y+2,x+2,y+2,col)
if key.press(key.SPACE) then
update=balloon.old_update
end
else

View File

@@ -7,24 +7,24 @@ brymode = {
update=brymode.update
brymode.return_function=retfun
cls(0)
prnt("#include <stdio.h>",1,1,8)
prnt("int main(int argc, char *argv[])",1,1+6*2,8)
prnt("{",1,1+6*3,8)
prnt("SDL_Init(SDL_INIT_EVERYTHING);",21,1+6*4,8)
prnt("SDL_Window *win=",21,1+6*6,8)
prnt("SDL_CreateWindow('Title',320,240);",29,1+6*7,8)
prnt("SDL_Renderer *ren =",21,1+6*9,8)
prnt("SDL_CreateRenderer(win,-1,0);",29,1+6*10,8)
prnt("SDL_Quit();",21,1+6*12,8)
prnt("return 0;",21,1+6*13,8)
prnt("}",1,1+6*14,8)
surf.cls(0)
draw.text("#include <stdio.h>",1,1,8)
draw.text("int main(int argc, char *argv[])",1,1+6*2,8)
draw.text("{",1,1+6*3,8)
draw.text("SDL_Init(SDL_INIT_EVERYTHING);",21,1+6*4,8)
draw.text("SDL_Window *win=",21,1+6*6,8)
draw.text("SDL_CreateWindow('Title',320,240);",29,1+6*7,8)
draw.text("SDL_Renderer *ren =",21,1+6*9,8)
draw.text("SDL_CreateRenderer(win,-1,0);",29,1+6*10,8)
draw.text("SDL_Quit();",21,1+6*12,8)
draw.text("return 0;",21,1+6*13,8)
draw.text("}",1,1+6*14,8)
end,
update=function()
--cls(0)
if btnp(KEY_ESCAPE) then
if key.press(key.ESCAPE) then
if brymode.return_function then
update=brymode.old_update
brymode.return_function()

View File

@@ -28,35 +28,35 @@ editor={
end,
reload_textures=function()
freesurf(sprites)
freesurf(objectes)
freesurf(tiles)
sprites=loadsurf("sprites.gif")
objectes=loadsurf("objects.gif")
tiles=loadsurf("tiles.gif")
setsource(tiles)
local pal=loadpal("tiles.gif")
setpal(pal)
surf.free(sprites)
surf.free(objectes)
surf.free(tiles)
sprites=surf.load("sprites.gif")
objectes=surf.load("objects.gif")
tiles=surf.load("tiles.gif")
surf.source(tiles)
local p=pal.load("tiles.gif")
pal.set(p)
editor.paused=false
end,
toggle_front_layer=function()
if editor.editing_front_layer then
setmap(mapa.surface)
map.set(mapa.surface)
editor.editing_front_layer=false;
else
if not mapa.front_layer then
mapa.front_layer=newsurf(mapa.w,mapa.h)
mapa.front_layer=surf.new(mapa.w,mapa.h)
editor.editing_front_layer=true
setmap(mapa.front_layer)
map.set(mapa.front_layer)
for y=0,mapa.h-1 do
for x=0,mapa.w-1 do
mset(x,y,0)
map.tile(x,y,0)
end
end
else
editor.editing_front_layer=true
setmap(mapa.front_layer)
map.set(mapa.front_layer)
end
end
editor.paused=false
@@ -76,27 +76,27 @@ editor={
local old_surface= mapa.surface
mapa.w=tonumber(editor.new_w)
mapa.h=tonumber(editor.new_h)
mapa.surface=newsurf(mapa.w,mapa.h)
mapa.surface=surf.new(mapa.w,mapa.h)
for y=0,mapa.h-1 do
for x=0,mapa.w-1 do
setmap(old_surface)
local value=mget(x,y)
setmap(mapa.surface)
mset(x,y,value)
map.set(old_surface)
local value=map.tile(x,y)
map.set(mapa.surface)
map.tile(x,y,value)
end
end
freesurf(old_surface)
setmap(mapa.surface)
surf.free(old_surface)
map.set(mapa.surface)
editor.paused=false
end,
floodfill=function(x,y,tile)
local t=mget(x,y)
mset(x,y,tile)
if x<mapa.w-1 and mget(x+1,y)==t then editor.floodfill(x+1,y,tile) end
if x>0 and mget(x-1,y)==t then editor.floodfill(x-1,y,tile) end
if y<mapa.h-1 and mget(x,y+1)==t then editor.floodfill(x,y+1,tile) end
if y>0 and mget(x,y-1)==t then editor.floodfill(x,y-1,tile) end
local t=map.tile(x,y)
map.tile(x,y,tile)
if x<mapa.w-1 and map.tile(x+1,y)==t then editor.floodfill(x+1,y,tile) end
if x>0 and map.tile(x-1,y)==t then editor.floodfill(x-1,y,tile) end
if y<mapa.h-1 and map.tile(x,y+1)==t then editor.floodfill(x,y+1,tile) end
if y>0 and map.tile(x,y-1)==t then editor.floodfill(x,y-1,tile) end
end,
create_stamp=function()
@@ -109,8 +109,8 @@ editor={
local p=1
for y=1,h do
for x=1,w do
editor.brush.tiles[p]=mget(tx1+x-1,ty1+y-1)
--mset(tx+x-1,ty+y-1,editor.brush.tiles[p])
editor.brush.tiles[p]=map.tile(tx1+x-1,ty1+y-1)
--map.tile(tx+x-1,ty+y-1,editor.brush.tiles[p])
p=p+1
end
end
@@ -122,7 +122,7 @@ editor={
local p=1
for y=1,h do
for x=1,w do
mset(tx+x-1,ty+y-1,editor.brush.tiles[p])
map.tile(tx+x-1,ty+y-1,editor.brush.tiles[p])
p=p+1
end
end
@@ -133,57 +133,57 @@ editor={
if dx>0 then
for y=0,h-1 do
for x=w-1,1,-1 do
mset(x,y,mget(x-1,y))
map.tile(x,y,map.tile(x-1,y))
end
end
elseif dx<0 then
for y=0,h-1 do
for x=0,w-2 do
mset(x,y,mget(x+1,y))
map.tile(x,y,map.tile(x+1,y))
end
end
elseif dy>0 then
for y=h-1,1,-1 do
for x=0,w-1 do
mset(x,y,mget(x,y-1))
map.tile(x,y,map.tile(x,y-1))
end
end
elseif dy<0 then
for y=0,h-2 do
for x=0,w-1 do
mset(x,y,mget(x,y+1))
map.tile(x,y,map.tile(x,y+1))
end
end
end
end,
update=function()
cls()
camera(editor.cam.x, editor.cam.y)
setsource(tiles)
setmap(mapa.surface)
map(0,0,0,0,mapa.w, mapa.h)
surf.cls()
view.origin(editor.cam.x, editor.cam.y)
surf.source(tiles)
map.set(mapa.surface)
map.draw() --map(0,0,0,0,mapa.w, mapa.h)
if mapa.front_layer then
setmap(mapa.front_layer)
map(0,0,0,0,mapa.w, mapa.h)
map.set(mapa.front_layer)
map.draw() --map(0,0,0,0,mapa.w, mapa.h)
end
if editor.editing_front_layer then
setmap(mapa.front_layer)
map.set(mapa.front_layer)
text("EDITING FRONT LAYER",12,2,10)
else
setmap(mapa.surface)
map.set(mapa.surface)
end
local mx,my=mouse()
local mx,my=mouse.pos()
local tx,ty=(mx+editor.cam.x)>>3,(my+editor.cam.y)>>3
local rx,ry=tx<<3,ty<<3
rect(rx-1, ry-1, rx+8, ry+8, 10)
draw.rect(rx-1, ry-1, 10, 10, 10)
if editor.selection then
local rx1,ry1,rx2,ry2=editor.selection.x1<<3,editor.selection.y1<<3,editor.selection.x2<<3,editor.selection.y2<<3
if rx1>rx2 then rx1,rx2=rx2,rx1 end
if ry1>ry2 then ry1,ry2=ry2,ry1 end
rect(rx1-1, ry1-1, rx2+8, ry2+8, 8)
draw.rect(rx1-1, ry1-1, rx2-rx1+10, ry2-ry1+10, 8)
end
camera(0,0)
view.origin(0,0)
if tx>=0 and
ty>=0 and
tx<mapa.w and
@@ -191,11 +191,11 @@ editor={
text(tx..","..ty,2,2,8)
end
if not editor.paused then
if mbtn(1) then
if mouse.down(mouse.LEFT) then
editor.stamp(tx,ty)
--mset(tx,ty,editor.brush.tiles[1])
--map.tile(tx,ty,editor.brush.tiles[1])
end
if mbtn(3) then
if mouse.down(mouse.RIGHT) then
if editor.selection then
editor.selection.x2=tx
editor.selection.y2=ty
@@ -213,55 +213,55 @@ editor={
end
end
if btn(KEY_LSHIFT) then
if btnp(KEY_RIGHT) then editor.displace(1,0) end
if btnp(KEY_LEFT) then editor.displace(-1,0) end
if btnp(KEY_UP) then editor.displace(0,-1) end
if btnp(KEY_DOWN) then editor.displace(0,1) end
if key.down(key.LSHIFT) then
if key.press(key.RIGHT) then editor.displace(1,0) end
if key.press(key.LEFT) then editor.displace(-1,0) end
if key.press(key.UP) then editor.displace(0,-1) end
if key.press(key.DOWN) then editor.displace(0,1) end
else
if btnp(KEY_RIGHT) then editor.cam.x=editor.cam.x+8 end
if btnp(KEY_LEFT) then editor.cam.x=editor.cam.x-8 end
if btnp(KEY_UP) then editor.cam.y=editor.cam.y-8 end
if btnp(KEY_DOWN) then editor.cam.y=editor.cam.y+8 end
if key.press(key.RIGHT) then editor.cam.x=editor.cam.x+8 end
if key.press(key.LEFT) then editor.cam.x=editor.cam.x-8 end
if key.press(key.UP) then editor.cam.y=editor.cam.y-8 end
if key.press(key.DOWN) then editor.cam.y=editor.cam.y+8 end
end
if btnp(KEY_F) then
if key.press(key.F) then
editor.floodfill(tx,ty,editor.brush.tiles[1])
end
if btnp(KEY_1) then
if key.press(key.N1) then
if editor.editing_front_layer then
editor.editing_front_layer=nil
else
editor.editing_front_layer=true
end
end
if btnp(KEY_RETURN) then
editor.brush.tiles[1]=mget(tx,ty)
if key.press(key.RETURN) then
editor.brush.tiles[1]=map.tile(tx,ty)
end
if btnp(KEY_ESCAPE) then
if key.press(key.ESCAPE) then
editor.paused=true
editor.show_menu()
end
if btnp(KEY_TAB) then
if key.press(key.TAB) then
update=editor.update_tileset
end
end
end,
update_tileset=function()
cls()
blit(0,0,128,128,0,0)
surf.cls()
draw.surf(0,0,128,128,0,0)
local mx,my=mouse()
local mx,my=mouse.pos()
local tx,ty=mx>>3,my>>3
local rx,ry=tx<<3,ty<<3
rect(rx-1, ry-1, rx+8, ry+8, 10)
draw.rect(rx-1, ry-1, 10, 10, 10)
if btnp(KEY_TAB) or btnp(KEY_ESCAPE) then
if key.press(key.TAB) or key.press(key.ESCAPE) then
update=editor.update
end
if mbtnp(1) then
if mouse.press(mouse.LEFT) then
if tx<16 and ty<16 then
editor.brush.w=1
editor.brush.h=1

View File

@@ -9,7 +9,7 @@ fade={
init = function()
for i=1,16 do
local r,g,b=palcolor(i)
local r,g,b=pal.color(i)
fade.pal[i]={r,g,b}
end
end,
@@ -38,13 +38,13 @@ fade={
end,
update_fadeout=function()
if beat() then
if sys.beat() then
for i=1,16 do
local v=fade.getstep(i,fade.step)
if v==0 then
palcolor(i,0,0,0)
pal.color(i,0,0,0)
else
palcolor(i,fade.pal[v][1],fade.pal[v][2],fade.pal[v][3])
pal.color(i,fade.pal[v][1],fade.pal[v][2],fade.pal[v][3])
end
end
fade.step=fade.step+1
@@ -66,19 +66,19 @@ fade={
fade.old_update=update
update=fade.update_fadein
fade.step=6
for i=1,16 do palcolor(i,0,0,0) end
for i=1,16 do pal.color(i,0,0,0) end
end,
update_fadein=function()
fade.old_update()
if beat() then
if sys.beat() then
for i=1,16 do
local v=fade.getstep(i,fade.step)
if v==0 then
palcolor(i,0,0,0)
pal.color(i,0,0,0)
else
palcolor(i,fade.pal[v][1],fade.pal[v][2],fade.pal[v][3])
pal.color(i,fade.pal[v][1],fade.pal[v][2],fade.pal[v][3])
end
end
fade.step=fade.step-1

View File

@@ -20,23 +20,23 @@ fileselect={
end,
update=function()
rectfill(10,10, 150, 130,5)
rect(10,10, 150, 130,8)
if fileselect.title then prnt(fileselect.title,20,13) end
rectfill(20,20, 140, 120,6)
draw.rectf(10,10, 140, 120,5)
draw.rect(10,10, 140, 120,8)
if fileselect.title then draw.text(fileselect.title,20,13,8) end
draw.rectf(20,20, 120, 100,6)
local i = 22
for k,dir in pairs(fileselect.file_list) do
color(8)
local color=8
if k==fileselect.selected then
rectfill(20,i-2, 140, i+6,11)
color(15)
draw.rectf(20,i-1, 120, 8,11)
color=15
end
prnt(dir, 23, i)
draw.text(dir, 23, i, color)
i=i+7
end
rect(20,20, 140, 120,8)
draw.rect(20,20, 120, 100,8)
local mx,my=mouse()
local mx,my=mouse.pos()
if (mx~=fileselect.old_mx or my~=fileselect.old_my) then
fileselect.old_mx,fileselect.old_my=mx,my
if mx>20 and mx<140 and my>20 and my<120 then
@@ -46,7 +46,7 @@ fileselect={
end
end
end
if mbtnp(1) then
if mouse.press(mouse.LEFT) then
if mx>20 and mx<140 and my>20 and my<120 then
local y = math.floor((my-21)/7)+1
if (y<=#fileselect.file_list) then
@@ -57,20 +57,20 @@ fileselect={
end
end
-- if textbox.value then
-- prnt(textbox.value,43,73)
-- draw.text(textbox.value,43,73)
-- if (math.floor(time()*4)%2)==0 then
-- prnt("_",43+#textbox.value*4,73)
-- draw.text("_",43+#textbox.value*4,73)
-- end
-- end
--
local tecla=btnp()
if tecla==KEY_DOWN then
local tecla=key.press()
if tecla==key.DOWN then
if fileselect.selected < #fileselect.file_list then fileselect.selected = fileselect.selected + 1 end
elseif tecla==KEY_UP then
elseif tecla==key.UP then
if fileselect.selected > 1 then fileselect.selected = fileselect.selected - 1 end
-- elseif tecla==KEY_BACKSPACE then
-- textbox.value=string.sub(textbox.value,1,-2)
elseif tecla==KEY_RETURN then
elseif tecla==key.RETURN then
update=fileselect.old_update
fileselect.return_function(fileselect.file_list[fileselect.selected])
end

View File

@@ -3,4 +3,3 @@ config=ja2
width=160
height=144
zoom=4
files=brymode.lua,fade.lua,objects.lua,wait.lua,switches.lua,scene.lua,balloon.lua,actors.lua,game.lua,mapa.lua,editor.lua,textbox.lua,menu.lua,m_arq.lua,m_prac3.lua,m_prac2.lua,m_prac1.lua,m_jail1.lua,main.lua

View File

@@ -63,7 +63,7 @@ game={
save=function()
local i=1
file = io.open(configfolder().."slot"..i..".txt", "w")
file = io.open(config.folder().."slot"..i..".txt", "w")
if file then
io.output(file)
io.write("level="..game.level.."\n")
@@ -86,7 +86,7 @@ game={
load=function()
local i=1
file = io.open(configfolder().."slot"..i..".txt", "r")
file = io.open(config.folder().."slot"..i..".txt", "r")
local level_name = ""
local new_flags={}
local new_objects={}
@@ -97,7 +97,7 @@ game={
local k,v=getkeyval(io.read()) actors.main.x=tonumber(v)
local k,v=getkeyval(io.read()) actors.main.y=tonumber(v)
local k,v=getkeyval(io.read()) actors.main.o=v
io.read() -- ignore "[FLAGS]" line
local ignore = io.read() -- ignore "[FLAGS]" line
local line = io.read()
while line ~= "[OBJECTS]" do
local k,v=getkeyval(line)
@@ -120,17 +120,17 @@ game={
end,
draw=function()
cls(6)
camera(game.cam.x, game.cam.y)
setsource(tiles)
setmap(mapa.surface)
map(0,0,0,0,mapa.w, mapa.h)
surf.cls(6)
view.origin(game.cam.x, game.cam.y)
surf.source(tiles)
map.set(mapa.surface)
map.draw()--map(0,0,0,0,mapa.w, mapa.h)
switches.draw();
setsource(sprites)
if btn(KEY_LSHIFT) then subpal(1,16,8) end
actors.draw()
subpal()
local mx,my=mouse()
surf.source(sprites)
if key.down(key.LSHIFT) then pal.subpal(1,16,8) end
actors.display()
pal.subpal()
local mx,my=mouse.pos()
if actors.under_cursor~="" then
if (mx<=80) then
text(actors.under_cursor,mx+game.cam.x+4,my+game.cam.y+4,9)
@@ -140,13 +140,13 @@ game={
end
end
if mapa.front_layer then
setsource(tiles)
setmap(mapa.front_layer)
map(0,0,0,0,mapa.w, mapa.h)
surf.source(tiles)
map.set(mapa.front_layer)
map.draw() -- map(0,0,0,0,mapa.w, mapa.h)
end
setmap(mapa.surface)
camera(0,0)
for i=0,15 do rectfill(20+i*4,0,20+i*4+4,4,i) end
map.set(mapa.surface)
view.origin(0,0)
for i=0,15 do draw.rectf(20+i*4,0,4,4,i) end
end,
update=function()
@@ -164,7 +164,7 @@ game={
game.draw()
local mx,my=mouse()
local mx,my=mouse.pos()
text(math.floor((mx+game.cam.x)/8)..","..math.floor((my+game.cam.y)/8),1,19,8)
text(game.cam.x..","..game.cam.y,1,1,8)
@@ -174,37 +174,37 @@ game={
text(game.level,1,13,8)
if not scene.script and hero and not hero.path and hero.dx+hero.dy==0 then
if btn(KEY_DOWN) then
if key.down(key.DOWN) then
hero.path={pos=0,route='d',keys=true}
elseif btn(KEY_UP) then
elseif key.down(key.UP) then
hero.path={pos=0,route='u',keys=true}
elseif btn(KEY_LEFT) then
elseif key.down(key.LEFT) then
hero.path={pos=0,route='l',keys=true}
elseif btn(KEY_RIGHT) then
elseif key.down(key.RIGHT) then
hero.path={pos=0,route='r',keys=true}
elseif btnp(KEY_SPACE) then
elseif key.press(key.SPACE) then
actors.interact(hero.x,hero.y,hero.o)
end
end
if btnp(KEY_ESCAPE) then
if key.press(key.ESCAPE) then
game.show_menu()
end
if beat() then actors.update() end
if sys.beat() then actors.update() end
end,
pause=function()
game.paused = true
rectfill(9,84, 150, 128,6)
rect(9,84, 150, 128,8)
rect(8,83, 151, 129,6)
draw.rectf(9,84, 141, 44,6)
draw.rect(9,84, 141, 44,8)
draw.rect(8,83, 143, 46,6)
text("OBJECTES:",14,82,8)
setsource(objectes)
surf.source(objectes)
local x,y=15,90
for i,name in ipairs(objects.list) do
local obj = object[name]
blit(obj.x,obj.y,16,16,x,y)
draw.surf(obj.x,obj.y,16,16,x,y)
x=x+19
if x==148 then x,y=15,y+19 end
end

View File

@@ -3,41 +3,39 @@ require "game"
require "editor"
require "menu"
function _init()
function mini.init()
menu_option=0
sprites=loadsurf("sprites.gif")
objectes=loadsurf("objects.gif")
tiles=loadsurf("tiles.gif")
setsource(tiles)
local pal=loadpal("tiles.gif")
setpal(pal)
beat(6)
objectes=surf.load("objects.gif")
tiles=surf.load("tiles.gif")
surf.source(tiles)
local p=pal.load("tiles.gif")
pal.set(p)
sprites=surf.load("sprites.gif")
sys.beat(6)
fade.init()
main_init()
end
function _update()
function mini.update()
update()
end
function text(txt,x,y,col)
color(6)
prnt(txt,x-1,y-1)
prnt(txt,x,y-1)
prnt(txt,x+1,y-1)
prnt(txt,x-1,y)
prnt(txt,x+1,y)
prnt(txt,x-1,y+1)
prnt(txt,x,y+1)
prnt(txt,x+1,y+1)
color(col)
prnt(txt,x,y)
draw.text(txt,x-1,y-1,6)
draw.text(txt,x,y-1,6)
draw.text(txt,x+1,y-1,6)
draw.text(txt,x-1,y,6)
draw.text(txt,x+1,y,6)
draw.text(txt,x-1,y+1,6)
draw.text(txt,x,y+1,6)
draw.text(txt,x+1,y+1,6)
draw.text(txt,x,y,col)
end
function main_init()
--set_update(menu_update)
second_menu = {{"PEIV", function() end},{"TORNAR",show_main_menu}}
main_menu = { {"JUGAR", game.restart}, {"EDITOR", editor.init}, {"EIXIR", quit}, {"TEST", function() menu.show(second_menu) end } }
main_menu = { {"JUGAR", game.restart}, {"EDITOR", editor.init}, {"EIXIR", sys.quit}, {"TEST", function() menu.show(second_menu) end } }
show_main_menu()
end
@@ -50,9 +48,8 @@ function set_update(new_update)
end
function menu_update()
cls()
color(1)
prnt("JAIL'S ADVENTURE 2",10,10)
surf.cls()
draw.text("JAIL'S ADVENTURE 2",10,10,1)
end
function getkeyval(str)

View File

@@ -2,17 +2,17 @@ mapa={
name=nil,
w=128,
h=128,
surface=nil,
surface=-1,
new = function(w,h)
mapa.name=nil
mapa.w,mapa.h=w,h
if mapa.surface~=nil then freesurf(mapa.surface) end
mapa.surface=newsurf(w,h)
setmap(mapa.surface)
if mapa.surface~=-1 then surf.free(mapa.surface) end
mapa.surface=surf.new(w,h)
map.set(mapa.surface)
for y=0,127 do
for x=0,127 do
mset(x,y,0)
map.tile(x,y,0)
end
end
mapa.front_layer=nil
@@ -32,25 +32,25 @@ mapa={
local line = io.read()
local x=0
for m in string.gmatch(line, "%d+") do
mset(x,y,m)
map.tile(x,y,m)
x=x+1
end
end
if num_layers==2 then
mapa.front_layer=newsurf(mapa.w,mapa.h)
setmap(mapa.front_layer)
mapa.front_layer=surf.new(mapa.w,mapa.h)
map.set(mapa.front_layer)
for y=0,mapa.h-1 do
local line = io.read()
local x=0
for m in string.gmatch(line, "%d+") do
mset(x,y,m)
map.tile(x,y,m)
x=x+1
end
end
end
setmap(mapa.surface)
map.set(mapa.surface)
io.close(file)
end
end,
@@ -63,18 +63,18 @@ mapa={
io.write(mapa.w.."\n")
io.write(mapa.h.."\n")
if mapa.front_layer then io.write("2\n") else io.write("1\n") end
setmap(mapa.surface)
map.set(mapa.surface)
for y=0,mapa.h-1 do
for x=0,mapa.w-1 do
io.write(mget(x,y)..",")
io.write(map.tile(x,y)..",")
end
io.write("\n")
end
if mapa.front_layer then
setmap(mapa.front_layer)
map.set(mapa.front_layer)
for y=0,mapa.h-1 do
for x=0,mapa.w-1 do
io.write(mget(x,y)..",")
io.write(map.tile(x,y)..",")
end
io.write("\n")
end
@@ -84,6 +84,6 @@ mapa={
end,
check_collision=function(x,y)
return mget(x,y) >= 32 or mget(x+1,y) >= 32
return map.tile(x,y) >= 32 or map.tile(x+1,y) >= 32
end
}

View File

@@ -15,35 +15,36 @@ menu = {
update=function()
--menu.old_update()
rectfill(9,20, 150, 34+#menu.options*10,6)
rect(9,20, 150, 34+#menu.options*10,8)
rect(8,19, 151, 35+#menu.options*10,6)
draw.rectf(9,20, 141, 14+#menu.options*10,6)
draw.rect(9,20, 141, 14+#menu.options*10,8)
draw.rect(8,19, 143, 16+#menu.options*10,6)
for i,v in ipairs(menu.options) do
color(4) if menu.selected==i then color(15) prnt(">",20,20+i*10) end
prnt(v[1],24,20+i*10)
local color=4
if menu.selected==i then color=15 draw.text(">",20,20+i*10,color) end
draw.text(v[1],24,20+i*10,color)
end
if btnp(KEY_DOWN) then menu.selected=menu.selected+1 end
if btnp(KEY_UP) then menu.selected=menu.selected-1 end
if key.press(key.DOWN) then menu.selected=menu.selected+1 end
if key.press(key.UP) then menu.selected=menu.selected-1 end
if menu.selected==0 then menu.selected=#menu.options end
if menu.selected>#menu.options then menu.selected=1 end
local mx,my=mouse()
local mx,my=mouse.pos()
if mx>=20 and mx<=140 and my>=28 and my<=(28+#menu.options*10) then
menu.selected=math.min(1+math.floor((my-28)/10),#menu.options)
if mbtnp(1) then
if mouse.press(mouse.LEFT) then
update=menu.old_update
menu.options[menu.selected][2]()
end
end
if btnp(KEY_RETURN) then
if key.press(key.RETURN) then
update=menu.old_update
menu.options[menu.selected][2]()
end
if btnp(KEY_ESCAPE) then
if key.press(key.ESCAPE) then
if menu.return_function then
update=menu.old_update
menu.return_function()

View File

@@ -25,7 +25,7 @@ switches={
text(#switches.list,1,25,8)
if switches.col<16 then
for i,v in ipairs(switches.list) do
rect(v.x*8, v.y*8, (v.x+v.w+1)*8-1, (v.y+v.h)*8-1, 8);
draw.rect(v.x*8, v.y*8, (v.w+1)*8, (v.h)*8, 8);
end
end
switches.col=(switches.col+1)%32

View File

@@ -15,25 +15,25 @@ textbox={
end,
update=function()
rectfill(20,50, 140, 90,6)
rect(20,50, 140, 90,8)
if textbox.title then prnt(textbox.title,30,55) end
rect(40,70, 120, 80,8)
draw.rectf(20,50, 120, 40,6)
draw.rect(20,50, 120, 40,8)
if textbox.title then draw.text(textbox.title,30,55,8) end
draw.rect(40,70, 80, 11,8)
if textbox.value then
prnt(textbox.value,43,73)
if (math.floor(time()*4)%2)==0 then
prnt("_",43+#textbox.value*4,73)
draw.text(textbox.value,43,73,8)
if (math.floor(sys.time()*4)%2)==0 then
draw.text("_",43+#textbox.value*4,73,8)
end
end
local tecla=btnp()
local tecla=key.press()
if tecla>=4 and tecla<=39 then
textbox.value=textbox.value..string.sub(keyvalues,tecla,tecla)
elseif tecla==KEY_PERIOD then
elseif tecla==key.PERIOD then
textbox.value=textbox.value.."."
elseif tecla==KEY_BACKSPACE then
elseif tecla==key.BACKSPACE then
textbox.value=string.sub(textbox.value,1,-2)
elseif tecla==KEY_RETURN then
elseif tecla==key.RETURN then
update=textbox.old_update
textbox.return_function(textbox.value)
end

View File

@@ -7,12 +7,12 @@ wait={
wait.old_update=update
update=wait.update
wait.total_time=seconds
wait.start_time=time()
wait.start_time=sys.time()
end,
update=function()
wait.old_update()
if wait.total_time <= time()-wait.start_time then
if wait.total_time <= sys.time()-wait.start_time then
update=wait.old_update
scene.cont()
end