new stuff
This commit is contained in:
44
16.p8l
Normal file
44
16.p8l
Normal file
@@ -0,0 +1,44 @@
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
28
25.p8l
Normal file
28
25.p8l
Normal file
@@ -0,0 +1,28 @@
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
21
26.p8l
Normal file
21
26.p8l
Normal file
@@ -0,0 +1,21 @@
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
||||
48
|
193
level_crawler/level_test.p8
Normal file
193
level_crawler/level_test.p8
Normal file
@@ -0,0 +1,193 @@
|
||||
pico-8 cartridge // http://www.pico-8.com
|
||||
version 42
|
||||
__lua__
|
||||
entities={}
|
||||
|
||||
function _init()
|
||||
maps[currentmap]:init()
|
||||
end
|
||||
|
||||
function _update()
|
||||
maps[currentmap]:update()
|
||||
player:update()
|
||||
for e in all(entities) do
|
||||
e:update()
|
||||
end
|
||||
end
|
||||
|
||||
function _draw()
|
||||
maps[currentmap]:draw()
|
||||
player:draw()
|
||||
for e in all(entities) do
|
||||
e:draw()
|
||||
end
|
||||
end
|
||||
|
||||
-->8
|
||||
--globals
|
||||
|
||||
--types
|
||||
entity={
|
||||
x=0,
|
||||
y=0,
|
||||
s=0,
|
||||
w=8,
|
||||
h=8,
|
||||
ox=0,
|
||||
oy=0,
|
||||
draw=function(self)
|
||||
spr(self.s,self.x*8,self.y*8)
|
||||
end,
|
||||
update=function(self)
|
||||
end,
|
||||
init=function(self)
|
||||
end,
|
||||
new=function(self,obj)
|
||||
obj = obj or self
|
||||
return setmetatable(obj, {__index=self})
|
||||
end
|
||||
}
|
||||
|
||||
maptype={
|
||||
x=0,
|
||||
y=0,
|
||||
w=6,
|
||||
h=8,
|
||||
exits={
|
||||
first={
|
||||
x=3,
|
||||
y=1,
|
||||
s=3,
|
||||
n="red",
|
||||
px=3,
|
||||
py=1
|
||||
}
|
||||
},
|
||||
update=function(self)
|
||||
for goal in all(self.exits) do
|
||||
if player.x == goal.x and player.y ==goal.y then
|
||||
player.x,player.y=goal.px,goal.py
|
||||
currentmap=goal.n
|
||||
maps[currentmap]:init()
|
||||
end
|
||||
end
|
||||
end,
|
||||
draw=function(self)
|
||||
cls()
|
||||
map(self.x,self.y,0,0,self.w,self.h)
|
||||
camera(-64+self.w*8/2,-64+self.h*8/2)
|
||||
printh("exits".. #self.exits)
|
||||
for goal in all(self.exits) do
|
||||
printh(goal)
|
||||
spr(goal.s,goal.x*8,goal.y*8)
|
||||
end
|
||||
end,
|
||||
init=function(self)
|
||||
|
||||
end,
|
||||
new=function(self,obj)
|
||||
local obj = obj or self
|
||||
return setmetatable(obj, {__index=self})
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
--functions
|
||||
function hit(obj, x, y)
|
||||
return fget(mget(obj.x+x,obj.y+y),1)
|
||||
end
|
||||
|
||||
-->8
|
||||
--player
|
||||
player=entity:new({
|
||||
x=1,
|
||||
y=1,
|
||||
update=function(self)
|
||||
if btnp(⬆️) then
|
||||
if not (hit(self,0,-1)) then
|
||||
self.y-=1
|
||||
end
|
||||
end
|
||||
if btnp(⬇️) then
|
||||
if not (hit(self,0,1)) then
|
||||
self.y+=1
|
||||
end
|
||||
end
|
||||
if btnp(⬅️) then
|
||||
if not (hit(self,-1,0)) then
|
||||
self.x-=1
|
||||
end
|
||||
end
|
||||
if btnp(➡️) then
|
||||
if not (hit(self,1,0)) then
|
||||
self.x+=1
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-->8
|
||||
--maps
|
||||
currentmap="red"
|
||||
maps={
|
||||
red=maptype:new({
|
||||
exits={
|
||||
{
|
||||
x=3,
|
||||
y=1,
|
||||
s=3,
|
||||
n="green",
|
||||
px=3,
|
||||
py=1
|
||||
}
|
||||
},
|
||||
}),
|
||||
green=maptype:new({
|
||||
x=7,
|
||||
y=0,
|
||||
w=6,
|
||||
h=8,
|
||||
exits={
|
||||
{
|
||||
x=4,
|
||||
y=4,
|
||||
s=3,
|
||||
n="red",
|
||||
px=4,
|
||||
py=4
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
__gfx__
|
||||
00000000444444443333333300111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000488888853bbbbbbd01100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00700700488888853bbbbbbd01000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00077000488888853bbbbbbd01000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00077000488888853bbbbbbd01000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00700700488888853bbbbbbd01000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000488888853bbbbbbd01101111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000055555555dddddddd00110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000088d8888dbbdbbbbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000088d8888dbbdbbbbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000dd8dddd8ddbddddb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000d888d888dbbbdbbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000d888d888dbbbdbbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000dddddddddddddddd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000008d888d88bdbbbdbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000008d888d88bdbbbdbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__gff__
|
||||
0002020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__map__
|
||||
0101010101010002020202020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0111111111010002121212120200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0111111111010002121212120200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0111111111010002121212120200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0111111111010002121212120200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0111111111010002121212120200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0101010101010002020202020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
8
level_crawler/readme.md
Normal file
8
level_crawler/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# levelcrawler
|
||||
|
||||
tldr it's a poc to move from level to level only drawing partial data from the map
|
||||
|
||||
This is kindof like a test to make a dungeon crawler type thing with a map?
|
||||
Basically i wanted to only draw parts of the map and have level transitions, so that's what i did so far :p
|
||||
|
||||
|
@@ -32,8 +32,8 @@ function _update()
|
||||
-- wsong()
|
||||
async(function()
|
||||
while true do
|
||||
poke(rnd(0x6000),rnd(0x00ff))
|
||||
poke(rnd(0x6000),rnd(0x00ff))
|
||||
poke(rnd(0x6000),rnd(0xf))
|
||||
-- poke(rnd(0x6000),rnd(0xf))
|
||||
yield()
|
||||
end
|
||||
end)
|
||||
|
449
smbreplay.p8
Normal file
449
smbreplay.p8
Normal file
@@ -0,0 +1,449 @@
|
||||
pico-8 cartridge // http://www.pico-8.com
|
||||
version 42
|
||||
__lua__
|
||||
function _init()
|
||||
|
||||
for i=0,20 do
|
||||
printh("")
|
||||
end
|
||||
|
||||
printh("init")
|
||||
end
|
||||
|
||||
function _update60()
|
||||
if statechange then
|
||||
statechange=false
|
||||
states[state]:init()
|
||||
end
|
||||
states[state]:update()
|
||||
|
||||
end
|
||||
|
||||
function _draw()
|
||||
states[state]:draw()
|
||||
for r in all(states[state].routines) do
|
||||
if costatus(r) == "dead" then
|
||||
del(states[state].routines,r)
|
||||
else
|
||||
assert(coresume(r))
|
||||
end
|
||||
end
|
||||
end
|
||||
-->8
|
||||
--globals
|
||||
--global environment
|
||||
global=_ENV
|
||||
|
||||
--timer
|
||||
tim=0
|
||||
|
||||
--class
|
||||
class=setmetatable({
|
||||
new=function(_ENV,tbl)
|
||||
tbl=setmetatable(tbl or {},{
|
||||
__index=_ENV
|
||||
})
|
||||
|
||||
tbl:init()
|
||||
|
||||
return tbl
|
||||
end,
|
||||
init=function()end
|
||||
},{__index=_ENV})
|
||||
|
||||
|
||||
--states
|
||||
state="intro"
|
||||
statechange=true
|
||||
states={
|
||||
--state.intro
|
||||
intro={
|
||||
init=function(self)
|
||||
self.x=45
|
||||
self.y=128
|
||||
self.intro=cocreate(function()
|
||||
for i=80,30,-1 do
|
||||
self.y=i
|
||||
yield()
|
||||
end
|
||||
end)
|
||||
end,
|
||||
update=function(self)
|
||||
if btnp(🅾️) then
|
||||
statechange=true
|
||||
state="gameplay"
|
||||
end
|
||||
if costatus(self.intro)!="dead" then
|
||||
coresume(self.intro)
|
||||
end
|
||||
|
||||
end,
|
||||
draw=function(self)
|
||||
cls()
|
||||
cursor(self.x,self.y)
|
||||
print("welcome!")
|
||||
print("⬅️ left")
|
||||
print("➡️ right")
|
||||
print("❎ jump")
|
||||
print("🅾️ reset")
|
||||
print("press 🅾️ to continue")
|
||||
end
|
||||
},
|
||||
--state.gameplay
|
||||
gameplay={
|
||||
routines={}, --todo add death anims
|
||||
init=function()
|
||||
pl = player:new()
|
||||
tim=time()
|
||||
pl.x,pl.y=maps[currentmap]:init()
|
||||
add(entities,pl)
|
||||
end,
|
||||
update=function()
|
||||
buttons=btn()
|
||||
for entity in all(entities) do
|
||||
entity:update()
|
||||
end
|
||||
end,
|
||||
draw=function()
|
||||
cls()
|
||||
maps[currentmap]:draw()
|
||||
for e in all(entities) do
|
||||
e:draw()
|
||||
end
|
||||
cursor(0,100)
|
||||
color(7)
|
||||
print("time:"..time()-tim)
|
||||
print("attempts:"..count(replays))
|
||||
|
||||
end
|
||||
},
|
||||
--state.replay
|
||||
replay={
|
||||
routines={},
|
||||
init=function(self)
|
||||
printh(#replays)
|
||||
|
||||
end,
|
||||
update=function(self)
|
||||
for entity in all(entities) do
|
||||
entity:update()
|
||||
|
||||
end
|
||||
if #entities==0 then
|
||||
entities={}
|
||||
printh("replays:"..#replays)
|
||||
for a in all(replays) do
|
||||
t={}
|
||||
for item in all(a) do
|
||||
add(t,item)
|
||||
end
|
||||
rep=replayer:new({actions=t,c=rnd(16)})
|
||||
rep.x,rep.y=maps[currentmap]:init()
|
||||
add(entities,rep)
|
||||
end
|
||||
end
|
||||
end,
|
||||
draw=function(self)
|
||||
cls()
|
||||
maps[currentmap]:draw()
|
||||
for e in all(entities) do
|
||||
e:draw()
|
||||
end
|
||||
cursor(10,100)
|
||||
print("you won! in only "..#replays.." attempts!")
|
||||
print("press 🅾️ to go to next level")
|
||||
|
||||
end,
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
--entity
|
||||
entity=class:new({
|
||||
x=1,
|
||||
y=1,
|
||||
w=8,
|
||||
h=8,
|
||||
routines={},
|
||||
actions={},
|
||||
})
|
||||
entities={}
|
||||
|
||||
--btn
|
||||
buttons=0
|
||||
|
||||
--replays
|
||||
replays={}
|
||||
|
||||
--gravity
|
||||
gravity=.2
|
||||
|
||||
--helper functions
|
||||
function hitx(e)
|
||||
fl=0
|
||||
for x=0,e.w do
|
||||
x1,y1,y2=(e.x+x)/8,e.y-1/8,(e.y+e.h-1)/8
|
||||
fl=fl|fget(mget(x1,y1))|fget(mget(x1,y2))
|
||||
end
|
||||
return fl
|
||||
end
|
||||
|
||||
function hity(e)
|
||||
fl=0
|
||||
for y=0,e.h do
|
||||
x1,x2,y1=e.x/8,(e.x+e.w)/8,(e.y+y)/8
|
||||
fl=fl|fget(mget(x1,y1))|fget(mget(x2,y1))
|
||||
end
|
||||
return fl
|
||||
end
|
||||
|
||||
function hitbottom(obj)
|
||||
fl=0
|
||||
for x=0,obj.w,obj.w do
|
||||
x1,y1=(obj.x+x)/8,(obj.y+obj.h+1)/8 --1 below
|
||||
fl=fl|fget(mget(x1,y1))
|
||||
end
|
||||
return (fl==1)
|
||||
end
|
||||
|
||||
--restart(win?,actions)
|
||||
function restart(w,obj)
|
||||
add(replays,obj.actions)
|
||||
if w then
|
||||
sfx(10,1)
|
||||
entities={}
|
||||
tim=time()
|
||||
for a in all(replays) do
|
||||
t={}--this is necessary because it otherwise stores a ref, not a clone
|
||||
for item in all(a) do
|
||||
add(t,item)
|
||||
end
|
||||
rep=replayer:new({actions=t,c=rnd(16)})
|
||||
rep.x,rep.y=maps[currentmap]:init()
|
||||
add(entities,rep)
|
||||
end
|
||||
state="replay"
|
||||
statechange=true
|
||||
else
|
||||
sfx(9)
|
||||
add(states[state].routines,cocreate(function()
|
||||
a={16,16,32,32,48,48,48}
|
||||
bx,by=obj.x,obj.y
|
||||
for x in all(a) do
|
||||
printh(bx)
|
||||
spr(x,bx,by)
|
||||
yield()
|
||||
end
|
||||
end))
|
||||
entities,tim={},time()
|
||||
sx,sy=maps[currentmap]:init()
|
||||
add(entities,player:new({actions={},x=sx,y=sy}))
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-->8
|
||||
--characters
|
||||
|
||||
--npc
|
||||
npc=entity:new({
|
||||
spd=.5,
|
||||
s=0,--sprite
|
||||
v=.5,
|
||||
c=8,
|
||||
f=false,
|
||||
update=function(_ENV)
|
||||
end,
|
||||
draw=function(_ENV)
|
||||
pal(8,c)
|
||||
spr(s,x-(8-w)/2,y-(8-h)/2,1,1,f)
|
||||
pal()
|
||||
end
|
||||
|
||||
})
|
||||
|
||||
player=npc:new({
|
||||
x=6,
|
||||
y=6,
|
||||
s=0,
|
||||
yv=0,
|
||||
xv=0,
|
||||
-- w=6,
|
||||
-- h=6,
|
||||
j=3, --jump height
|
||||
friction=.5,
|
||||
actions={},
|
||||
update=function(self)
|
||||
-- self.xv,self.yv=0,0 --l,r,u,d
|
||||
self.xv*=self.friction
|
||||
self:grav()
|
||||
self:move()
|
||||
self.x+=self.xv
|
||||
self.y+=self.yv
|
||||
if (self.xv>0) self.f=false
|
||||
if (self.xv<0) self.f=true
|
||||
end,
|
||||
grav=function(self)
|
||||
self.yv+=gravity
|
||||
end,
|
||||
jump=function(self)
|
||||
if (hitbottom(self)) then
|
||||
sfx(8,-1,0,rnd(16))
|
||||
self.yv-=self.j
|
||||
end
|
||||
end,
|
||||
move=function(self)
|
||||
local b=global.buttons
|
||||
if ((b&0b0001)!=0) self.xv-=self.v
|
||||
if ((b&0b0010)!=0) self.xv+=self.v
|
||||
if ((b&0x10)!=0) self:jump()
|
||||
if (btnp(❎)) restart(false,self)
|
||||
t=player:new({x=self.x+self.xv,y=self.y+self.yv})
|
||||
fx,fy=hitx(t),hity(t)
|
||||
if (((fx|fy)&0x4)!=0) restart(false,self)
|
||||
if (((fx|fy)&0x2)!=0) restart(true,self)
|
||||
-- if ((fx&0x1)!=0) self.xv=0
|
||||
if ((fy&0x1)!=0) self.yv=0
|
||||
|
||||
add(self.actions,b)
|
||||
end
|
||||
})
|
||||
|
||||
replayer=player:new({
|
||||
i=1,
|
||||
alive=true,
|
||||
c=8,
|
||||
move=function(self)
|
||||
local b = self.actions[1] or 0x0
|
||||
if ((b&0x1)!=0) self.xv-=self.v
|
||||
if ((b&0x2)!=0) self.xv+=self.v
|
||||
if ((b&0x10)!=0) self:jump()
|
||||
|
||||
t=player:new({x=self.x+self.xv,y=self.y+self.yv})
|
||||
fx,fy=hitx(t),hity(t)
|
||||
if ((fx&0x1)!=0) self.xv=0
|
||||
if ((fy&0x1)!=0) self.yv=0
|
||||
deli(self.actions,1)
|
||||
if (#self.actions==0) then
|
||||
del(entities,self)
|
||||
sfx(9)
|
||||
end
|
||||
|
||||
end
|
||||
})
|
||||
-->8
|
||||
--maps
|
||||
maps={
|
||||
forrest={
|
||||
x=0,
|
||||
y=0,
|
||||
pl={},
|
||||
init=function(self)
|
||||
map(self.x,self.y)
|
||||
for x=0,15 do
|
||||
for y=0,15 do
|
||||
if (mget(x,y)==0) then
|
||||
px,py=x*8,y*8
|
||||
end
|
||||
end
|
||||
end
|
||||
return px,py
|
||||
end,
|
||||
draw=function(self)
|
||||
pal(pl)
|
||||
map(self.x,self.y)
|
||||
|
||||
for x=0,128,8 do
|
||||
for y=0,128,8 do
|
||||
if fget(mget(x/8,y/8),0x0) then
|
||||
if (not fget(mget(x/8,y/8-1),0x0)) then
|
||||
sspr(16,8,8,2,x,y)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
}
|
||||
currentmap="forrest"
|
||||
__gfx__
|
||||
000000008888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000008888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
088888808888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
088080808888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
088080808888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
088888808888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
088888808888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
008008008888888855555555eeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000b3bb33bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000075503b00000b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000005c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00080000000005500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000800000000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000008b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000080800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00888080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00800800000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00808000000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00088800000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00808000000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00008800000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000009999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__gff__
|
||||
0004010200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__map__
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222220222222222032222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222220222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222020222220222222222222222220222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222220222220222022222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222202220222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222220222222222222202222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0222222222220222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0022220222220222022222022222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222220222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0022022222220222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0202020202020201010101010101010102222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__sfx__
|
||||
000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0001000029050340502f0502505016050090500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0004000017750097500c750157502c750147501475014750057500a75005750057500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000500001a2501e2501f2502325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
147
untitled.p8
Normal file
147
untitled.p8
Normal file
@@ -0,0 +1,147 @@
|
||||
pico-8 cartridge // http://www.pico-8.com
|
||||
version 42
|
||||
__lua__
|
||||
function _init()
|
||||
add(entities,player:new())
|
||||
for i=0,20 do
|
||||
printh("")
|
||||
end
|
||||
end
|
||||
|
||||
function _update60()
|
||||
b=btn()
|
||||
for e in all(entities) do
|
||||
e:update()
|
||||
end
|
||||
end
|
||||
|
||||
function _draw()
|
||||
cls()
|
||||
map()
|
||||
for e in all(entities) do
|
||||
e:draw()
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
-->8
|
||||
--globals
|
||||
--global environment
|
||||
global=_ENV
|
||||
|
||||
--class
|
||||
class=setmetatable({
|
||||
new=function(_ENV,tbl)
|
||||
tbl=setmetatable(tbl or {},{
|
||||
__index=_ENV
|
||||
})
|
||||
|
||||
tbl:init()
|
||||
|
||||
return tbl
|
||||
end,
|
||||
init=function()end
|
||||
},{__index=_ENV})
|
||||
|
||||
|
||||
--entity
|
||||
entity=class:new({
|
||||
x=1,
|
||||
y=1,
|
||||
w=8,
|
||||
h=8
|
||||
})
|
||||
entities={}
|
||||
|
||||
--btn
|
||||
b=0
|
||||
|
||||
--helper functions
|
||||
function hitx(e)
|
||||
fl=0
|
||||
for x=0,e.w do
|
||||
x1,y1,y2=(e.x+x)/8,e.y/8,(e.y+e.h)/8
|
||||
fl=fl|fget(mget(x1,y1))|fget(mget(x1,y2))
|
||||
end
|
||||
return fl
|
||||
end
|
||||
|
||||
function hity(e)
|
||||
fl=0
|
||||
for y=0,e.h do
|
||||
x1,x2,y1=e.x/8,(e.x+e.w)/8,(e.y+y)/8
|
||||
fl=fl|fget(mget(x1,y1))|fget(mget(x2,y1))
|
||||
end
|
||||
return fl
|
||||
end
|
||||
-->8
|
||||
--npc
|
||||
npc=entity:new({
|
||||
spd=.5,
|
||||
s=0,--sprite
|
||||
|
||||
update=function(_ENV)
|
||||
|
||||
end,
|
||||
draw=function(_ENV)
|
||||
|
||||
spr(s,x,y)
|
||||
end
|
||||
|
||||
})
|
||||
|
||||
player=npc:new({
|
||||
x=6,
|
||||
y=6,
|
||||
s=0,
|
||||
update=function(self)
|
||||
-- hit(self)
|
||||
b=global.b
|
||||
xv,yv=0,0
|
||||
--left,right,up,down
|
||||
if ((b & 0x1)!=0) xv-=1
|
||||
if ((b&0x2)!=0) xv+=1
|
||||
if ((b&0x4)!=0) yv-=1
|
||||
if ((b&0x8)!=0) yv+=1
|
||||
if xv!=0 or yv!=0 then
|
||||
-- if (hity(player:new({y=self.y+yv}))) self.y+=yv
|
||||
-- if hit(player:new({
|
||||
-- x=self.x+xv,
|
||||
-- y=self.y+yv
|
||||
-- })) then
|
||||
-- printh("hit")
|
||||
-- else
|
||||
-- if (hitx(player:new({x=self.x+xv}))) printh("x?")
|
||||
t=player:new({x=self.x+xv,y=self.y+yv})
|
||||
fx=hitx(t) --flags x
|
||||
fy=hity(t) --flags y
|
||||
if ((fx&0x1)==0) self.x+=xv
|
||||
if ((fy&0x1)==0) self.y+=yv
|
||||
end
|
||||
end
|
||||
})
|
||||
__gfx__
|
||||
0000000088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0070070088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0007700088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0007700088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0070070088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000088888888cccccccceeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__gff__
|
||||
0000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
__map__
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000200000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
Reference in New Issue
Block a user