gpt4 book ai didi

swift - 桌面游戏 : how make character walk from one house to another, 穿过中间的每个房子?

转载 作者:行者123 更新时间:2023-11-30 13:49:43 25 4
gpt4 key购买 nike

我上个月才开始学习 Swift 编码。这是我的第二个个人项目。我正在创建一个桌面游戏,例如“大富翁”之类的。这是我的原型(prototype)的图像:my table top board game

我使用 arc4random 作为骰子,并使用以下代码移动角色/玩家:

if positionPlayer1 == 1 {
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 1 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
player1.runAction(SKAction.moveByX(-66, y: 0, duration: 1))
}

} else if positionPlayer1 == 2 {
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 1 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
player1.runAction(SKAction.moveByX(-44, y: 0, duration: 1))
}

我也尝试过:

player1.runAction(SKAction.moveByX(-66, y: 0, duration: 1))
sleep(1)

问题是:角色等待总时间e直接跑到最终位置。假设骰子给出了 6,角色等待 6 秒并跑到最后一个位置。这在直线上不是问题,但如果运动经过拐角,角色会直接沿对角线切入最终位置,而不是按预期穿过每个房屋。任何帮助将不胜感激。

编辑:我决定尝试物理。我创建了很多 SKSpriteNode“墙”。对于我正在使用的所有节点:

squareBlock02.physicsBody?.allowsRotation = false
squareBlock02.physicsBody?.pinned = true
squareBlock02.physicsBody?.dynamic = false

结果是玩家撞到这些墙壁并移动它们。我尝试了质量、密度……没有什么可以阻止玩家将所有墙壁推开。

最佳答案

感谢所有试图提供帮助的人。

我终于在这个网站找到了答案:http://www.gamefromscratch.com/post/2014/07/02/Game-development-tutorial-Swift-and-SpriteKit-Part-4-Actions.aspx

import SpriteKit

// Solution found: http://www.gamefromscratch.com/post/2014/07/02/Game-development-tutorial-Swift-and-SpriteKit-Part-4-Actions.aspx

class GameScene: SKScene {

let player = SKSpriteNode(imageNamed: "Player_01-2.png")

override func didMoveToView(view: SKView) {
/* Setup your scene here */
player.anchorPoint = CGPoint(x:0.5,y:0.5)
player.position = CGPoint(x:view.bounds.midX,y:view.bounds.midY)
self.addChild(player)
doStuff()
}

func doStuff(){
var actions = Array<SKAction>()
actions.append(SKAction.moveTo(CGPoint(x:300,y:300), duration: 1))
actions.append(SKAction.rotateByAngle(6.28, duration: 1))
actions.append(SKAction.moveBy(CGVector(dx: 150,dy: 0), duration: 1))
actions.append(SKAction.colorizeWithColor(SKColor.redColor(), colorBlendFactor: 0.5, duration: 1))
let sequence = SKAction.sequence(actions)
player.runAction(sequence)
}

}

关于swift - 桌面游戏 : how make character walk from one house to another, 穿过中间的每个房子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438498/

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