現在、HTML5、CSS、およびJS関数を含む角括弧を使った基本的なヘビゲームに取り組んでいます。私は自己教えのコーダーであり、最近私はJavaScript関数を使ってロードブロックを打ちました。私は蛇の動きを開始しようとしています(これは完全に失われており、そのコードは助けにはなりません)、ゲームの開始時に5つのボディーセグメントを含む配列を作成します。そこから、私は動きを把握し、より多くの身体部分をアレイに追加することができるはずです。移動を開始して角括弧で配列を修正する方法
これまでのところ、私のコードはちょっと面倒だと思いますが、これは私がフル稼働のゲームで初めて試みたものです。これは、テキストベースのアドベンチャーゲームです。
SnakeBodyは、ヘビのボディセグメントを保持するように設定した配列です。 ctxは、キャンバスオブジェクトを開始するときの "theCanvas.getContext(" 2d ")"シーケンスからのステミングの短縮形です。 cwはキャンバスの幅を表す「theCanvas.width」の短縮形であり、chchもキャンバスの高さを表す「theCanvas.height」から短縮されています。
このコードセグメントの計画では、genSnakeBody()を使用してスネークのボディの次の部分を生成し、次にdrawSnake()関数を使用してスネークのイメージをキャンバスに描画しました。
すべてのご協力をよろしくお願い申し上げます。
function genSnakeBody() {
var BodyHeight = 15 // Height of the snake's body
var BodyWidth = 15 //Width of the snake's body
var BodySpeed = 10 //Speed of the snake
var body = {
x: cw/2 - (BodyHeight/2),
y: ch/2 - (BodyWidth/2),
h: BodyHeight,
w: BodyWidth,
color: "green",
speed: BodySpeed
};
var length = 5;
SnakeBody.push(body)
}
function drawSnake() {
var length = 5
for (i = 0; i < SnakeBody.length; i++) {
ctx.beginPath();
ctx.fillStyle = SnakeBody[i].color;
ctx.fillRect(SnakeBody[i].x, SnakeBody[i].y, SnakeBody[i].w, SnakeBody[i].h);
ctx.strokeRect(SnakeBody[i].x, SnakeBody[i].y, SnakeBody[i].w, SnakeBody[i].h);
ctx.closePath();
}
}
私は、ページがロードされたとき、これは5セグメント蛇になるだろうことを期待していました。
代わりに、画面の中央に1つのボックスがあり、他のボックス(他のボックスにも対応可能な場合)が表示されている場合はわかりません、またはそれらが単に存在しない場合。
私が前に言ったように、あらゆる助けが大いにありがたく、私はそれを楽しみにしています!!あなたがこれを読んで解決策を提案しようと思ってくれてありがとうございました。コードが悪い場合は、私が持っているもののクリーナーバージョンを作成し、この問題を別の角度から試してみてください。ありがとうございました!ここであなたにスクリプトを変更最小限の量を維持しようとし
内
genSnakeBody
を使用していなかった変数length
genSnakeBody
から機能を削除しますか – alfasinようこそStackoverflowへ、[How To Ask](https://stackoverflow.com/help/how-to-ask)をお読みください。 [MCVEの作成方法](https://stackoverflow.com/help/mcve)に特に注意してください。適切なラベル(プログラミング言語、関連技術など)で質問にタグを付けるようにしてください。良い質問を投稿するために、より多くの努力が必要です。読みやすく、理解しやすく、トピック上にあるものです(https://stackoverflow.com/help/on-topic) - その可能性は高いです関連する人々を引きつけ、より速く助けを得るでしょう。がんばろう! – alfasin
質問を改訂して投稿します。助けてくれてありがとう! –