builder
builder copied to clipboard
interface embeding sprite but cannot use sprite method
课程:https://x.qiniu.com/editor/curator/Coding-Course-36/sprites/Kiko/code
onStart => {
var radishs = []radish{Radish, Radish2, Radish3}
var boats = []boat{Boat, Boat2, Boat3}
for b in boats {
if b.IsWooden() {
var a Sprite = b // 此处必须赋值给a,才能用 a.step (radish内嵌的 sprite)
a.step 100
}
if b.IsShip() {
var a Sprite = b
a.step 160
}
}
stepTo "Boat3"
for radish in radishs {
turnTo radish
stepTo radish
}
}
有一个更简单的例子:
main.spx:
type foo interface {
get() int
Sprite
}
onStart => {
var b foo = Kai
b.step 100 // 无法访问 step 指令,报错 b.step undefined (type main.foo has no field or method step)
}
Kai.spx:
var (
a int
)
func get() int {
return a
}