Slide 1

Slide 1 text

·ͩiOSͰϦονͳԋग़ʹർฐͯ͠Δͷʁ ໘ന๏ਓ ΧϠοΫ ෍ాོհ @ryusukefuda iOSΦʔϧελʔζษڧձ 14,Feb,2015

Slide 2

Slide 2 text

ΧϠοΫͷΞϓϦࣄ৘

Slide 3

Slide 3 text

ʲࣗࣾ։ൃʳ ʲडୗ։ൃʳ

Slide 4

Slide 4 text

ԋग़ɺػೳͱ΋ʹ ༷ʑͳ΋ͷ͕ΞϓϦʹ ٻΊΒΕΔ

Slide 5

Slide 5 text

ྫ͑͹

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ർฐ…

Slide 9

Slide 9 text

ฐࣾઌഐ ʮͲ͏͠Α͏΋ͳ͘ͳͬͯԋग़ʹ ɹಈըΛͭͬ͜Μͩ͜ͱ͋ΔΑɻʯ

Slide 10

Slide 10 text

׬શͳΔർฐ…

Slide 11

Slide 11 text

Ϧονͳԋग़ ɾCoreAnimationʁ ɾUnityʁ ɾCocos2dʁ ɾLibraryʁ

Slide 12

Slide 12 text

ɾCoreAnimation ɾUnityɾCocos2d ɾLibrary ίʔυྔ૿͑Δ͠ɺେྔͷΦϒδΣΫτΛ ಈ͔͢ͷͱ͔େม…. ԋग़͸࡞Γ΍͍͚͢ͲɺωΠςΟϒͷػೳΛ ͍͍ͪͪϓϥάΠϯͰ͔͘ͷେม… ࣗ෼͕͍ͨ͠ԋग़ݟ͔ͭΒͳ͍…

Slide 13

Slide 13 text

ଞͷํ๏ͳ͍ͷʁ

Slide 14

Slide 14 text

͏ʔΜ…

Slide 15

Slide 15 text

͋ͬ!!

Slide 16

Slide 16 text

SpriteKit

Slide 17

Slide 17 text

ͱ͍͏͜ͱͰɺ SpriteKitΛΞϓϦͷ ԋग़ʹ࢖ͬͯΈ·ͨ͠

Slide 18

Slide 18 text

SpriteKitͱ͸ iOS 7 ͔Β௥Ճ͞Εͨɺ
 Apple͕ఏڙ͍ͯ͠Δ
 ήʔϜ༻ͷϑϨʔϜϫʔΫ

Slide 19

Slide 19 text

ɾΠϯετʔϧෆཁ
 ɾXcodeͰϓϨϏϡʔ͠ͳ͕Β ɹύʔςΟΫϧฤूՄೳ
 ɾUIKitͱಉ͡Α͏ʹهड़Ͱ͖Δ ಛ௃

Slide 20

Slide 20 text

࣮ࡍɺSpriteKitΛ ήʔϜͰ͸ͳ͘ɺ
 UIKitϕʔεͷΞϓϦʹ ࢖͑Δͷ͔ʁ

Slide 21

Slide 21 text

DEMO

Slide 22

Slide 22 text

Code https://github.com/ryusukefuda/SpriteKit-Demo

Slide 23

Slide 23 text

SKView SpriteKitΛදࣔ͢Δઐ༻ͷView SKScene( .sks) SKNodeΛܧঝ͠ɺϝΠϯͷॲཧΛߦ͏ɻ SKNode SpriteKitͷίΞͱͳΔΫϥε UIViewControllerͷΑ͏ͳ΋ͷ UIViewͷΑ͏ͳ΋ͷ NSObjectͷΑ͏ͳ΋ͷ

Slide 24

Slide 24 text

Step.1 ! ύʔςΟΫϧͭ͘Δ

Slide 25

Slide 25 text

SKSceneͱSKSceneͷαϒΫϥεΛ༻ҙ͠ɺ ύʔςΟΫϧͳͲԋग़Λ௥Ճ͢Δ func fireHeart(point:CGPoint) { let path = NSBundle.mainBundle().
 pathForResource("heartSpark", ofType: "sks") let sceneData = NSData(contentsOfFile: path!, ɹɹɹɹɹɹɹɹɹɹɹɹɹɹoptions: .DataReadingMappedIfSafe, error: nil)! let particle = NSKeyedUnarchiver.unarchiveObjectWithFile(path!) as SKEmitterNode particle.position = point self.addChild(particle) } Step.2

Slide 26

Slide 26 text

SKViewΛͭ͘Γɺ
 UIViewControllerͷViewʹSKViewΛadd͢Δ let skView = SKView(frame: self.view.bounds) self.view.addSubview(skView) Step.3

Slide 27

Slide 27 text

޷͖ͳλΠϛϯάͰSKSceneΫϥεͷԋग़ΛݺͿ @IBAction func tapFavoriteButton(sender: AnyObject) {
 let scene = UIScene.unarchiveFromFile("UIScene") as UIScene! let location = CGPointMake(sender.position.x - 50, sender.position.y) scene.fireHeart(location) } Step.4

Slide 28

Slide 28 text

SKActionͰύʔςΟΫϧʹΞχϝʔγϣϯΛ͚ͭΔ let scale = SKAction.scaleTo(1.0, duration: 1.0) let fadeout = SKAction.fadeOutWithDuration(0.5) let remove = SKAction.removeFromParent() let sequence = SKAction.sequence([scale, fadeout,remove]) particle.runAction(sequence) Animation

Slide 29

Slide 29 text

UIKitϕʔεͷΞϓϦʹSpriteKit Λ௥Ճ͢Δͱ͖ͷϙΠϯτ

Slide 30

Slide 30 text

UIViewͷ্ʹಁ໌ͷSKViewΛͷͤͯ SKViewͷλονΠϕϯτΛແޮʹ͢Δ skView.allowsTransparency = true ! skView.userInteractionEnabled = false UIView SKView

Slide 31

Slide 31 text

UIViewͷ( 0,0 ) ͱSKViewͷ ( 0,0 ) ͸ҧ͏ override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { ! for touch: AnyObject in touches { let location = touch.locationInView(self.view) scene.tapCircle(CGPointMake(location.x, self.view.bounds.height - location.y)) } } ! ( 0,0 ) UIView ( 0,0 ) SKView

Slide 32

Slide 32 text

SpriteKitΛ࢖ͬͯΈͯ ɾApple͕ఏڙ͍ͯ͠Δ҆৺ײ ɾطଘͷίʔυͷअຐΛ͢Δ͜ͱͳ͘ɹɹ ɹಋೖͰ͖Δ ɾσβΠφʔ͞Μ΋࢖͑Δ

Slide 33

Slide 33 text

·ͱΊ SpriteKitΛUIKitͱ ૊Έ߹ΘͤΔͷ͸͋Γʂ

Slide 34

Slide 34 text

Ϧονͳԋग़Λ iOSωΠςΟϒͰɻ

Slide 35

Slide 35 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ