index
Tonyu1 と Tonyu2 の違い
ここでは,従来のTonyu System(Tonyu1)とTonyu System 2(Tonyu2)の違いを説明します.
親クラス
extends
は省略可能です。省略するとActorクラスを継承します。
- Tonyu1 の SpriteChar, DxChar, TextChar, SecretChar はActorクラスで代用可能です
- Actorクラスのオブジェクトのフィールド
x
, y
に値を設定するとSpriteCharと同等
-
alpha
, rotation
, scaleX
, scaleY
に値を設定すると DxCharと同等
-
text
に値を設定すると TextCharと同等
- いずれも設定しないか,
p
に-1を設定すると SecretCharと同等
- PanelCharクラスは,ActorクラスのオブジェクトにPanelクラスのオブジェクトを作成させることで代用します.
- FrameManagerは未実装です.最初に実行させるクラス(たいてい「Main」などの名前をもつクラス)に,フレームが実行されるごとの処理を記述してください.
mainメソッド処理終了時の動作
mainメソッドが終了してもオブジェクトは消えません.明示的にdieメソッドを呼び出して下さい.
この仕様により,「表示だけを行なう,何も動作しないオブジェクト」をActorクラスを継承せずとも作成可能です.(Tonyu1では,明示的にクラスを作成し,waitメソッドを呼び出す必要があります)
例:
new Actor{p:$pat_BG, x:$screenWidth/2, y:$screenHeight/2}; // 背景
new Actor{text:"タイトル", x:200, y:200}; // タイトルのテキスト
オブジェクトの生成と出現
Tonyu1ではオブジェクトの生成はリスト1のように,オブジェクトの種類によって指定されたフィールド(SpriteCharならx,y,p)の値を渡して生成していました.
リスト1 Main
new Player(100,220,12);
指定されたフィールド以外の値を渡す場合,リスト2のように,生成したオブジェクトを一旦変数に入れ,別の文を追加する必要がありました.
リスト2 Main
$player=new Player(100,220,12);
$player.life=5;
Tonyu2では,リスト3のようにすべてのフィールドをオブジェクト生成時に一文で渡せるようになりました.
リスト3 Main
new Player{x:100, y:220,p:12, life:5};
※Tonyu2でも,リスト1のようにx,y,pを渡すことは可能です.
また,Tonyu1ではオブジェクトを実際に出現させるにはリスト4のようにappearメソッドを呼び出す必要がありましたが,Tonyu2では不要になっています.
リスト4 Main
appear(new Player(100,220,12));
当たり判定の機能拡張
- crashToメソッドにクラスを渡すことが可能になりました
- 画面中の特定のクラスのオブジェクトのうちどれか1つ以上に衝突しているかどうかが判定できます
- 戻り値は衝突したオブジェクトのうちどれか1つになります.
オブジェクトの一括操作機能の追加
- 複数のオブジェクトに同じ操作を適用させる命令が追加されました
- allメソッド : 画面上のすべてのオブジェクトや,特定のクラスのすべてのオブジェクトに対して操作を行う
- allCrashメソッド: 衝突しているすべてのオブジェクトに対して操作を行う
タッチパネル・マルチタッチ対応
メソッド・フィールドの変更点
- getkeyメソッド
- (上位互換)引数に数値以外にキー名をあらわす文字列が渡せます
- [フィールド]angle →
rotation
- [メソッド]angle(x,y) →
atanxy
- 画面の大きさ変更
- (仕様変更)Tonyu1では,$screenWidth,$screenHeightに代入することで画面の大きさを変更していましたが,Tonyu2 では$Screen.resizeを用います
- ファイルアクセス
- (仕様変更)Tonyu1では,FileReader, FileWriterクラスを用いてファイルにアクセスしましたが,Tonyu2ではfileメソッドを用います.
.