【发布时间】:2014-01-31 19:55:41
【问题描述】:
所以我在我的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 时,我的字符(float)的位置永远不会等于_idealX / _idealY(int),并且语句会一遍又一遍地运行,这会导致在Y/X 轴(加减 1)。
所以你会更好地理解和想象这个,我做了一个截图(他身后的两个角色(领导者)在移动时抽搐..):
我该如何解决这个问题,这样追随者才不会在领导者身后“抽搐”或“摇晃”???
【问题讨论】:
-
取决于是特发性震颤还是良性肌束震颤综合征。
-
它只是向左 1 个像素,向右或上下 1 个像素,取决于方向,每秒 20 次...
标签: ios objective-c xcode ipad sprite-kit