未捕获的类型错误:无法设置属性'vX'的未定义
Uncaught TypeError: Cannot set property 'vX' of undefined
嗨,伙计们,我在学校的游戏代码中又遇到了一个缺陷。。。所以在这里,我试图添加我的"Player Rocket",所以这是书中刚刚让我在所有生成的小行星下添加的代码。
player.vX = 0;
player.vY = 0;
if (player.moveRight) {
player.vX = 3;
};
if (player.moveUp) {
player.vY = -3;
};
if (player.moveDown) {
player.vY = 3;
};
player.x += player.vX;
player.y += player.vY;
context.fillStyle = 'rgb(255, 0, 0)';
context.beginPath();
context.moveTo(player.x+player.halfWidth, player.y);
context.lineTo(player.x-player.halfWidth, player.y-player.halfHeight);
context.lineTo(player.x-player.halfWidth, player.y+player.healfHeight);
context.closePath();
context.fill();
现在错误我一直得到它这个。。。
未捕获的类型错误:无法设置未定义的属性"vX"
我翻阅了这本书,想知道我是否必须在哪里定义这一点,但我没有遗漏任何东西。现在我还是个新手,但我看到我使用player.vX
的唯一地方是这里。
var player;
var Player = function(x, y){
this.x = x;
this.y = y;
this.width = 24;
this.height = 24;
this.halfWidth = this.width/2;
this.halfHeight = this.height/2;
this.moveRight = false;
this.moveUp = false;
this.moveDown = false;
this.vX = 0;
this.vY = 0;
};
如果有人能帮助我,更好地理解这一点,那就太好了!非常感谢。
当您说var player;
时,您将player
设置为未定义。您需要创建一个Player()
的新实例。你可以通过做到这一点
var player=new Player(xCoord,yCoord);
如果这本书认为启动与构造函数名称相似的东西会实例化一个新的Player,那么它就大错特错了。
要了解更多关于对象的信息,您应该查看MDN的教程
相关文章:
- 主干中的模型属性未定义
- JavaScript 2d 数组导致“无法读取未定义的属性'未定义'”
- JSON对象属性未定义
- Waypoint的循环,退出循环后属性未定义
- Javascript:错误“无法设置属性”..'未定义”
- 翡翠 - 显示对象属性 - 未定义
- 属性未定义,但控制台.log可以看到它
- JavaScript 对象的属性未定义
- Javascript 对象属性未定义(但属性已设置)
- DOM 元素属性未定义 - jquery / ruby on rails.
- Nodejs JSON 属性未定义
- 错误:窗口打开器的属性未定义
- angular Js:Array.lenght属性未定义
- 正在尝试访问JavaScript对象的属性=未定义
- Marionette属性未定义,请从API获取
- AngularJS作用域属性未定义
- 对象的属性未定义,尽管已指定值
- 为什么我一直收到一个错误,说对象属性未定义
- 对象属性未定义,但我看到它不是
- .map()img src属性未定义