我正在设计一个简单的游戏,比如太空入侵者。游戏场景有一个CCNode(_levelNode),我在其中加载了级别。 我的问题是关于滚动,在更新方法中我向上移动_hero和_physicsNode。
这是我的更新方法:
- (void)update:(CCTime)delta {
if (heroAlive) {
//scrolling
_hero.position = ccp(_hero.position.x, _hero.position.y + _level.levelSpeed);
_physicsNode.position = ccp(_physicsNode.position.x, _physicsNode.position.y - _level.levelSpeed);
//tilting : Moving the hero left and right
float maxX = winSize.width - _hero.contentSize.width/4;
float minX = _hero.contentSize.width/4;
CMAccelerometerData *accelerometerData = _motionManager.accelerometerData;
CMAcceleration acceleration = accelerometerData.acceleration;
CGFloat newXPosition = _hero.position.x + acceleration.x * 1000 * delta;
newXPosition = clampf(newXPosition, minX, maxX);
_hero.position = CGPointMake(newXPosition, _hero.position.y);
[self removeLasers];
}
}
以上工作正常,但我想知道我能否更轻松,更快地完成任务。有了这个,我还必须手动移动所有的激光器#39; removeLasers方法可以做到这一点,如果它们到达可见级别的末尾也会移除激光。
所以,如果你们有任何关于如何使我的游戏更容易构建的提示,我会很感激!!
下面有关游戏到目前为止的图片(使用的图像是工作图像):