Announcement

Collapse
No announcement yet.

Tasten funktionieren nicht in Snake..

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tasten funktionieren nicht in Snake..

    Hallo zusammen,

    ich bin ein blutiger Anfänger in der Programmierung.

    ich bin dabei ein YT-Video nachzuprogrammieren (https://www.youtube.com/watch?v=niD3gx4BI9A&t=3300s).
    Ich habe den Teil abgeschlossen in dem man die Tastatur programmiert um Snake steuern zu können (Im Video min 47:12 - 53:39)

    Eigentlich müsste es jetzt funktionieren jedoch rührt sich nichts.
    Habe alles 3 weitere male auf Schreibfehler überprüft, jedoch finde ich nichts.

    Weiss jemand was ich falsch gemacht habe?

    Würde mich über eine Antwort freuen.
    LG Ben








    let canvas = document.getElementById('canvas');
    let ctx = canvas.getContext('2d');
    let rows = 20;
    let cols = 20;
    let snake = [{
    x: 19, y: 3
    }];
    let food = {x: 4, y: 5};
    let cellWidth = canvas.width / cols;
    let cellHeight = canvas.height / rows;
    let direction = 'LEFT';
    setInterval(gameLoop, 500);
    document.addEventListener('keyDown', keyDown);
    draw();
    function draw() {
    ctx.fillStyle = 'black';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    ctx.fillStyle = 'white';

    snake.forEach(part => add(part.x, part.y));
    ctx.fillStyle = 'yellow';
    add(food.x, food.y); // Food
    requestAnimationFrame(draw);
    }
    function add(x, y) {
    ctx.fillRect(x * cellWidth, y * cellHeight, cellWidth - 1, cellHeight - 1);
    }
    function gameLoop() {
    if (direction == 'LEFT') {
    snake[0].x--;
    }
    if (direction == 'RIGHT') {
    snake[0].x++;
    }
    if (direction == 'UP') {
    snake[0].y--;
    }
    if (direction == 'DOWN') {
    snake[0].y++;
    }
    }
    function keyDown(e) {
    if (e.keyCode == 37) {
    direction = 'LEFT';
    }
    if (e.keyCode == 38) {
    direction = 'UP';
    }
    if (e.keyCode == 39) {
    direction = 'RIGHT';
    }
    if (e.keyCode == 40) {
    direction = 'DOWN';
    }
    }

  • #2
    Was soll einem der Code sagen?
    Es sind zwei Funktionen.
    In der letzten fehlt die abschließende }

    Mehr kann man zu dem Code nicht sagen

    Debugge dein Programm, setze einen Haltepunkt in der Funktion des Events

    Kopiere den Code
    https://github.com/JunusErgin/snake-...ain/index.html

    EDIT
    Tolle Idee, den Code nachträglich zu ändern

    Wenn du dir den Code von der o.a. Seite runter lädst, funktioniert er einwandfrei.....

    Der Fehler ist
    document.addEventListener('keydown', keyDown);
    Zuletzt editiert von Christian Marquardt; 10.02.2022, 17:54.
    Christian

    Comment


    • nonamemofugga
      nonamemofugga commented
      Editing a comment
      Wow bin ich ein Blindfisch... Vielen vielen Dank Christian! Ich habe den Code so oft nachgeprüft & war überzeugt ich hätte alles richtig gemacht, ayayay hast mir sehr geholfen.
      LG Ben
Working...
X