Как разделить basedir от полного пути для получения относительного пути?

В цикле 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.

24
задан Alex 2 February 2016 в 09:06
поделиться

4 ответа

Немного менее подробное решение будет указывать somepath внутри <pathconvert>:

<pathconvert property="relative.dir">
  <path location="${somepath}"/>
  <globmapper from="${basedir}/*" to="./*" />
</pathconvert>
7
ответ дан Garns 28 November 2019 в 23:01
поделиться

Это был подход, который хорошо работал для меня в Windows, адаптированный из ответа @Garns:

<path id="uploadFilePath">
    <fileset dir="${wcm.folderName}">
        <include name="*" />
        <exclude name="*.attr" />
    </fileset>
</path>

<pathconvert property="relFilelist">
    <path refid="uploadFilePath" />
    <mapper>
        <globmapper from="${wcm.folderName}/*" to="*" handledirsep="true" />
    </mapper>
</pathconvert>

Я думаю, что handledirsep = "true" очень важен в globmapper, он не работал для в противном случае, независимо от того, сколько я возился с прямой / обратной косой чертой. (Я делаю все свои косые черты как вперед в моих скриптах ant, чтобы я мог запускать их в unixy системах.) Моя версия Ant - 1.8.1.

1
ответ дан DWoldrich 28 November 2019 в 23:01
поделиться

местоположение автоматически расширяет путь, используя базис проекта . Поэтому я думаю, что опция значение дает лучшее управление:

<property name="base.dir" value="/home/myuser"/>

и

<property name="somedir.dir" value="${base.dir}/some_dir"/>
0
ответ дан 28 November 2019 в 23:01
поделиться

Возможно, вы сможете использовать базовое имя Ant задача . Если у вас есть:

<property name="somedir" value="/path/to/file/here" />
<basename file="${somedir}" property="somebasedir" />
<echo>${somebasedir}</echo>

Отображается значение «здесь». Это только кажется, что дает вам последний каталог, который может не получить достаточно того, что вы хотите.

3
ответ дан 28 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

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