子ども向けプログラミングアプリ「Switch」を試してみました。SwitchはScratchを参考にして開発されたiPadアプリです
動き・見た目・音・制御・調べる・演算の6つにカテゴリ分けされています。Scratchにあるペン・データ・その他はありません
変数、リスト、メッセージがないので複雑なプログラムは組めませんが、順次、反復、条件といったプログラムの基本動作は実装できます
選べるキャラクター(スプライト)は5種類。ユーザーが独自のキャラクターを作ることはできないので、もうちょっと増えると嬉しいですね
Scratchと違うのはブロックで組まれたプログラムをSwiftのソースで表示できるところ。SpriteKitを使ったソースが表示されます
Scratchに似ていますが、プロジェクトの互換性などはありません
Swiftプログラムへの書き出し
ソースコードを表示した状態で「Swiftプログラムを書き出す」を選べば出力できます。今回はAirDropでMacに送ってみました。
「project.zip」というファイルが出力されるので解凍します
Resourcesフォルダ
Sourcesフォルダ
readme.txtにXcodeへ組み込む方法が詳しく書かれているので、その通りにやってみます
今回利用したのはXcode8.1。ビルドすると恐ろしいくらいエラーが出ます。ソースコードがSwift3に対応していないから出るエラーです
なので、コンパイラをSwift2に変更します。「Build Settings」の「Use Legacy Swift Language Version」をYesにすればOK
これでビルドすると、今度はGameViewController.swiftとAppDelegate.swiftでエラーと警告がでます。プロジェクト作成時に自動生成されたプログラムはSwift3対応だからですね
GameViewController.swiftはこれ↓に置き換えればエラーが出なくなると思います
import UIKit import SpriteKit import GameplayKit class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() if let view = self.view as! SKView? { // Load the SKScene from 'GameScene.sks' if let scene = SKScene(fileNamed: "GameScene") { // Set the scale mode to scale to fit the window scene.scaleMode = .AspectFill // Present the scene view.presentScene(scene) } view.ignoresSiblingOrder = true view.showsFPS = true view.showsNodeCount = true } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Release any cached data, images, etc that aren't in use. } }
AppDelegate.swiftの警告はとりあえず無視します
一応、ランドスケープ(横画面)のみに対応します
これでビルドすると・・・無事動きました!シミュレータでは遅いですが、実機だとちゃんとしたスピードで動きます
「Hello, World!」というでっかい文字はGameScene.sksの「helloLabel」を削除すれば消えます
ScratchプログラミングとiPadアプリのプログラミングとの橋渡しになるアプリですね。今後のバージョンアップに期待したいです