gpt4 book ai didi

ios - SpriteKit 多向滚动

转载 作者:行者123 更新时间:2023-11-28 22:09:33 24 4
gpt4 key购买 nike

出于测试目的,我正在使用 SpriteKit 开发太空射击游戏。游戏区域大小为 700 x 700 像素/点。显然不适合 iPhone 屏幕。这意味着我需要某种影响玩家 + 敌人 + 子弹 + 小行星的滚动。我搜索了谷歌,但大多数关于滚动的主题都提到了 Cocos2D,并且几乎总是提到 Cocos2D 特定的功能,不是由 sprite kit 提供的。所以这是我的第一款游戏,所以我不确定实现多向滚动的正确方法是什么。我希望你们能给我一个解决方案和/或提示/教程或任何其他对我有帮助的东西:D

最佳答案

创建你的“宇宙飞船”,创建一个相机节点,并在更新方法中让你的相机始终以宇宙飞船为中心。

类似于此问题的内容:How to make camera follow SKNode in Sprite Kit?

-(void)centerOnNode:(SKNode*)node {
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];
cameraPositionInScene.x = 0;
node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - cameraPositionInScene.y);
}

然后您必须弄清楚自己的游戏机制,了解船的移动方式,但如果您只是简单地暗示船会跟随您的手指,您可以使用 SKActions 为手指位置设置动画。示例:https://stackoverflow.com/a/19172574/525576

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

for (UITouch *touch in touches) {

for (UITouch *touch in touches) {

CGPoint location = [touch locationInNode:self];

CGPoint diff = CGPointMake(location.x - _myPlayer.position.x, location.y - _myPlayer.position.y);

CGFloat angleRadians = atan2f(diff.y, diff.x);

[_myPlayer runAction:[SKAction sequence:@[
[SKAction rotateToAngle:angleRadians duration:1.0],
[SKAction moveByX:diff.x y:diff.y duration:3.0]
]]];
}
}
}

关于ios - SpriteKit 多向滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23251413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com