ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptを使って小さなゲームプラットフォームを作る(2) ゲームセレクター_JavaScriptスキル

JavaScriptを使って小さなゲームプラットフォームを作る(2) ゲームセレクター_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:37:341268ブラウズ

今日は、次のように今夜の結果をプレビューします (イライラする場合は、レンガを投げないでください):
JavaScriptを使って小さなゲームプラットフォームを作る(2) ゲームセレクター_JavaScriptスキル
今日は主に、ゲームに入るときにゲームリストを表示するセレクターを設計しました。そしてそれを使ってゲーム「バカの機能」を選択します。

セレクターは昨日のゲーム クラスに基づいており、昨日のコードにいくつかの変更を加えました。

コードをコピー コードは次のとおりです:

//5. ゲーム カテゴリ: 名前、論理メソッド、キーボード メソッド、開始メソッド、開始レベル メソッド、終了メソッド
var Game = function(name,logicalFn , keyFn、startFn、loadFn、endFn) {
//ゲーム名
this._name = name || "名前なし";
//5.a.1: ロジック コントロール
this. logicalFn || function(date) {
//単純なゲーム ロジック コントロール
if (this._FrameMain) {
var innHTML = "ゲーム時間:" date.getSeconds() "秒" date. );
innHTML = "
現在のゲームは書き込んでいません。Esc キーを押してゲームを終了してください;";
this._FrameMain.innerHTML =
}
} ;
//5.a.2: キーボード コントロール
this._KControl = keyFn || function(event) {
//単純なキーボード ロジック
alert("You Tapped"event.keyCode "key");
//5.b.1:タイトル領域
this._FrameTitle = null;
//5.b.2:ゲーム領域
_FrameMain = null;
//5.b.3: ステータス表示領域
this._FrameState = null;
//5.b.4: コントロール領域
this._FrameControl = null; 🎜>//5.c.1: オープニングアニメーション
this._AnmLoad = newAnimation("ゲームに入る",null);
//5.c.2: パスアニメーション
this._AnmNext = newAnimation("Loading",null);
//5.c.3: アニメーションを終了
this._AnmEnd = newAnimation("End",null); 1: 開始: 開始アニメーションを呼び出し、処理メソッドを開始し、ゲームをロードします。 = this; // 現在のオブジェクトを取得します
this._AnmLoad._palyEnd = this._AnmLoad._palyEnd || function() {
startFn && startFn(); };
this._AnmLoad._play();
//5.d.2: 終了
this._End = endFn ||ゲームは終了しました ");
};
//5.d.3: ロード中: ゲームを開始するたび (レベルが開始する)
this._Load = function() {
this. _AnmNext = this. _AnmNext || newAnimation(null);
var temp = this; // 現在のオブジェクトを取得します
this._AnmNext._palyEnd = this._AnmNext._palyEnd || if (!loadFn) {
temp._FrameTitle = _HtmlControl._newPanel(0, 0, 400, 30);
temp._FrameTitle.innerHTML = temp._name || "名前のないゲーム"; _FrameMain = _HtmlControl._newPanel(0, 30, 350, 370);
temp._FrameState = _HtmlControl._newPanel(350, 30, 50, 180); 50, 190) ;
_HtmlControl._AddControl(temp._FrameTitle);
_HtmlControl._AddControl(temp._FrameState); ._AddControl(temp._FrameControl);
} else {
loadFn();
}
}
this._AnmNext && this._AnmNext._play(); >//5.e Map
this._Map = [];
mapIndex =
}; つまり、セレクターもオブジェクトですゲームクラスの読み込みアニメーションやキーボード処理などがあります:




コードをコピー


コードは次のとおりです:

// ゲームを作成します
var game1 = new Game("Snake", null, null);
var game2 = new Game("Tetris", null, null); var game3 = new Game("プッシュボックス", null, null);
var game4 = new Game("Racing", null, null);
var game5 = new Game("戦車戦", null, null); );
//------------------------------------------ ----- ------------
//6. ゲームリスト
var _GameList = [game1, game2, game3, game4, game5]; ----- -------------------------------------- --
/ /7. ゲームセレクター
var _GameChoose = new Game("selector", null, null);
_GameChoose._Map =
_GameChoose._Load = 関数() {
this._FrameTitle = _HtmlControl._newPanel(0, 0, 400, 30);
this._FrameTitle.innerHTML = "ゲームを選択してください"; 0, 30, 240 , 370);
this._FrameState = _HtmlControl._newPanel(240, 30, 160, 180);
this._FrameState.innerHTML = "上と下キー
this._FrameControl = _HtmlControl._newPanel(240, 210, 160, 190);
this._FrameControl.innerHTML = "Enterを押してください
ゲームに参加してください";
this._tempButtons = [];
this._tempButtonsIndex = 0;
//this._FrameMain.style.scrollbar//
if (this._Map.length > 0) {
for (var i = 0; i var button = _HtmlControl._newButton(this._Map[i]._name, 200, 30); 🎜>this._FrameMain.appendChild (ボタン);
this._tempButtons.push(ボタン);
this._tempButtons[0].select();
_HtmlControl. _AddControl(this._FrameTitle);
_HtmlControl._AddControl(this._FrameState);
_HtmlControl._AddControl(this._FrameControl); >_GameChoose._LControl = function( date) {
if (mapIndex != -1) {
this._Map && this._Map[mapIndex]._LControl(date)
}
};
_GameChoose._KControl = function(event) {
if (mapIndex == -1) {
switch (event.keyCode) {
case _KeyParameters.KeyUp:
{
/ /alert("upper t" );
if (this._tempButtonsIndex > 0) {
this._tempButtonsIndex--;
for (var i = 0; i this ._tempButtons[i].unselect();
}
this._tempButtons[this._tempButtonsIndex].select();
}
}
break;
case _KeyParameters.KeyDown :
{
//alert("下");
if (this._tempButtonsIndex < this._tempButtons.length - 1) {
this._tempButtonsIndex;
for (var i = 0; i
this._tempButtons[i].unselect();
}
this._tempButtons[this._tempButtonsIndex] ].select();
}
}
break;
case _KeyParameters.KeyEnter:
{
mapIndex = this._tempButtonsIndex; [mapIndex]._Start() ;
}
デフォルト:
{
} else {
if (event.keyCode) == _KeyParameters.KeyESC) {
mapIndex = -1;
this._Start();
}
this._Map && this._Map[mapIndex]._KControl(イベント) );
}
}
}


時間の関係で、スネークはまだそれを行っていません。会社にタスクを割り当てた、と会社の誰かが言いました。

今日は最初のゲームをクリアしやすくするためにスローガンを変更したいと思います: 昼は権威、夜は貪欲な蛇、極限まで貪欲になりたいです、ふふ...














声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。