让方块移动
对象p代表player:
p={
x=10,
y=10,
vx=0,
vy=0,
w=20,
h=20,
c=2,
r="p" --role=player
}
与之前的版本相比,这里多了vx与vy,代表一个向量,用来设置p的移动。
同时设置一个gos数组(lua里叫做table),并把player加进去:
gos={}
table.insert(gos,p)
如何让方块移动呢?只需要改变坐标即可,也就是p的x和y。
在input函数中,使用btn方法来处理键盘事件:
function input()
if btn(0) then
p.vy=-1
elseif btn(1) then
p.vy=1
elseif btn(2) then
p.vx=-1
elseif btn(3) then
p.vx=1
else
p.vx=0
p.vy=0
end
end
通过代码可知,0为上,1为下,2为左,3为右。
相应地,update
变为:
function update()
for i,v in ipairs(gos) do
v.x=v.x+v.vx
v.y=v.y+v.vy
end
end
draw
变为:
function draw()
for i,v in ipairs(gos) do
rect(v.x,v.y,v.w,v.h,v.c)
end
end
这样,按上下左右键就实现了player的移动效果。
tic80的全部键盘事件,请阅读下一篇《键盘代码》。