一位前同事留下的游戏不完整,没有记载。
阅读他的代码时,我发现:
protocol EnemyMovement {
func forward(speedPercent: Int)
func reverse(speedPercent: Int)
func left(speedPercent: Int)
func right(speedPercent: Int)
}
protocol Enemy {
var name: String {get set}
var enemyMovement: EnemyMovement {get set}
init (name: String, enemyMovement: EnemyMovement)
}
class EnemyInstance: Enemy {
var name = "No enemy Name"
var enemyMovement: EnemyMovement
required init (name: String, enemyMovement: EnemyMovement) {
self.name = name
self.enemyMovement = enemyMovement
//...
}
我找不到EnemyInstance
的具体实例,但是如果很清楚如何传递名称字符串,我不知道应该如何传递EnemyMovement。
var enemy = EnemyInstance(name: "zombie", enemyMovement?...)
有什么主意吗?
答案 0 :(得分:0)
由于参数的类型必须符合$models->execute_kw($db, $uid, $password, 'res.partner', 'search_read',
array(array(array('is_company', '=', true),
array('customer', '=', true))),
array('fields'=>array('name', 'country_id', 'comment'), 'limit'=>5));
,包括这些方法,因此您必须传递此对象。因此,您可以尝试创建示例struct
EnemyMovement
现在作为struct Movements: EnemyMovement {
func forward(speedPercent: Int) {
print(speedPercent)
}
func reverse(speedPercent: Int) {
print(speedPercent)
}
func left(speedPercent: Int) {
print(speedPercent)
}
func right(speedPercent: Int) {
print(speedPercent)
}
}
初始化程序的参数传递EnemyInstance
的新实例
Movements
然后,您可以在类的var enemy = EnemyInstance(name: "zombie", enemyMovement: Movements())
属性上调用某个方法,并执行该特定方法内的代码(在这种情况下,它应该显示enemyMovement
)
speedPercent