新プログラミング言語Swiftでを使って作られたFlappyBirdサンプルについて
WWDCの中で最もインパクトが強かったと思われるのがiOS/Mac OSXアプリ用新プログラミング言語Swiftの登場ではないでしょうか。 電子書籍を読んで勉強するのはもちろんですが、やはり実際に動くコードをみるとわかりやすいんじゃないかと思います。
新プログラミング言語Swiftでを使って作られたFlappyBirdサンプルのソースを見て、そこから学んで行きたいので、
FlappyBirdサンプルのソースを教えてください。
新プログラミング言語Swiftでを使って作られたFlappyBirdサンプルのソースを見て、そこから学んで行きたいので、
FlappyBirdサンプルのソースを教えてください。
ベストアンサー
0
iQi - 面白いアプリを開発中
FlappyBirdサンプルのソースは下記となります。
https://github.com/gscalzo/FlappySwift
AppDelegate.swiftなどもあり、ファイル数は5つくらいのSwiftファイルとなっています。全体の動きをつかむのも難しくなさそうです。
コードをいくら見ていても実際に自分が作りたいものとは厚くて高い壁があるものです。実際に動くソースを見て、そこから学んでいくのはいかがでしょう。
FlappySwiftはiOS用、MIT Licenseのオープンソース・ソフトウェアです。
GameScene.swift 一部抜粋
https://github.com/gscalzo/FlappySwift
AppDelegate.swiftなどもあり、ファイル数は5つくらいのSwiftファイルとなっています。全体の動きをつかむのも難しくなさそうです。
コードをいくら見ていても実際に自分が作りたいものとは厚くて高い壁があるものです。実際に動くソースを見て、そこから学んでいくのはいかがでしょう。
FlappySwiftはiOS用、MIT Licenseのオープンソース・ソフトウェアです。
GameScene.swift 一部抜粋
//
// GameScene.swift
// FlappyBird
//
// Created by Nate Murray on 6/2/14.
// Copyright (c) 2014 Fullstack.io. All rights reserved.
//
import SpriteKit
class GameScene: SKScene {
var bird = SKSpriteNode()
var skyColor = SKColor()
var verticalPipeGap = 150.0
var pipeTextureUp = SKTexture()
var pipeTextureDown = SKTexture()
var movePipesAndRemove = SKAction()
override func didMoveToView(view: SKView) {
// setup physics
self.physicsWorld.gravity = CGVectorMake( 0.0, -5.0 )
// setup background color
skyColor = SKColor(red: 81.0/255.0, green: 192.0/255.0, blue: 201.0/255.0, alpha: 1.0)
self.backgroundColor = skyColor
// ground
var groundTexture = SKTexture(imageNamed: "land")
groundTexture.filteringMode = SKTextureFilteringMode.Nearest
var moveGroundSprite = SKAction.moveByX(-groundTexture.size().width * 2.0, y: 0, duration: NSTimeInterval(0.02 * groundTexture.size().width * 2.0))
var resetGroundSprite = SKAction.moveByX(groundTexture.size().width * 2.0, y: 0, duration: 0.0)
var moveGroundSpritesForever = SKAction.repeatActionForever(SKAction.sequence([moveGroundSprite,resetGroundSprite]))
for var i:CGFloat = 0; i < 2.0 + self.frame.size.width / ( groundTexture.size().width * 2.0 ); ++i {
var sprite = SKSpriteNode(texture: groundTexture)
sprite.setScale(2.0)
sprite.position = CGPointMake(i * sprite.size.width, sprite.size.height / 2.0)
sprite.runAction(moveGroundSpritesForever)
self.addChild(sprite)
}
// skyline
var skyTexture = SKTexture(imageNamed: "sky")
skyTexture.filteringMode = SKTextureFilteringMode.Nearest
var moveSkySprite = SKAction.moveByX(-skyTexture.size().width * 2.0, y: 0, duration: NSTimeInterval(0.1 * skyTexture.size().width * 2.0))
var resetSkySprite = SKAction.moveByX(skyTexture.size().width * 2.0, y: 0, duration: 0.0)
var moveSkySpritesForever = SKAction.repeatActionForever(SKAction.sequence([moveSkySprite,resetSkySprite]))
for var i:CGFloat = 0; i < 2.0 + self.frame.size.width / ( skyTexture.size().width * 2.0 ); ++i {
var sprite = SKSpriteNode(texture: skyTexture)
sprite.setScale(2.0)
sprite.zPosition = -20;
sprite.position = CGPointMake(i * sprite.size.width, sprite.size.height / 2.0 + groundTexture.size().height * 2.0)
sprite.runAction(moveSkySpritesForever)
self.addChild(sprite)
}
・・・