gpt4 book ai didi

Swift 4 两个方向键与 spritekit

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

A screenshot of my game我想制作一个游戏(使用 Spritekit),您可以使用左方向键在已经可以使用的图 block map 中移动玩家。有了正确的瞄准器,你就可以瞄准对手,这也很有效。尽管我启用了多点触摸,但只有一个 Controller 同时工作。

操纵杆与方向键的含义相同。

    import SpriteKit
import GameplayKit

class GameScene: SKScene {

//These are just the touch functions

//touch functions

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for _ in touches {
if touches.first!.location(in: cam).x < 0 {
moveStick.position = touches.first!.location(in: cam)
}
if touches.first!.location(in: cam).x > 0 {
shootStick.position = touches.first!.location(in: cam)
}
}
}

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for _ in touches {
if touches.first!.location(in: cam).x < 0 {
moveStick.moveJoystick(touch: touches.first!)
}
if touches.first!.location(in: cam).x > 0 {
shootStick.waponRotate(touch: touches.first!)
}
}
}

open override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
for _ in touches {
resetMoveStick()
resetShootStick()
}
}

open override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for _ in touches {
resetMoveStick()
resetShootStick()
}
}



// update function
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered

let jSForce = moveStick.velocityVector
self.player.position = CGPoint(x: self.player.position.x + jSForce.dx,
y: self.player.position.y + jSForce.dy)
cam.position = player.position

}
}

最佳答案

正如 KnightOfDragon 指出的,您正在使用 .first。这意味着您的代码正在寻找场景中的第一次触摸,然后从那里开始。您的游戏不会让您同时使用两个操纵杆,因为您不会让它们同时使用。

各种触摸函数中的这些 if 语句:

for _ in touches {
if touches.first!.location(in: cam).x < 0 {
}
if touches.first!.location(in: cam).x > 0 {
}
}

应该看起来像这样:

for touch in touches {
let location = touch.location(in: self)
if location.x < 0 {
moveStick.moveJoystick(touch: location)
}
if if location.x > 0 {
shootStick.waponRotate(touch: location)
}
}

这应该可以修复您遇到的任何错误。

关于Swift 4 两个方向键与 spritekit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52263805/

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