как заменить изображение SKSpriteNode на клик

Вам нужно напечатать несколько пробелов. Существует связь между количеством пробелов и числом (i), которое вы печатаете. Вы можете распечатать X количество пробелов, используя:

for (int k = 0; k < numSpaces; k++)
{
    System.out.print(" ");
}

Итак, в вашем коде:

int i, j;
for(i = 1; i <= 5; i++)
{
    // Determine number of spaces needed
    // print spaces
    for(j = 1; j <= i; j++)  
    {          
        System.out.print(i); 
    }      
    System.out.print("\n");        
}
0
задан Mark Szymczyk 17 January 2019 в 00:11
поделиться

1 ответ

В цикле for в функции touchesBegan node имеет тип SKNode. Вам нужно опуститься до SKSpriteNode. Когда вы переходите на SKSpriteNode, вы можете изменить текстуру.

for node in tappedNodes {
    if let tappedBalloon = node as? SKSpriteNode {
        if tappedBalloon.name == "blue_balloon" {
            // Set tapped balloon's texture
            tappedBalloon.texture = // The texture you want here.
            // Handle tapping a balloon, such as increasing the score.
        }
    }
}

Я заметил в вашем цикле for, что у вас есть один и тот же код внутри блоков if для синих и фиолетовых воздушных шаров. Вы можете легко переместить дублирующийся код в его собственную функцию, popBalloon или как вы хотите ее назвать, и вызывать эту функцию, когда вы нажимаете на шарик. Если между шариками нет разницы, кроме их цвета, вы можете просто дать каждому шарику имя "balloon" и проверить одно имя вместо проверки нескольких названий шариков. Это сократило бы ваш код.

Вы также можете упростить понимание своего кода, создав структуру или класс Balloon и указав в качестве одного из свойств спрайтовый узел. Напишите код, который имеет дело с воздушными шарами вместо узлов спрайтов и другими терминами SpriteKit.

0
ответ дан Mark Szymczyk 17 January 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: