ゲームフレームワークFlixel 2.5の新バージョンの機能

ゲームを作成するためのかなり有名で人気のあるフレームワークであるFlixelの新しいバージョンがリリースされました(githubの最新の変更は4月28日付です)。 これで、フレームワークのシリアル番号は2.5に達しました。 私の意見では、このアップデートには、Flash開発者の生活をさらに簡素化できる興味深い機能がいくつか含まれています。 Flixelに興味がある場合は、以下で説明する新しい機能を示す多くの例を含む元の説明をよく理解することを強くお勧めします。



カメラ


Flixelの新しい機能の1つは、( 突然!FlxCameraと呼ばれる、カメラを制御するための柔軟で強力なクラスの出現です。 デフォルトでは、1つのカメラで新しいプロジェクトが作成され、その寸法はFlashPlayerウィンドウのサイズと一致します。 このカメラへのアクセスは、 FlxG.cameraリンクから取得できます。 このカメラ交換する、カメラ追加して 、分割画面、ピクチャーインピクチャー、ミニマップなどのエフェクトを作成できます。 各カメラは独立した視覚オブジェクトであり、ズーム、色相、回転、スケーリングの独自の設定があります。 また、各ゲームオブジェクトは独自のカメラのリストをサポートしているため、特定のカメラに表示する特定のゲームオブジェクトを簡単に構成できます。 アドベンチャースタイルのゲーム開発者は、モードゲームのソースコードを読んで、ゲームでカメラを使用する他の方法を学ぶこともできます。



道を探す


「方法を見つける」という用語は、「ポイントAからポイントBに到達する方法」または「ポイントAからポイントBに到達することは可能ですか?」という質問に対する答えを見つけることを意味します。 新しい関数FlxTilemap.findPath()がFlxTilemapクラスに登場しました。これは、「ノード」( FlxPointオブジェクト)のリストであるFlxPathオブジェクトを返します。 このリストは、開始位置で始まり終了位置で終わる、空間内のXおよびY座標の単なるリストと考えてください。 有効なパスが見つかったら、 FlxObject.followPath()関数を使用して、このデータを任意のFlxObjectに渡すことができます。 この関数は、指定されたパスの追跡を開始するようにオブジェクトに「通知」します。 速度、方向(リバース、ヨーヨーなど)を調整できるだけでなく 、パスを水平方向にのみ 「追従」する機能を設定できます(重力に反応するオブジェクトに便利です)。 これらの設定により、パスを使用してAIキャラクターを整理するだけでなく、「エレベーター」、移動プラットフォーム、ループ背景アニメーションを整理することもできます。



繰り返し


リプレイは、新しい強力なFlixel機能です。 「繰り返し」は、押されたキーボードボタンに関する情報と、時間に応じたマウスの動作に関するデータを含むリストです。 Flixelはそのコンポーネントの機能を大幅に制限するため、「繰り返し」という情報を使用して、他の誰かが記録したゲームセッションを再作成できます。 「リプレイ」は、デバッグ、「魅力モード」モード、ゲーム内デモモードの作成、クリップの作成に使用できます。 繰り返しは、デバッグレイヤーのVCRパネルを介して、またはFlxG.loadReplay()FlxG.recordReplay() 、およびFlxG.reloadReplay()などの関数を介して直接制御できます。 「アドベンチャー」スタイルのゲーム開発者は、「モード」ゲームのソースコードに精通して、ファイルから「リプレイ」をダウンロードして「魅力モード」モードを作成する例を見ることができます。



グループと衝突


Flixelゲームオブジェクトは、 FlxGroupオブジェクト内に「保存」できます。 グループを使用すると、更新、レンダリング、衝突検索、カメラ監視、スクロール振幅計算などを簡素化、自動化、整理できます。 各「ゲームループ」でFlxG.collide()のようなリソースを集中的に使用する関数を数回呼び出すことを避けたい場合、これらの呼び出しを簡素化する方法としてネストされたグループを使用できます。 たとえば、ゲーム内のオブジェクトは、Apple、Pears、Bananasの3つの異なるグループに分けられます。 また、「着陸」オブジェクトの機能を整理する必要もあります。 この機能を実装するには、FlxG.collide()関数を3回呼び出すのが適切なソリューションのように思えるかもしれません:FlxG.collide(リンゴ、地面)、FlxG.collide(梨、地面)、FlxG.collide(バナナ、地面)。 より良い解決策は、4番目のグループを作成し、Fruitと呼ばれるとし、このグループにオブジェクトの3つのグループ(Apples、Pears、Bananas)を追加すると、FlxG.collide(フルーツ、グラウンド)関数を呼び出すことができます。 この場合、ゲームオブジェクトの「着陸」機能を保存し、パフォーマンスを大幅に向上させます。



タイルマップと自動タイリング


ゲーム環境が正方形の「 タイル 」のグリッドから作成された古いビデオゲームに触発され、Flixel開発者はFlxTilemapクラスを作成しました。 各グリッドセルには番号またはインデックスがあり、これらを使用してグラフィックの特定の部分を参照できます。この番号を使用して、ゲームスペースを作成するために複数回使用できます。 タイルグラフィックスには多くの利点があります。たとえば、タイルの表示方法、タイルのオブジェクトとの重なり方、各タイルの特殊プロパティの理解が容易です。 Flixelは、バイナリタイル情報を持つ配列に基づいて壁タイルと床タイルを自動的に配置するアルゴリズムも提供します。 これは、迅速なプロトタイピングに適したシンプルで柔軟なシステムです。



粒子


「パーティクル」と「パーティクルエミッタ」の概念は、特殊効果と動作を作成するために使用される個々のクラスを指します。 「エミッタ」は、パーティクルを作成して制御するオブジェクトです。 FlxParticleFlxSpriteクラスの単純な拡張機能であり、 FlxEmitterFlxGroupの単なる拡張機能であるため、 Flixelのパーティクルシステムは他の通常のスプライトグループとそれほど変わりません。 パーティクルシステムは、パーティクルを作成して「 開始 」する機能を追加するだけです。パーティクルには、よりリアルに見えるように動作をカスタマイズするプロパティがあります。 FlxEmitterクラスには、速度、回転速度、重力、衝突時の動作などの「広がり」を調整するためのプロパティもあります。



ゲームを保存する


Flashテクノロジーは情報をローカルに保存する簡単な方法を提供し、 FlxSaveオブジェクトはデータストレージを操作するためのインターフェイスを提供します。 この保存方法は、すべてのタスクに適しているわけではありません。 たとえば、オンラインの高得点表を作成する場合、この方法ではこれを実行できません。 プレイヤーがゲームの保存ファイルを移動および交換できるようにしたい場合、この場合、この保存方法を使用することもお勧めできません。 FlxSaveは 、ゲームの進行状況やユーザー設定などのローカルデータをすばやく簡単に保存するのに適しています。



PS:


最初、私はFlixelがflashgameblogs.ru に投稿を残すことを知りました



All Articles