gpt4 book ai didi

javascript - 如何导入里面有函数的JSON对象?

转载 作者:行者123 更新时间:2023-11-29 22:32:13 27 4
gpt4 key购买 nike

你好,

我现在正在玩 JS.Class,我正在制作一个基于文本的游戏。目前,它是在浏览器中执行的,但最终,它将在管理套接字的 Node.js 环境中执行,并为使用类似 telnet 的客户端的玩家提供 ANSI 颜色支持。

我创建了几个类,其中一个定义了 Angular 色(可以是真实玩家或游戏中的 Angular 色)。

对于真正的玩家,创建新玩家的代码如下所示:new Character( "userId", {/* player's options/settings/parameters here*/}, socket );

例子:

new Character( "000001", {
"Name" : "Cybrix",
"Zone" : "000001-000003",
"Stealth" : false,
"Fighting" : false,
"Blind" : false,
"Sleeping" : false
}, socket );

通常情况下,游戏中的 Angular 色应该有不同的和独特的方法,我用这些方法来模拟类似事件的行为。

例子:

new Character( "000001", {
"Name" : "Large Dragon Boss",
"Zone" : "000001-000003",
"Stealth" : false,
"Fighting" : false,
"Blind" : false,
"Sleeping" : true,
"onArrive" : function( target ) {
/* do something unique to this character. Eg: attack target */
}
}, undefined );

问题:

我想找到一种有效的方法来按需加载所有“独特”的游戏 Angular 色(这通常发生在加载新区域时)。这将支持功能。我真的考虑过使用 AJAX,但那将是无效的 JSON 格式。

关于如何实现这一点的任何提示,或者我应该在我的“游戏”设计中更改什么来实现这一点?

我当然需要一个既能在我的浏览器 中运行又能很好地移植到 Node.js 的解决方案。

谢谢!

(PS:对于我的非常具体的问题,可能对其他人没有帮助,我深表歉意)(PS 2:不知道Title中用什么问题)

最佳答案

这些字符是否可以拆分为字符类型。您可以让您的字符类型继承自 Character,并且每个字符类型都实现自己的 onArrive 方法。像这样的东西:

function Dude(){};
Dude.prototype = new Character // inherit from character
Dude.prototoype.onArrive = function(){
// do some stuff
}

等等。

您不能在从服务器返回的 JSON 中定义函数,您也不想这样做。那将是紧密耦合的。只需定义继承和创建具有适当“特征”(或行为)的字符类型的对象原型(prototype)

额外的

我对您要找的东西有点困惑,但让我再试一次。如果你有一些数据在几个服务器之间交换,(字符数据)你希望能够实例化某种类型的对象。假设此数据知道其类型(即将其作为属性添加到字符 JSON),那么您可以实例化任何类型的对象。使用上述原型(prototype)声明,您可以创建任意多种类型的 Character。然后您可以通过一些工厂方法实例化此类型。例如

var Factory = {
new: function(attrs){
return new classes[attrs.type](attrs);
}
};

var classes = {
dude: Dude,
another: Another,
blah: Lah,
};

假设您已经将 Dude、Another、Lah 定义为 Character 的其他原型(prototype),并且它们各自实现了一些 onAdd 方法(或者只使用 中定义的默认值>Character. 然后你就可以像这样使用它了:

character = Factory.new({
type: 'dude',
"Name" : "Cybrix",
"Zone" : "000001-000003",
"Stealth" : false,
"Fighting" : false,
"Blind" : false,
"Sleeping" : false
});

character.onAdd();

关于javascript - 如何导入里面有函数的JSON对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538948/

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