在变量中捕获最后一个位置的对象?

Posted

技术标签:

【中文标题】在变量中捕获最后一个位置的对象?【英文标题】:Capturing last location's object in a variable? 【发布时间】:2016-02-16 07:15:12 【问题描述】:

现在我有大约 10x10 的方格,玩家可以一次移动 1 个方格。 当他们跳到一个正方形时,我需要一个动画来播放基于他们跳到的正方形的 sprite_index 和他们刚刚来自的那个正方形。 我已经解决了“跳转到”的问题。 在玩家和方格(这里的其他方格)发生碰撞事件中:

with(other)
if sprite_index = sGreenH 
instance_create(x,y,oGreenPlayerAni)

(还有更好的方法来完成上述操作吗?我可以删除它/替换它然后放置一些东西,而不是在上面生成它吗?)

所以现在我正在尝试从角色离开的方块播放动画。我可以通过带有正方形的玩家碰撞来做到这一点:

xx = xprevious and yy = yprevious 
instance_create(xx,yy, someanimation)

问题是我无法自定义播放的动画。有 4 种可能的动画颜色可用于 4 个不同的颜色方块。 所以我尝试在我的广场上发生碰撞事件,让玩家制作一个变量,例如

if sprite_index = sGreen 
global.previousColor = 1

我的每一种颜色。然后在我的玩家与广场的碰撞事件中,我又遇到了

if global.previousColor = 1 
instance_create(xx,yy, oGreenHollowAni)

然后我在移动时出现错误。

代码方块与玩家碰撞(玩家在方块上):http://puu.sh/n9zCY/2f226b6d3c.png

代码播放器与方块碰撞:http://puu.sh/n9zK6/deac1a09f5.png

错误:http://puu.sh/n9zPj/ea84a9a943.png

【问题讨论】:

【参考方案1】:

我不确定我是否正确理解了您的问题。据我所知,你总是在玩家移动时创建一个新实例?

如果是这样,那就不好了。当您创建 10x10 的正方形网格时,我猜您创建了一个数组,您将在其中放置显示哪种颜色的正方形的信息 fe。 array[x][y] = color.green ...然后您可以创建一个枚举并定义 green = 1, blue = 2 ... 这个数组将是一个全局数组。 然后从玩家类别中检查您当前所在的方格,如果您移动,则检查您将在哪个方格上。使用这些信息,您可以定义动画。

如果这就是你的意思,请告诉我。

埃里克

【讨论】:

以上是关于在变量中捕获最后一个位置的对象?的主要内容,如果未能解决你的问题,请参考以下文章

Block对象变量捕获(三)

RegExp

有啥方法可以清除已经从安卓设备手动捕获的位置详细信息?

有没有办法清除已经从Android设备手动捕获的位置详细信息?

如何使用lambda表达式捕获局部变量?

在 lambda 中,引用的按值捕获是不是会复制底层对象?