首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PICO-8中的变量更新错误

PICO-8中的变量更新错误
EN

Stack Overflow用户
提问于 2021-03-07 23:59:44
回答 1查看 48关注 0票数 1

我从头开始构建了一个简单的蛇游戏,作为PICO-8和Lua的练习。

我试图通过创建一个旧的身体位置的副本来让身体跟随头部,并沿着长度更新。

我创建了一个t_old变量来存储原始的主体位置,但它与t同时被更新。我对此缺乏解释。

代码语言:javascript
复制
function train_move(t,d)
 local t_old=t --grab existing
 --update head based on direction of movement
 if d==0 then 
  t[1].x-=sprite_size --left
 elseif d==1 then
  t[1].x+=sprite_size --right
 elseif d==2 then
  t[1].y-=sprite_size --up
 else
  t[1].y+=sprite_size --down
 end
 --update body **I have noticed that t[1]==t_old[1] here??
 for i=2,#train do
  t[i].x=t_old[i-1].x
  t[i].y=t_old[i-1].y
 end
 return t
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-08 00:52:17

表值按引用复制。

tt_old指的是相同的表值。

阅读此How do you copy a Lua table by value?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66518476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档