LabVIEWでのモグラたたき台のアナログ

ハブ上のLabVIEWに関する記事がかなりあります(おそらくこの環境の使用を考慮して)。 少し前に、私はLabVIEW上で「モグラのおもちゃ」の簡単なアナログを作るように頼まれ、私は自分の作品をハブで共有することにしました LabVIEWバージョン7.1を使用します-古いが、シンプルです。



しかし、 ヘビはすでにここにいるので、なぜほくろではないのですか? ゲームの本質(元々は機械式ゲーム機の形で存在していました)は単純です-競技場には「穴」があり、その1つはしばらくの間「モグラ」の頭に見えます。プレイヤーは特別なハンマーで打つ必要があります。



ゲームの要件


同じ色の4つのオブジェクト2D画像で構成される競技場を形成します。 「開始」ボタンを押すと、これらのオブジェクトの1つがランダムに選択されて強調表示され、しばらくの間強調表示されたままになります。 この間、ユーザーはマウスでクリックする機会があります。 ユーザーがこれを実行できた場合、スコア(S)は2増加し、そうでない場合は1減少します(ゲームの開始時にS = 10)。 また、「穴」をクリックするとスコアが1減少しますが、その時点で「ほくろ」が欠落しています。

時間間隔tが経過すると、ランダムに選択された次のオブジェクトがランダムに強調表示されます。 ユーザーアカウントが20に達すると、tの値は20%減少します。 ゲームはスコアSがゼロになるまで続きます。

プログラムの実行中、フロントパネルにはS、tの現在の値、およびプログラムが開始されてからの経過時間が表示されます。



ゲームインターフェース


ゲームインターフェースは、実際には、画像(2D画像)、1つのボタン、およびスコア、タイムアウト(モルがその位置を変更するまでの時間)をミリ秒で表示するためのいくつかのインジケーター、およびゲームの開始からのカウントダウンを秒で構成します。 また、プレイフィールドとインジケーターを視覚的に分離するために、いくつかのフレームを使用しました。 「ほくろ」の役割では、ファイルから読み込まれる邪悪な顔文字の絵が使用されます。



ゲームブロック図


開発の最初の段階で、「ほくろ」自体を作成し、「穴」間を移動することを教えます。



画像を2D画像に読み込むには、まずcnhevtynjv Read JPEG Fileで画像を読み込んでから、Draw Flattened Pixmapを使用する必要があります。出力では、2D画像に読み込むためのピクセルの配列を取得します。 原則として、グラフィックプリミティブ(線、円、長方形など)を使用して、モルをプログラムで描画できます。 ケース構造は、1つのインジケーターにほくろを表示し、他のすべてのインジケーターに定数から「空白の画像」を送信します。



写真のクリックを処理するために、イベントストラクチャが使用されます。イベントストラクチャでは、乱数ジェネレータから取得した「穴」の数が定数と比較され、スコアを変更する決定が行われます。 この構造はタイムアウトも処理します(ユーザーは画像をクリックする時間がありませんでした)。 この段階では、タイムアウト値は1000ミリ秒と想定され、定数に入力されます。



第2段階では、ブロック図で、アカウントに応じてタイムアウト値の変更を追加します。 条件はこれを行う方法を正確に示していないため、モルの速度はスコアの20ポイントごとに1000から200ミリ秒(200ミリ秒単位)に変化することにしました。 プレイしやすくするために、スコアが減少するにつれて速度が低下するため、この機会をCase Structureを通じて実装しました。 ゲームスコアの値と現在のタイムアウトは、シフトレジスタを介してサイクルの反復間で転送されます。



最後に、ゲームの開始から経過した時間をカウントするために、2つのティックカウントツールを使用しました。1つ目はプログラムの開始時(サイクルを開始する前)にシステムタイマーを読み取り、2つ目は各反復で使用します。 次に、読み取り値の差を探し、それを1000で除算して、秒単位で表される時間を取得します。 これはあまり正確なオプションではありませんが、ゲームのようなタスクの場合は、わずかな誤差を許容できます。



まとめ


もちろん、LabVIEWはゲームアプリケーションの開発に最適なツールではありませんが、そのような小さなおもちゃにはLabVIEWを使用できます。

ゲームソース



All Articles