3

私は自分自身にウェブプログラミングを教えています。私はC++にも取り組んでいます。Javascriptに問題があります。

画像の場所に基づいて「ifステートメント」を作成する方法を知る必要があります。

大砲が前後に動くシンプルなゲームを作っています。大砲を停止させ、ターゲットに向けて別の画像を発射するボタンをユーザーに押してもらいたい。

大砲からターゲットに向かって弧を描いて移動する画像と画像のgifをすでに作成しました。

大砲が正しい位置にあるときにユーザーが発砲すると、画像がターゲットに命中します。

誰かが位置に基づいてifステートメントを作成する方法を教えてもらえますか?または、誰かが大砲を停止してgifを表示する方法を教えてもらえますか?

4

3 に答える 3

2

大砲を動かすには、onkeyup()イベントを読んでください。キーが離されるのを待って、何かをします。

それは何をしますか?おそらくleft大砲の位置をなんとか変えてください。position:absolute大砲にCSSスタイルを設定してから.left、Javascriptでプロパティを変更することをお勧めします。

たとえば、開始するためのJavascriptを次に示します(テストされていません)。

var cannon = document.getElementById("cannonPic");
var leftlim = 200;

document.body.onkeyup = function() {
    // Remove 'px' from left position style
    leftPosition = cannon.style.left.substring(0, cannon.style.left - 2);

    // Stop the cannon?
    if (leftPosition >= leftLim) {
        return;
    }

    // Move cannon to new position
    cannon.style.left = cannon.style.left.substr(0, cannon + 10);
}

そして、そのコンパニオンHTMLは次のようになります...

...
<img id='cannonPic' src='cannon.jpg' />
...
<script type='text/javascript' src='cannon.js' />

HTMLは次のようにスタイル設定できます。

#cannonPic {
    left:0;
    position:absolute;
}

「appear/reappear」サブ質問に答えるには、.displayJavascriptを介してアクセスされるプロパティを使用できます。

var cannon = document.getElementById("cannonPic");

function appear() {
    cannon.style.display = '';
}

function hide() {
    cannon.style.display = 'none';
}

警告の小さな言葉ですが、弧を描いて移動するものは、必要な精度に応じて、2次元に変換するためにいくつかの数学が必要になります。あなたが数学が好きなら、しかし楽しい運動:)

于 2012-09-04T00:09:21.550 に答える
0

たとえば、画面上のページのx位置とy位置の最初の画像を取得するには、次のようにします。

var xpos = document.getElementsByTagName('img')[0].x;

var ypos = document.getElementsByTagName('img')[0].y;
于 2012-09-04T00:08:57.383 に答える
0

少し背景を追加するために、これが通常行われる方法は次のとおりです。

  1. ゲームを「実行」するメインループがあります。
  2. ループの反復ごとに、a) ゲーム内オブジェクト (この場合は大砲、発射体、ターゲット) の位置を更新し、b) 結果のオブジェクトを画面にレンダリングします。
  3. 「発砲」キーの押下を検出すると、移動中の大砲の「速度」を 0 に設定するだけで、大砲が「停止」します。

Steve または sajawikio のアプローチを使用してオブジェクトの位置を取得できますが、ゲーム ロジックは常にすべてのオブジェクトの位置を決定します (また、認識している必要があります)。「位置(x、y)に発射体を描画する」と言うのはあなたのゲームロジックです。あなたのゲームロジックは、「私は発射体を持っていますが、それがどこにあるのか正確にはわかりません.HMMなので、Javascriptを使用してその位置を照会しましょう. 少なくとも、単純で予測可能な動きがあるこの場合はそうではありません。

于 2012-09-04T00:15:18.017 に答える