gpt4 book ai didi

ios - 按下时将选择器添加到 SKSpriteNode

转载 作者:行者123 更新时间:2023-11-30 12:54:12 25 4
gpt4 key购买 nike

我需要向 SKSpriteNode 添加选择器或某种类型的事件类。因此,当用户单击其中一个 SKSpriteNode 时,它​​会告诉其中一个将其纹理设置为选定的图像,但也会告诉任何其他节点为未选定的图像。

下面是我在触摸中开始的函数,当选择 SKSpriteNode 时,它​​将纹理设置为所选图像“1-selected”。假设角色 1 被按下,我需要告诉角色 2,3,4,x 将图像设置为“1-未选择”。

        if Character1.contains(location) {

Character1.texture = SKTexture(imageNamed: "1-selected")
run(ButtonPressed)

}

if Character2.contains(location) {

Character2.texture = SKTexture(imageNamed: "2-selected")
run(ButtonPressed)

}`

最佳答案

实现此目的的一种方法是将所有 Sprite 放入一组或数组中,一旦有人按下该按钮,就迭代该数组并为每个 Sprite 运行您想要的操作,同时过滤掉刚刚触摸的 Sprite 。然而,这也意味着您应该在游戏完成后注意从数组中添加和删除这些 Sprite ,以免保留此内存。

var mySpriteArray = [Sprite1, Sprite2, Sprite3] 

if Character1.contains(location) {

Character1.texture = SKTexture(imageNamed: "1-selected")
for loopSprite in mySpirteArray{
if (loopSprite != Character1){
loopSprite.texture = "1-not-selected.png"
}

}}

您甚至可以扩展它,以便为每个角色执行 for 循环并查看它是否包含您的位置,这样您就不必为每个角色执行 if 语句(即 if character1.contains(location),如果是 char2,如果是 char3 等)。

关于ios - 按下时将选择器添加到 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40618251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com