- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 MUD 作为练习 JS 的有趣项目(我是一个完全的菜鸟,但受到 codecademy 的启发,想学习更多!)我希望我能得到一些关于如何代表我的建议JS 中的地牢。
我希望我的地牢具有的功能是:
鉴于 JS 是 OO 语言,我认为表示地牢的最佳方式是作为一个对象:
var dungeon = {
var room1:roomA,
var room2:roomB,
var room3:roomC
}
//RoomX is an object created with the following constructor
function Room(){
this.description: "Some text",
this.monsters:[monster1,monster2,monster3],
this.treasure:[treasure1,treasure2,treasure3]
}
计划是为 Room 对象创建方法,允许玩家与房间中的东西进行交互。
问题:
1) 这是个好主意吗/行得通吗?
2) 如何为对象生成随机数量的属性?
谢谢!
最佳答案
这是一个相当开放的问题 - 有很多方法都可以同样“正确”地做到这一点。但有几点:
您的对象字面量语法无效 - 您需要从属性名称中删除 var
关键字,使其看起来像这样:
var dungeon = {
room1:roomA,
room2:roomB,
room3:roomC
}
但我认为您最好选择一系列房间:
var dungeon = [ roomA, roomB, roomC ];
因为这样您就可以轻松改变房间的数量。假设您以某种方式随机生成房间,您可以使用 dungeon.push(new Room())
轻松地将新房间添加到数组中。
此外,如果碰巧您的房间位于规则网格中,您可能希望使用数组数组来表示:
var dungeon = [ [ roomA, roomB, roomC ],
[ roomD, roomE, roomF ],
[ roomG, roomH, roomI ] ];
这样右中间的房间将被访问为 dungeon[1, 2]
(第 1 行,第 2 列,注意数组索引是从零开始的)。
您函数中的赋值语法也不正确:您需要说
this.propertyName = someValue;
// NOT
this.propertyName : someValue;
冒号 :
用于对象字面量 { property : value }
语法中的属性创建,但等号 =
用于其他赋值 variableOrProperty = value
。
关于javascript - 用 JavaScript 表示地牢然后用怪物填充它的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492043/
更新: 一些随机路径的输出我相信是这里造成的: if(openlist[x][y]!=1){ if(min>copy[x][y]){ min=copy[
我使用的代码只是取自一个示例,它确实为我的场景建了一堵墙: /** This loop builds a wall out of individual bricks. */ public vo
我是一名优秀的程序员,十分优秀!