builder icon indicating copy to clipboard operation
builder copied to clipboard

interface embeding sprite but cannot use sprite method

Open go-wyvern opened this issue 3 months ago • 1 comments

课程: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
	}
}

go-wyvern avatar Nov 24 '25 08:11 go-wyvern

有一个更简单的例子:

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
}

go-wyvern avatar Nov 27 '25 11:11 go-wyvern