これは難しいことではないと思っていますので、助言をいただければ幸いです。クラス内のメソッドからvar値を更新する
私は、もっと良いクラスを理解しようとしている遊び場でちょうど回っています。ゲームのシナリオでは、私は健康値と攻撃値を持つ 'Player'クラスを作った。攻撃値は、「Weapon」という名前の別のクラスに由来し、それぞれ独自のDouble値を持ちます。私は 'Player'クラスの中から、新しい武器が拾われてプレイヤーの新しい攻撃値を作成するように呼び出されるという関数を作成しようとしています。
私の関数 'weaponPickUp'は、Weapon.Typeの値をDouble型に割り当てることはできません。この機能を意図したとおりに動作させるためのアドバイスが必要です!
class Player {
var health = 100.00
var armor = 0
var attack: Double
init() {
attack = Weapon.init().fist
}
func weaponPickUp(weaponPickedUp: Weapon.Type){
attack = weaponPickedUp
}
func attackEnemy(enemy: Enemy) {
let weaponStrike = enemy.health - attack
let currentEnemyHealth = weaponStrike
if currentEnemyHealth > 0 {
print("Enemy Hit, life remaining \(currentEnemyHealth)")
enemy.health = currentEnemyHealth
} else {
print("Enemy Destroyed")
}
}
}
class Weapon {
var fist = 25.0
var machette = 35.0
var special = Enemy.init().health/2.0
}
class Enemy {
var health = 100.0
var armor = 100.0
var attack1 = 10.0
var specialAttack = 50.0
}
あなたがリファクタリングすることはお勧めできません。なぜなら、あなたが学習曲線上でどこにいるのかがはっきりしているからです。代わりに、これらの概念を紹介するチュートリアル、または別の*チュートリアルを見つける必要があります。 – Andreas