バイオハザードっぽい走り方の動きのみ2Dで再現
カーソルキーの上下左右で動きます
dim map,20,20
map(0, 0)=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
map(0, 1)=1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1
map(0, 2)=1,2,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,2,1
map(0, 3)=1,2,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,1
map(0, 4)=1,2,0,2,1,2,0,0,2,2,2,2,0,0,0,0,0,0,2,1
map(0, 5)=1,2,0,2,2,2,0,2,2,1,1,2,0,0,0,0,0,0,2,1
map(0, 6)=1,2,0,0,0,0,0,2,1,1,1,2,0,0,0,0,0,0,2,1
map(0, 7)=1,2,0,0,0,2,2,2,1,1,1,2,0,0,0,0,0,0,2,1
map(0, 8)=1,2,0,2,2,2,1,1,1,1,1,2,0,0,0,0,2,2,2,1
map(0, 9)=1,2,0,2,1,1,1,1,1,1,1,2,2,2,0,0,2,1,1,1
map(0,10)=1,2,0,2,1,1,1,1,1,1,1,1,1,2,0,0,2,1,1,1
map(0,11)=1,2,0,2,2,2,2,2,2,1,1,2,2,2,0,0,2,2,2,1
map(0,12)=1,2,0,0,0,0,0,0,2,1,1,2,0,0,0,0,0,0,2,1
map(0,13)=1,2,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,2,1
map(0,14)=1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1
map(0,15)=1,2,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,2,1
map(0,16)=1,2,0,0,0,0,2,2,1,1,1,2,0,0,0,0,0,0,2,1
map(0,17)=1,2,0,0,0,2,2,1,1,1,1,2,0,0,0,0,0,0,2,1
map(0,18)=1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,1
map(0,19)=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
dim sin_tbl,256
repeat 256 : sin_tbl(cnt)=int(sin(3.14159/128*cnt)*256) : loop
dim cos_tbl,256
repeat 256 : cos_tbl(cnt)=int(cos(3.14159/128*cnt)*256) : loop
color 0,0,0
boxf
x=50*256:y=100*256:size=1
repeat
ar=0
stick sk,15
if sk&1 : r+=4 : if r>=256 : r=0
if sk&4 : r-=4 : if r<0 : r=255
if sk&2 : ar=-4
if sk&8 : ar=4
ay=cos_tbl(r)*ar
y+=ay
sy=y/256
a=sx/20:c=(sx+size)/20
b=sy/20:d=(sy+size)/20
z=map(a,b)+map(c,b)+map(a,d)+map(c,d)
if z>0 {
if ay>0 { sy=d*20-size-1:y=sy*256}
else {sy=(b+1)*20: y=sy*256}
}
ax=sin_tbl(r)*ar
x+=ax
sx=x/256
a=sx/20:c=(sx+size)/20
b=sy/20:d=(sy+size)/20
z=map(a,b)+map(c,b)+map(a,d)+map(c,d)
if z>0 {
if ax>0 { sx=c*20-size-1:x=sx*256}
else {sx=(a+1)*20:x=sx*256}
}
redraw 0
color 0,0,0
boxf
repeat 20
yy=cnt
repeat 20
xx=cnt
if map(xx,yy)=1 :color 255,255,255:boxf xx*20,yy*20,xx*20+18,yy*20+18
if map(xx,yy)=2 :color 10,10,50:boxf xx*20,yy*20,xx*20+18,yy*20+18
loop
loop
color 255,0,0
grect x/256,y/256,double(-r)/40.0,30,15
grect (x-(sin_tbl(r)*13))/256,(y-(cos_tbl(r)*13))/256,double(-r)/40.0,15,15
redraw 1
await 17
loop