1

.animate を使用して、タイル ベースのゲームを作成しようとしています。jQuery と別の ajax スクリプトを組み合わせて、これを機能させようとしています。矢印をクリックし続けて移動しますが、結果が得られません。たぶん、他の誰かがその理由を理解するでしょうか?

ボタン:

$data .= "<center><table><tr><td></td><td><button onclick=\"transition(\'up\')\">&uarr;</button></td> <td></td></tr><tr><td><button onclick=\"transition(\'left\')\">&larr;</button></td> <td></td> <td><button onclick=\"transition(\'right\')\">&rarr;</button></td></tr><tr><td></td> <td><button  onclick=\"transition(\'down\')\">&darr;</button></td> <td></td></tr></table></center>";

地図:

$data .= "<div style=\'width:480px;height:480px;background-color:#000000;background-image:url(".$map['background'].");padding:".$map['locationpadding'].";\' id=\'locationMap\'>";


$data .= "<div id=\'specialLocations\'></div>";


$data .= "<div style=\'position:absolute;left:".$charrel[0]."px;bottom:".$charrel[1]."px;width:32px;height:32px;background-image:url(".$char['charimage'].");\' id=\'charLocation\'></div>";


$data .= "</div>";

最後に、アニメーションを取得します。if ステートメントがすべて機能していることを確認しました。したがって、この時点まではすべて正常に機能しています。

if($_POST['direction'] == "up"){

        print("$('#charLocation').animate({'bottom': '+=50px'}, 'slow');");

    }elseif($_POST['direction'] == "left"){

        print("$('#charLocation').animate({'left': '-=50px'}, 'slow');");

    }elseif($_POST['direction'] == "right"){

    print("$('#charLocation').animate({'left': '+=50px'}, 'slow');");

    }elseif($_POST['direction'] == "down"){

    print("$('#charLocation').animate({'bottom': '-=50px'}, 'slow');");

    }else{
        die('alert("Invalid movement.");');
    }

また、PHP を使用して jQuery/JavaScript コードを印刷する理由は、すべてが Ajax コードを介して読み込まれるため、印刷することはありません。

事前に混乱を招いて申し訳ありません。私のためにこれを見てくれてありがとう。

4

1 に答える 1

1

問題は、これらの言語でゲームを作成するアプローチだと思います。Web ベースのタイル ゲームでキャラクターを動かしたい場合は、すべてのゲーム ロジックをフロント エンド クライアント側 (この場合は JavaScript) で制御し、重要なゲーム情報をサーバーにプッシュするためにのみ ajax を使用する必要があります。たとえば、チェスの駒を動かす場合、アニメーションが完了したときにのみ新しい駒の座標を送信し、ajax を呼び出してサーバーから返されたものを実行することはありません。

この場合、アプローチの基礎に問題があるため、例を提供できないと思います。

具体的な質問があればお答えします。現在の質問に答えるには、javascript の行を ajax リクエストとして出力しても、応答が javascript として自動的に実行されることはありません。このように機能させようとしないでください。代わりに、この種の動作を必要としないようにアプローチを再構築してください。

于 2012-12-14T01:33:00.573 に答える