
子ども向けプログラミングアプリ「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アプリのプログラミングとの橋渡しになるアプリですね。今後のバージョンアップに期待したいです



