我正在Flash / AS3中创建一个益智游戏。它使用大约30到40组单词。我想要做的是在游戏开始时加载一组随机单词,在使用它们之后,我想加载另一个随机组,依此类推。解决这个问题的最佳方法是什么?我是否应该使用基于随机数的switch语句选择多个数组,还是应该将它们全部放入一个多维数组中?每组单词最多可包含2000个单词。
答案 0 :(得分:0)
最好使用xml创建wordgroup并轻松地将它们拉出来。所以,我的意思是,你使用多维数组是有效的。
var wordgroups:Array = new Array();
wordgroups.push(new Array("word1", "word3", "word5"), new Array("word2", "word4", "word6")); //you can easily create whole this multidimensional array with xml
wordgroups.shuffle(); //shuffles array (flashpunk library have this function, you may check it out and clone it's function if you can)
var selectedwordgroup:Array;
selectedwordgroup = wordgroups.pop(); //you can easily take a word group from that array and it removes selected wordgroup from the "wordgroups" array automatically with pop() function.
XML内容
这是一个样本* .xml文件:
<?xml version="1.0" encoding="utf-8"?>
<wordstuff>
<wordgroups>
<group>word1,word2,word3,word4,word5,word6</group>
<group>word7,word8,word9,word10,word11,word12</group>
<group>word13,word14,word15,word16,word17,word18</group>
</wordgroups>
</wordstuff>
这是一个从xml中提取数据的示例(你要将你的xml内容嵌入你的游戏中,所以,你不需要任何url加载器对象,你可以像嵌入图像文件一样嵌入它进入你的游戏,有点不同) 然后你可以使用这个嵌入式xml创建数组
var pulledgroups:Array = new Array();
var my_xml:XML = WORDSTUFF //that's embedded file
var wordgroups:XMLList = my_xml.wordgroups.group;
var group:XML;
for each (group in wordgroups)
{
var pulledwordgroup:Array = group.split(",");
pulledgroups.push(pulledwordgroup);
}
这就是所有,这个单一代码段落,同时提取所有数据