gpt4 book ai didi

javascript - 自定义对象/类型 Javascript

转载 作者:行者123 更新时间:2023-11-28 01:53:41 26 4
gpt4 key购买 nike

我正在使用canvs 在 JS 中开发一个简单的 2d 游戏。

游戏由一名骑士四处奔跑杀死妖精,妖精一旦接触,就会重置到兰 Gorm 位置。我想为每一个被杀死的妖精留下血迹。

目前,在重新绘制 Canvas 之前,我使用之前妖精死亡处的 X 和 Y 坐标来绘制我的血溅图像。

不过我想为所有妖精做这件事。在像 Java 这样的传统语言中,我会定义一个类型,例如具有两个属性 X 和 Y 的“血液”。

然后,我将使用妖精当前坐标每轮创建此类型的新实例,然后将此类型添加到数组中,我将循环并 然后打印该数组中的所有对象。

我对 JS 很陌生,因为它是一种函数式语言,所以事情有点不同。我究竟如何定义这样的类型,以便在游戏的每次迭代中都可以将其“新建”到数组中?

var blood = {
x: 0,
y: 0
};

这是我当前拥有的血液对象

最佳答案

您在 Javascript 中创建“类”作为函数。在函数内部使用 this.x 就像创建一个名为 x 的成员变量:

var Blood = function() {
this.x = 0;
this.y = 0;
}
var blood = new Blood()
console.log(blood.x);

这些不是像 Java 这样的面向对象语言意义上的类或类型,只是通过使用 Javascript 的作用域规则来模仿它们的一种方式。

到目前为止,这里并没有多大用处——一个简单的对象映射也可以工作。但是,如果您在 Blood“类”中需要更多逻辑(例如成员函数等),则这种方法可能很有用。您可以通过修改对象的原型(prototype)来创建这些逻辑:

Blood.prototype.createSplatter = function() {
return [this.x-1, this.y+1]; // (idk, however you create a splatter)
};
blood.createSplatter();

(Fiddle)

有关 Javascript 类的更多详细信息,我建议查看 CoffeeScript syntax (向下滚动到“类、继承和 super ”)。他们有一些并排的类示例,采用简化的 CS 语法和 JS 翻译。

关于javascript - 自定义对象/类型 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19410200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com