首页 > 解决方案 > 无法读取未定义的属性“x” - 蛇 [已解决]

问题描述

- 编辑 -

问题出在我调用 player.update(); 的绘图函数中。但我应该调用 player.update(apple); 谢谢您的帮助

我从头开始编码蛇,我认为问题出在蛇的部分。但我没有看到。我已经尝试过三次重写我的代码这是我第一次尝试这样的事情,所以我对问题可能是什么没有帮助。- 如果您想使用此程序而不是此处的代码,这里是程序的链接,只是为了查看 https://www.khanacademy.org/computer-programming/snakeprototype/4797370687356928上的内容 任何帮助表示感谢〜谢谢

var gameSpeed = 10;

// Declare Functions
var Player;
var Part;
var UpdateParts;
var Apple;

/*
KeyCode functions

*/

var parts = [];

var Part = function(x, y)
{
    this.x = x;
    this.y = y;
    this.pX = this.x;
    this.pY = this.y;
};

var Player = function()
{
    parts[0] = new Part(200, 200);
    parts[1] = new Part(200, 210);
    parts[2] = new Part(200, 220);

    this.update = function(apple)
    {
        if (parts[0].x === apple.x && parts[0].y === apple.y)
        {
            apple.newApple();
        }
        // Square
        fill(27, 168, 36);
        rect(parts[0].x, parts[0].y, 10, 10);
        /*
        Change Directions
        */

        if (frameCount % gameSpeed === 0)
        {
            //move
            if (this.direction === "up") 
            {
                parts[0].y-=this.speed;
            }
            if (this.direction === "down") 
            {
                parts[0].y+=this.speed;
            }
            if (this.direction === "left") 
            {
                parts[0].x-=this.speed;
            }        
            if (this.direction === "right") 
            {
                parts[0].x+=this.speed;
            }
        }
    };
};

var UpdateParts = function()
{
    for (var i = 1; i < parts.length; i++)
    {
        if (frameCount % gameSpeed === 0)
        {
             parts[i].pX = parts[i].x;
             parts[i].pY = parts[i].y;
             parts[i].x = parts[i-1].pX;
             parts[i].y = parts[i-1].pY;
        }
    }
};

/*
Apple function

*/

var apple = new Apple();
var player = new Player();

标签: javascript

解决方案


推荐阅读