我正在开发游戏并遇到一些问题。现在我有一个文本框,显示说我遇到了继续下一个级别。当我遇到它时,下一级加载完美,那部分效果很好。现在我试图将其更改为文本框显示的位置,并且有两个指向两个不同级别的链接。游戏中有一些项目,我想要做的是让玩家在有一个项目的情况下进入一个级别,如果他没有项目则进入另一个级别。我会通过给项目赋值,然后在与文本框碰撞时检查该值是否在库存中。所以主要的问题是,是否可以将两个节点链接到一个文本框?如果是这样,我该怎么做呢?以下是我的一些代码:
来自我的.js文件:
function Choice(scene, text, image, width, height, z) {
// Static textbox object that holds the text of a choice
tChoice = new TextBox(scene, image, width, height);
tChoice.text = text;
tChoice.choiceNumber = 0;
tChoice.z = z;
return tChoice;
} // end choice
来自我的.html文件:
function checkChoiceCollisions() {
// If a player collides with a choice, that choice's level will be displayed.
for (var i = 0; i < choices.length; i ++) {
if(player.collidesWith(choices[i])) {
player.visible = false;
switchNode(i);
} // end if
} // end for
} // end checkChoiceCollisions
JSON:
"options":[{"text":"Run into me to continue\nto the next level","link":"nodes/nextLevel.txt","width":"150", "height":"75", "x":"800", "y":"250"}]
感谢您的帮助!!
编辑:我忘了添加这部分代码..
function makeChoices() {
// Makes the choice textboxes defined by the level.
for (var i = 0; i < choices.length; i ++) {
// Destroy the previous level's choice boxes.
var index = spriteList.list.indexOf(choices[i]);
spriteList.list.splice(index, 1);
} // end for
choices = [];
for (var i = 0; i < curNode.options.length; i ++) {
// Create each choice box defined by the level.
var width = parseInt(curNode.options[i].width);
var height = parseInt(curNode.options[i].height);
var x = parseInt(curNode.options[i].x);
var y = parseInt(curNode.options[i].y);
var choice = new Choice(scene, curNode.options[i].text, null, width, height, 2);
choice.setPosition(x, y);
choice.fitText();
choices.push(choice);
if (!checkChoiceRequirements(i)) {
// Only display a choice if its requirements are met.
choices[i].visible = false;
} // end if
} // end for
} // end makeChoices
答案 0 :(得分:0)
留下这个问题,因为我没有评论......
因为你的函数“Choice”是大写的,所以我希望它是一个伪经典的构造函数,然后默认返回它隐含的'this'对象。但相反,你会回来'tChoice',这可能会产生意想不到的后果。
您还要为'tChoice'对象定义值,而不通过'var'关键字声明它。您打算访问名为'tChoice'的全局变量吗?
否则,我不确定你究竟要问的是什么“可以将两个节点链接到一个文本框?”访问对象似乎是一个很好的方法。你收到错误了吗?你能把你的代码发布到Fiddle / Plunkr / JS_Bin吗?