DrawImage не работает в цикле - PullRequest
0 голосов
/ 30 мая 2018

Я относительно новичок в программировании игр и еще новее в Javascript.Я хочу создать игру сверху вниз, и я пытаюсь создать карту с набором плиток.В частности, я хочу создать рамку вокруг всей карты, но по какой-то причине контекст не отображается на холсте.Любая помощь?

        var canvas = document.getElementById("gameCanvas");
        var ctx = canvas.getContext("2d");
        canvas.width = 640;
        canvas.height = 480;

        var dungeon = [];

        var Camera = {
            posX: 0,
            posY: 0,
        }

        var textures = new Image();
        textures.onload = function(x, y) {
            return 0;
        }
        textures.src = "Images/textures.jpg";

        function createDungeon(width, height) {
            for(a=0; a<height; a+=32) {
                for(b=0; b<width; b+=32) {
                    if(a==0 || (a==height-32) || b==0 || (b==width-32)) {
                        dungeon.push([b, a, 0]);
                    }
                    else {
                        dungeon.push([b, a, 1]);
                    }
                }
            }
        }

        function drawDungeon(startX, startY, width, height) {
            var viewX = startX;
            while(viewX >= width) {
                viewX-=width;
            }
            var viewY = startY;
            while(viewY >= height) {
                viewY-=height;
            }

            for(a=0; a<height; a+=32) {
                for(b=0; b<width; b+=32) {
                    for(c=0; c<dungeon.length; c++) {
                        if(dungeon[c][0] == (b+startX) && dungeon[c][1] == (a+startY)) {
                            if(dungeon[c][2] == 0) {
                                ctx.drawImage(textures, b, a);
                            }
                            else if(dungeon[c][2] == 1) {
                                ctx.fillStyle = "#ffffff";
                                ctx.fillRect(b, a, 32, 32);
                            }
                        }
                    }
                }
            }
        }

        createDungeon(6400, 4800);
        drawDungeon(Camera.posX, Camera.posY, canvas.width, canvas.height);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...