我该如何消除这种小抽搐?

铁器学

因此,我在SpriteKit游戏项目中有了一个更新方法,其中根据领导者的跟随方向确定其他后续角色的位置:

-(void) update {

if (_followingEnabled == YES || _isLeader == YES) {

switch (currentDirection) {
    case up:
        self.position = CGPointMake(self.position.x, self.position.y + speed);
        // making a line of characters
        if (self.position.x < _idealX && _isLeader == NO) {
            self.position = CGPointMake(self.position.x + 1, self.position.y);
        } else if (self.position.x > _idealX && _isLeader == NO) {
            self.position = CGPointMake(self.position.x - 1, self.position.y);
        }
        break;
    case down:
        self.position = CGPointMake(self.position.x, self.position.y - speed);
        // making a line of characters
        if (self.position.x < _idealX && _isLeader == NO) {
            self.position = CGPointMake(self.position.x + 1, self.position.y);
        } else if (self.position.x > _idealX && _isLeader == NO) {
            self.position = CGPointMake(self.position.x - 1, self.position.y);
        }
        break;
    case left:
        self.position = CGPointMake(self.position.x - speed, self.position.y);
        // making a line of characters
        if (self.position.y < _idealY && _isLeader == NO) {
            self.position = CGPointMake(self.position.x, self.position.y + 1);
        } else if (self.position.y < _idealY && _isLeader == NO) {
            self.position = CGPointMake(self.position.x, self.position.y - 1);
        }
        break;
    case right:
        self.position = CGPointMake(self.position.x + speed, self.position.y);
        // making a line of characters
        if (self.position.y < _idealY && _isLeader == NO) {
            self.position = CGPointMake(self.position.x, self.position.y + 1);
        } else if (self.position.y < _idealY && _isLeader == NO) {
            self.position = CGPointMake(self.position.x, self.position.y - 1);
        }
        break;
    case noDirection:
        // in case you want to do something for noDirection
        break;
    default:
        break;
} // switch (currentDirection) {

} // if (_followingEnabled == YES && _isLeader == YES) {

}

_idealX并且_idealY是从领导者的位置传递过来的整数(我确实将它们设置为属性..),跟在他后面的其他角色的位置也是浮动的(如果我错了,请纠正我)

我的理论:

因此,当我加或减1时,我的字符(浮点数)的位置将永远不等于,_idealX / _idealY(int)并且语句将一遍又一遍地运行,这会导致Y / X轴上的这种小的“抽动”或“摇动”(添加并减去1)。

因此,您会更好地理解和可视化它,我制作了一个屏幕截图(在移动时他身后的两个字符(领导)抽搐了。):

在此处输入图片说明

我该如何解决这个问题,使跟随者不要在领导者后面“抽搐”或“摇晃”?

0x渐隐

我已经不记得确切的计算了,但是一种通用的方法是尝试确保事物与像素网格对齐以进行显示。

x = floorf(x+0.5)

您将需要一个实际位置和一个工程图位置,因为如果您使用底值,则在低速下无法正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何消除这种影响?

来自分类Dev

我该如何改善这种结合?

来自分类Dev

我该如何对这种对象进行分类?

来自分类Dev

如何消除这种左递归

来自分类Dev

我该如何处理这种密码学?

来自分类Dev

我该如何解决SwipeRefreshLayout的这种不良行为

来自分类Dev

我该如何创建这种性质的提交门户?

来自分类Dev

我该如何处理这种情况C ++ sizeof问题

来自分类Dev

在这种情况下,我该如何使用“ while”

来自分类Dev

在这种情况下,我该如何缩短if语句?

来自分类Dev

如果出现这种情况,我该如何突破?

来自分类Dev

我如何消除冗余

来自分类Dev

我如何将文本放在抽屉标题的左下角并减小抽屉标题的高度?

来自分类Dev

为什么我的拆分视图具有这种行为,我该如何解决?

来自分类Dev

为什么Resharper会给我这种违反约束的行为,我该如何安抚呢?

来自分类Dev

该代码如何消除重复的数组元素?

来自分类Dev

我该如何在Laravel的口才中表达这种游戏所有者关系

来自分类Dev

这种方法是否可能导致死锁?我该如何预防?

来自分类Dev

为什么这种相互递归的数据定义不完整,我该如何解决?

来自分类Dev

我该如何在R中进行这种图形处理?非统计数字

来自分类Dev

我该如何使这种绿色从底部发出而不是从右边发出

来自分类Dev

在这种情况下,Drake是否遵守关节限制?我该如何检查?

来自分类Dev

我该如何在mysql字段中以这种格式解码数据?

来自分类Dev

Gson:预期是 STRING 但 BEGIN_OBJECT —— 我该如何处理这种情况?

来自分类Dev

如何消除LL解析器的这种Left递归

来自分类Dev

这种依赖性为我提供了一个罐子的两个版本。我该如何解决?

来自分类Dev

我如何摆脱这种goto?

来自分类Dev

如何为这种特殊情况输入配方,我不知道该怎么做

来自分类Dev

我该如何在功能控制台中编写可变性?在这种情况下写?

Related 相关文章

  1. 1

    如何消除这种影响?

  2. 2

    我该如何改善这种结合?

  3. 3

    我该如何对这种对象进行分类?

  4. 4

    如何消除这种左递归

  5. 5

    我该如何处理这种密码学?

  6. 6

    我该如何解决SwipeRefreshLayout的这种不良行为

  7. 7

    我该如何创建这种性质的提交门户?

  8. 8

    我该如何处理这种情况C ++ sizeof问题

  9. 9

    在这种情况下,我该如何使用“ while”

  10. 10

    在这种情况下,我该如何缩短if语句?

  11. 11

    如果出现这种情况,我该如何突破?

  12. 12

    我如何消除冗余

  13. 13

    我如何将文本放在抽屉标题的左下角并减小抽屉标题的高度?

  14. 14

    为什么我的拆分视图具有这种行为,我该如何解决?

  15. 15

    为什么Resharper会给我这种违反约束的行为,我该如何安抚呢?

  16. 16

    该代码如何消除重复的数组元素?

  17. 17

    我该如何在Laravel的口才中表达这种游戏所有者关系

  18. 18

    这种方法是否可能导致死锁?我该如何预防?

  19. 19

    为什么这种相互递归的数据定义不完整,我该如何解决?

  20. 20

    我该如何在R中进行这种图形处理?非统计数字

  21. 21

    我该如何使这种绿色从底部发出而不是从右边发出

  22. 22

    在这种情况下,Drake是否遵守关节限制?我该如何检查?

  23. 23

    我该如何在mysql字段中以这种格式解码数据?

  24. 24

    Gson:预期是 STRING 但 BEGIN_OBJECT —— 我该如何处理这种情况?

  25. 25

    如何消除LL解析器的这种Left递归

  26. 26

    这种依赖性为我提供了一个罐子的两个版本。我该如何解决?

  27. 27

    我如何摆脱这种goto?

  28. 28

    如何为这种特殊情况输入配方,我不知道该怎么做

  29. 29

    我该如何在功能控制台中编写可变性?在这种情况下写?

热门标签

归档