【发布时间】:2015-03-22 21:55:58
【问题描述】:
我正在 HTML5 画布中制作一个 2D 游戏,其中包含很多对象。一些对象彼此共享一些属性。某些属性仅适用于一个对象。对象可能有一个空值属性。
我想创建一个具有所有对象属性的主对象。如果有一个对象只有主对象的 3 个属性,则其他属性为空。
例如,假设游戏中任何对象的所有可能属性都是 {a,b,c,d,e,f,g},我们在游戏中有 2 个对象ob0 & ob1 .
ob0 的属性是 a,c,d,所以我只填写它们,其他属性 {b,e,f} 将为空。
ob1 的属性是 b,e,f,所以我只填写它们,其他属性 {a,c,d} 将为空。
因为两件事,我想到了这个演示文稿。第一件事是我在 OOP 和继承以及其他 OOP 方面不是很好。第二件事是大约2年前,在一个叫Red Alert2的游戏中,有一个.INI文件,文件里面是游戏中的所有对象。数据是这样表示的
[obj1]
color=red
width=100px
cankill=yes
[obj2]
weapontype:4
canswim=yes
weapontype=4
speed=20
例如,cankill 属性不在obj2 中,obj2 在游戏中无法杀死。但是如果你给obj2这个属性并给它weapontype=10它会在游戏中使用游戏中的第10把武器杀死。这告诉我,如果一个属性没有值,这意味着在游戏中它的值将是零或??
我的问题来了。
如何在 JS 中做到这一点?我的意思是我真的可以将
.INI文件与JS连接起来吗?有没有更有效的方法来保存对象属性?我不是要求用两页来描述这种方式。我只是想知道这一点的主要思想。
- 我认为我对这个问题的解决方案会遇到大小超载的问题。如果游戏有 1000 个属性,每个对象将由 1000 个属性组成,此时对象可能只需要 4 或 5 个属性,这会严重影响内存。怎么可能解决?
【问题讨论】:
-
是的,它向我展示了一个开始 OOP 的好方法,但我想知道所有可能的选项来表示我的对象。
标签: javascript object ini