Appcelerator TitaniumのQuickTiGame2dでプレイします。 パート1

現在、プログラミングの非常に有望な方向は、クロスプラットフォーム開発です。 さまざまな手段(Appcelerator Titanium、PhoneGap、moSync)に慣れてきたにもかかわらず、私はAppcelerator Titaniumを優先しています。

Titaniumでは、JavaScriptでAndroidおよびiOSアプリケーションを作成できます。 現在、公式Webサイトでは、このプラットフォームの開発者数は300,000人に達しています。

興味深い点は、Titaniumではアプリケーションだけでなく、モバイルデバイス向けの本格的なゲームも作成できることです。

Titanium Mobileの2次元ゲームエンジンモジュール-AndroidおよびiOSの開発を現在サポートしているOpenGL ESベースのQuickTiGame2dに注目したいと思います。 この記事では、インストールプロセスと、このエンジンの主要なポイントを検討し、次は、小さなクロスプラットフォームゲームの作成について直接説明します。

まず最初に、最新のライブラリをここからダウンロードする必要があります。1つはAndroid用、もう1つはiOS用です。 この記事の執筆時点では、最新版はバージョン1.2(最近リリースされた1.3)でした。

これらのライブラリを接続するには、適切なディレクトリに配置します。 Mac OSでは、次のようになります。

/Users/username/Library/Application Support/Titanium/modules/ 

ここには、android、iphoneという2つのフォルダーがあります。 すべてが非常に簡単です。対応するライブラリをそれぞれにコピーする必要があります。

次に、新しいプロジェクトを作成します。 tiapp.xmlを開き、適切なコードを追加します。

 <modules> <module platform="iphone" version="1.2">com.googlecode.quicktigame2d</module> <module platform="android" version="1.2">com.googlecode.quicktigame2d</module> </modules> 

次のように書かれた例に会いました。

 <module version="1.2">com.googlecode.quicktigame2d</module> 

私の経験では、ライブラリを接続するこの方法は機能しませんでした。

これで準備完了です。 この作業に役立つ基本的な要素を見てみましょう。 最初のステップは、「ウィンドウ」を作成してQuickTiGame2dを接続し、ゲーム画面を作成することです。 すべて順:

 var window = Ti.UI.createWindow({ backgroundColor : 'black' }); var quicktigame2d = require('com.googlecode.quicktigame2d'); var game = quicktigame2d.createGameView(); 

プロジェクトに必要なJsファイルは、次のように接続されます。

 Ti.include('loadingScene.js'); 

重要な要素は、ゲーム中の画面の場所です。 この場所を説明するには、各プラットフォームを個別に参照する必要があります。

 if (Titanium.Platform.osname === 'android') { game.orientation = Ti.UI.LANDSCAPE_LEFT; window.orientationModes = [Titanium.UI.LANDSCAPE_LEFT]; }else { game.orientation = Ti.UI.LANDSCAPE_RIGHT; window.orientationModes = [Titanium.UI.LANDSCAPE_RIGHT]; } 

画面の色を変更できます:

 game.color(0, 0, 0); 

イベントハンドラーを追加します。次に例を示します。

 game.addEventListener('onload', function(e) { ... LoadingScene.init(); game.pushScene(LoadingScene.scene); game.start(); }); 

シーンのイベントをさらに詳しく見てみましょう。 次のようなメインハンドラーを強調表示できます。

 this.scene.addEventListener('activated', activated); this.scene.addEventListener('deactivated', deactivated); this.scene.addEventListener('onloadsprite', onloadsprite); 

たとえば、アクティブにすると、次のようになります。

 var activated = (function(self) { return function(e) { ... }; })(this); 

私の意見では、コードはそれ自体を説明しています。シーンがアクティブ化、非アクティブ化されたとき、およびスプライトをシーンにロードしたときに発生するイベントを規定します。

非常に便利な画面タップイベント:

 game.addEventListener('touchstart', touchstart); game.addEventListener('touchend', touchend); 

続けましょう。

すべての要素と同様にゲーム画面を追加し、ゲームウィンドウを開く必要があることを忘れないでください。

 window.add(game); window.open({fullscreen:true, navBarHidden:true}); 

ステージ上のグラフィック要素とテキスト要素の検討に移りましょう。

手始めに、テキスト要素を追加する簡単な例:

 var scoreTextSprite = quicktigame2d.createTextSprite({ text : score, fontSize : 64 }); scoreTextSprite.color(1, 0, 0); scoreTextSprite.x = game.screen.width*0.4; self.scene.add(scoreTextSprite); 

ここで、スプライトテキストが作成され、フォントサイズ、色、およびx軸に沿ったその位置が設定されます。

グラフィックスプライトの作成は次のとおりです。

 var sprite = quicktigame2d.createSprite({image:'images/sprite.png'}); 

スプライトを使用してさまざまな操作を行うことができます。

1.非表示および表示

 sprite.hide(); sprite.show(); 

2.回転

 sprite.rotate(180); 

3.移動

 sprite.move(300, 500); 

4.スケールを変更します(2つの軸を同時に、それぞれ別々に)

 sprite.scale(5); sprite.scaleBy(2, 3); 

スプライトを互いの上に配置するには、特別な値z = 0..99があります。

 sprite.z = 1; newSprite.z = 2; 

まあ、それはスタートに十分だと思います。 この記事がクロスプラットフォームのゲーム開発への熱意を呼び起こし、これらの努力に役立つことを願っています。 この段階ではまだゲームはありませんが、次の記事ではその作成について説明します。

Source: https://habr.com/ru/post/J149812/


All Articles