Sprite kit – как отображать половину спрайта / текстуры / изображения

Я работаю над проектом Sprite Kit, в котором мне нужно отображать в некоторых случаях только половину существующего изображения.

Я попытался сделать кадр спрайта меньше, но он просто растягивает изображение.

Есть ли возможность использовать маску или что-то еще, чтобы отобразить только половину спрайта / изображения / текстуры?

One Solution collect form web for “Sprite kit – как отображать половину спрайта / текстуры / изображения”

Итак, чтобы показать только половину изображения, текстуры, спрайта, кому-то понадобится использовать SKCropNode. Единственная разумная вещь – обрезать спрайт, который вам нужен, начиная с половины, а не просто обрезать с заранее определенным размером. Этого можно добиться, установив положение узла маски.

1) создать SkSpriteNode с этой текстурой / изображением:

// Obj-C SKSpriteNode *skelet = [SKSpriteNode spriteNodeWithImageNamed:imageName]; // Swift let skelet = SKSpriteNode(imageNamed: imageName) 

2) создать SKCropNode:

 // Obj-C SKCropNode * cropNode = [SKCropNode node]; // Swift let cropNode = SKCropNode() 

3) создать маску

 // Obj-C SKSpriteNode *mask = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(skelet.frame.size.width/2, skelet.frame.size.height)]; // Swift let mask = SKSpriteNode(color: .black, size: CGSize(width: skelet.frame.size.width/2, height: skelet.frame.size.height)) 

** установите положение маски на половину необходимого результата (вам нужно половину скелета -> установить положение маски на половину «половины скелета»)

 // Obj-C mask.position = CGPointMake(skelet.frame.size.width/4, 0); // Swift mask.position = CGPoint(x: skelet.frame.size.width/4, y: 0) 

Разделение на 4, потому что вы нуждаетесь в центре маски, чтобы быть не в центре Skelet узла, но перешли на половину половины Skelet (напоминания узла маски работает с точкой привязки по умолчанию 0,5 0,5 – поэтому нулевая точка соответствует центру узла скелета).

4) добавьте необходимые элементы в узел обрезки

 // Obj-C [cropNode addChild:skelet]; [cropNode setMaskNode:mask]; [self addChild:cropNode]; // Swift cropNode.addChild(skelet) cropNode.maskNode = mask self.addChild(cropNode) 
  • Как JSTileMap обрабатывает карты сетчатки и ipad / iphone?
  • Как создать главное меню для игры spritekit, сделанной с быстрым в xcode?
  • Перекрытие SpriteNodes при вращении в качестве единицы
  • Изменение текстур названия проекта делает неправильным: Cant reverse
  • Как создать переход в SKAction?
  • iOS - добавление эффекта «взрыва» (который прерывает Sprite в маленькие кусочки, а затем падает), чтобы справиться в SpriteKit
  • Приостановить одно действие в SKSpriteNode во время запуска другого
  • Непрямоугольное столкновение SpriteKit PhysicsBody
  • iOS 7.1 Sprite Kit AVAudioSession Crash при вводе фона
  • Как реализовать физический эффект в SimCity 5, что здание качается, когда оно перемещается?
  • В чем разница setScale и размера SKSpriteNodes в SpriteKit и Swift?
  • Interesting Posts

    Как whatsapp получает несколько уведомлений, когда APNS хранит только один, если устройство находится в автономном режиме?

    Узел SkCamera имеет двусмысленный размер?

    Xcode 4.2 "идентификатор повторного использования ячеек в nib (Cell) не соответствует идентификатору, используемому для регистрации nib (ThisCell)"

    Получить NSRange из соответствия NSRegularExpression

    iOS 7 Локальные уведомления без звука по умолчанию

    почему дважды позвонил didEnterRegion?

    Не удается открыть / создать базу данных SQLite в iOS

    Передача / Ввод ManagedObjectContext в контроллеры просмотра

    установить фоновые изображения для Iphone 3g, Iphone 4s и Iphone 5

    Ошибка при подписании кода: проверка неудачной команды

    Объект Objective-C ++ для импорта C ++ не работает, cassert не найден

    Когда открывать и закрывать SQlite DB в жизненном цикле iOS?

    Принудительное перемещение UITableView к вершинам ячеек

    Как использовать UIViewPropertyAnimator с автоматической компоновкой?

    UILocalNotification оживляет дважды

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.