gpt4 book ai didi

swift - 在我的 Sprite-Kit 游戏中实现此操作的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 13:18:28 24 4
gpt4 key购买 nike

我有一个birdNode(spriteNode)在肖像场景中水平移动。

birdNode 正在向屏幕底部的 cgPoint 扔下一个蛋(spriteNode)。

我希望 BirdNode 在任何时间/位置随机掉落他的蛋。

我考虑过创建一个 NSTimeInterval,其中包含 2 秒之间的随机数(birdNode 穿过屏幕所需的时间),使 EggNode 在birdNode 位置生成,并调用 dropEgg 函数。

我还考虑过生成一个随机CGPoint,加载eggNode于

birdNode.position.x = randomPoint

然后调用 dropEgg 函数。

我的问题是我应该使用某种方法而不是另一种方法?我到底应该在哪里调用 dropNode 函数。现在我无法让它工作。

我尝试在下面的 currentTime 更新函数中考虑 randomTime/randomPosition 并删除 Node,但它在每个帧渲染时都会产生鸡蛋,所以我认为这不是正确的方法。

override func update(currentTime: CFTimeInterval) {
}

这是我的代码,用于放下鸡蛋,并创建随机 dropPoint float ,以及小鸟飞过屏幕。

    func dropEgg(){

//aim
let dx = eggNodeTarget.position.x - birdNode.position.x
let dy = eggNodeTarget.position.y - birdNode.position.y
let angle = atan2(dy, dx)
dragonProjectileNode.zRotation = angle

//Seek
var vx = turretNode.position.x
var vy = turretNode.position.y

//creates eggNodeSprite
loadEggNode()

//shoot
let shootAction = SKAction.moveTo(CGPointMake(vx, vy),duration: 0.75)
eggNode.runAction(shootAction)

}

func loadRandDropLocationX() -> CGFloat{

//or minNodeTimeValue?
var MinNodeSpawnValue = self.frame.size.width * 0.2

//or maxNodeTimeValue?
var MaxNodeSpawnValue = self.frame.size.width * 0.8

//or randomTime?
var randomPointUInt32 = UInt32(MaxSpawnValue - MinSpawnValue)
return (CGFloat(arc4random_uniform(randomPointUInt32)) + MinNodeSpawnValue)
}

func dragonMoveRight(){
let moveDragon = SKAction.moveTo(loadRandDestinationRight(), duration: 2.3)
dragonNode.runAction(moveDragon)
}

最佳答案

使用NSTimer每 2 秒调用一次 dropEgg()

喜欢:

NSTimer.scheduledTimerWithTimeInterval(2,目标:self,选择器:#selector(dropEgg),userInfo:nil,重复:true)

关于swift - 在我的 Sprite-Kit 游戏中实现此操作的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005455/

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