私は現在、1人のプレーヤーを特色にしたゲームを作っています。私はまた、ユーザーが彼/彼女が遊びたいキャラクターを選ぶことができるキャラクタースクリーンを作った。特定のハイスコアが特定のキャラクターのロックを解除し、ユーザーがこのキャラクターにゲームで使用できるようにするにはどうすればよいですか?Swift 3でSpriteKitゲームのロック解除可能な文字を更新するにはどうすればよいですか?
今の私のプレーヤーが彼のすべてのプロパティを定義して、自分の迅速なファイルがあります。
import SpriteKit
class Player: SKSpriteNode, GameSprite {
var initialSize = CGSize(width:150, height: 90)
var textureAtlas: SKTextureAtlas = SKTextureAtlas(named: "Rupert")
let maxFlyingForce: CGFloat = 80000
let maxHeight: CGFloat = 900
var health:Int = 1
var invulnerable = false
var damaged = false
var damageAnimation = SKAction()
var dieAnimation = SKAction()
var forwardVelocity: CGFloat = 190
var powerAnimation = SKAction()
init() {
super.init(texture:nil, color: .clear, size: initialSize)
createAnimations()
self.run(soarAnimation, withKey: "soarAnimation")
let bodyTexture = textureAtlas.textureNamed("pug3")
self.physicsBody = SKPhysicsBody(texture: bodyTexture, size: self.size)
self.physicsBody?.linearDamping = 0.9
self.physicsBody?.mass = 10
self.physicsBody?.allowsRotation = false
self.physicsBody?.categoryBitMask = PhysicsCategory.rupert.rawValue
self.physicsBody?.contactTestBitMask = PhysicsCategory.enemy.rawValue | PhysicsCategory.treat.rawValue | PhysicsCategory.winky.rawValue | PhysicsCategory.ground.rawValue
func createAnimations() {
let rotateUpAction = SKAction.rotate(toAngle: 0.75, duration: 0.475)
rotateUpAction.timingMode = .easeOut
let rotateDownAction = SKAction.rotate(toAngle: 0, duration: 0.475)
rotateDownAction.timingMode = .easeIn
let flyFrames: [SKTexture] = [
textureAtlas.textureNamed("pug1"),
textureAtlas.textureNamed("pug2"),
textureAtlas.textureNamed("pug3"),
textureAtlas.textureNamed("pug4"),
textureAtlas.textureNamed("pug3"),
textureAtlas.textureNamed("pug2")
]
let flyAction = SKAction.animate(with:flyFrames, timePerFrame: 0.07)
flyAnimation = SKAction.group([SKAction.repeatForever(flyAction), rotateUpAction])
let soarFrames:[SKTexture] = [textureAtlas.textureNamed("pug5")]
let soarAction = SKAction.animate(with: soarFrames, timePerFrame: 1)
soarAnimation = SKAction.group([SKAction.repeatForever(soarAction), rotateDownAction])
をこれは、すべてのコードではありませんが、あなたはポイントを得ます。
次に、Gamesceneに表示されるプレイヤーファイルにすべての属性をプレーヤーファイルに結び付けているGamesceneファイルには、と表示されます。最初のプレイヤーをあるプレーヤーと置き換えることができても、一度にすべてを置き換える方法がわからないようなアニメーションがたくさんあります。 gamesceneクラスとプレーヤークラスの両方にまたがる条件を設定して、特定のイメージを他のイメージに差し替えるだけで、同じアクションを維持できるようにしたい。
ありがとうございました!ここで