Javascript 绘制地图和玩家时,输出为空白画布

Javascript 绘制地图和玩家时,输出为空白画布,javascript,Javascript,一段时间以来我一直在做一个小游戏,我发现了一个问题 当我想画我的地图和球员 var Img = {}; Img.player = new Image(); Img.player.src = '/client/img/player.png'; Img.map = new Image(); Img.player.src = '/client/img/map.png'; var Player = function(initPack){ var

一段时间以来我一直在做一个小游戏,我发现了一个问题

当我想画我的地图和球员

var Img = {};
    Img.player = new Image();
    Img.player.src = '/client/img/player.png';
    Img.map = new Image();
    Img.player.src = '/client/img/map.png';

    var Player = function(initPack){
        var self = {};
        self.id = initPack.id;
        self.number = initPack.number;
        self.x = initPack.x;
        self.y = initPack.y;

        self.draw = function(){
            var x = self.x - Player.list[selfId].x + WIDTH/2;
            var y = self.y - Player.list[selfId].y + HEIGHT/2;
            
            var width = Img.player.width*2;
            var height = Img.player.height*2;
            
            
            ctx.drawImage(Img.player,
                0,0,Img.player.width,Img.player.height, // right here
                x-width/2,y-height/2,width,height);

        Player.list[self.id] = self;
        return self;
    }
然后这个:

setInterval(function(){
        if(selfId == null)
            return;
        ctx.clearRect(0,0,600,600);
        drawMap();
        for(var i in Player.list)
            Player.list[i].draw();
    },1000/30);

    var drawMap = function(){
        ctx.drawImage(Img.map,0,0);
    }

它只是给了我一张空白画布。

你的
selfId
变量一直是
null
吗?@JulekPL我有一个小挑战,可能会帮助我们和你解决这个问题。在代码段中编写一个简单的概念证明。在那里,我们可以专注于这条关键路径。请编辑您的问题,然后回复我。