我刚开始在javascript中使用oop,我遇到了一些问题,试图从另一个方法中访问一个方法.
这是我的代码:
var Game = {
initialize: function () {
if (canvas.isSupported()) {
sprites[0] = new Player();
this.update();
}
},
update: function() {
for (var i = 0; i < sprites.length; i++) {
sprites[i].update();
}
this.draw();
},
draw: function() {
this.clear();
for (var i = 0; i < sprites.length; i++) {
sprites[i].draw();
}
setTimeout(this.update, 10);
},
clear: function() {
canvas.context.clearRect(0, 0, canvas.element.width, canvas.element.height);
}
Run Code Online (Sandbox Code Playgroud)
}
但是调用Game.update()会给出一个错误,即没有定义draw方法.我无法找到真正的解决方案.最终我发现这个如何在一个javascript对象
中调用一个方法,其答案似乎是我需要保护这个引用像:
var _this = this;
但我无法用文字表示法工作,所以我将代码更改为对象构造函数(我想这就是它的调用方式)并添加了变量.
然后我改变了
this.draw();
Run Code Online (Sandbox Code Playgroud)
至
_this.draw();
Run Code Online (Sandbox Code Playgroud)
它起作用了. …
我正试图在XNA中制作(弄清楚如何......)2d平台游戏.
我知道如何创建一个平铺网格以及如何执行碰撞检测.我在播放器的9个边界拼贴上执行碰撞检测,但我想知道是否有更好的方法来执行碰撞检测.
我读过Braid不使用瓷砖而是拼凑图像或其他东西,你如何对它们进行碰撞检测?并且比使用瓷砖更好吗?
一年前我必须在学校学习PHP,我已经知道ActionScript3所以它并不那么困难,并且和我的一个朋友一起,我们是学校的前两个用PHP学习OOP的人.这不是必需的,但我们认为这很重要.
去年我开始学习C#和ASP.NET,但我在C#和ASP.NET方面远非专业,我为自己做了一些项目,仅用于教育目的.
现在几天前我开始实习(这应该需要6个月)但是该公司仍然使用ASP Classic和VBScript.
是否值得去年学习ASP.NET和C#,现在启动ASP Classic和VBScript 6个月,之后可能继续使用ASP.NET和C#?
我想对此有一些看法,因为我不知道我是否应该留下来做ASP Classic,或者去寻找另一个我可以做ASP.NET的实习.