JavaScript kod neden çalışmıyor?

00PARZIVAL00

Picopat
Katılım
23 Temmuz 2022
Mesajlar
519
Çözümler
1
Daha fazla  
Cinsiyet
Diğer
Merhaba, ben bir yılan oyunu yazmaya çalışıyorum, fakat bir şey dikkatimi çekti ve bunun neden olduğundan emin olmak için size de sormak istedim.

Kod:
JavaScript:
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <canvas id="myCanvas"></canvas>


    <script>

        var blockSize = 25;
        var rows = 20;
        var cols = 20;
        var board;
        var context;

        var snakeX;
        var snakeY;

        var foodX;
        var foodY;

        window.onload = () => {
            board = document.getElementById("myCanvas");
            board.height = rows * blockSize;
            board.width = cols * blockSize;
            context = board.getContext("2d");

            update();
            foodPlace();
        }

        function update() {
            context.fillStyle = "black";
            context.fillRect(0, 0, board.width, board.height);

            context.fillStyle = "lime";
            context.fillRect(blockSize * 5, blockSize * 5, blockSize, blockSize)

            context.fillStyle = "red";
            context.fillRect(foodX, foodY, blockSize, blockSize)
        }

        function foodPlace() {
            foodX = Math.floor(Math.random() * cols) * blockSize;
            foodY = Math.floor(Math.random() * rows) * blockSize;
        }
    </script>
</body>

</html>

Burada onload da olan fonksiyonda update() ve foodPlace() isminde iki fonksiyon var, update'in içinde canvas, yılan ve yem var. Yemin nerede olacağını foodPlace rastgele belirliyor ve sonra yem update de oluşturuluyor. Şimdi sorum şu; En başından onload fonksiyonunda, placeFood'u update'in altına alırsam, yani placeFood daha sonra çalışır ise yem ekrana gelmiyor, fakat placeFood'u update'in üstüne alırsam geliyor. Bunun nedeni placeFood yemin nerede olacağını belirliyor ve update de yemi oluşturuken yerini placeFood'un içinde olan x ve y belirlediği için yem nerede oluşacağını bulamıyor ve bu yüzden mi yem oluşmuyor?
 
Son düzenleyen: Moderatör:

Yeni konular

Geri
Yukarı