我创造了一个闪光击打鼹鼠游戏,并编码了9个不同的x和y坐标4摩尔可以出现。但我不能对它进行编码,以便鼹鼠永远不会有相同的x和y坐标。
我尝试过这段代码:( Barney和mulvarp是两个摩尔人.flytt();是给鼹鼠一个新地方的命令。
if( Barney.x == mulvarp.x ){
Barney.flytt();
}
Barney.addEventListener(MouseEvent.CLICK, flyttb);
function flyttb(evt:MouseEvent){
barneyAu.play();
//returnFourPositionsF();
Barney.flytt();
teller-=4;
score.text=teller+"p";
barneyTimer.reset();
barneyTimer.start();
}
mulvarp.addEventListener(MouseEvent.CLICK, flyttm);
function flyttm(evt:MouseEvent){
squishRiktig.play();
mulvarp.flytt();
teller+=1;
score.text=teller+"p";
mulvarpTimer.reset();
mulvarpTimer.start();
}
Kone.addEventListener(MouseEvent.CLICK, flyttmk);
function flyttmk(evt:MouseEvent){
squishRiktig.play();
Kone.flytt();
teller+=2;
score.text=teller+"p";
koneTimer.reset();
koneTimer.start();
}
Baby.addEventListener(MouseEvent.CLICK, flyttmb);
function flyttmb(evt:MouseEvent){
squishRiktig.play();
Baby.flytt();
teller+=3;
score.text=teller+"p";
babyTimer.reset();
babyTimer.start();
}
这是.flytt();函数我进入了动作中的所有痣:
function flytt():void{
var flyttUt:int=Math.random() * 8;
if(flyttUt==0){
x=243,30;
y=171,65
}
if(flyttUt==1){
x=630,55;
y=170,25;
}
if(flyttUt==2){
x=999,85;
y=175,55;
}
if(flyttUt==3){
x=244,85;
y=363,85;
}
if(flyttUt==4){
x=632,75;
y=360,20;
}
if(flyttUt==5){
x=996,25;
y=359,50;
}
if(flyttUt==6){
x=228,45;
y=572,40;
}
if(flyttUt==7){
x=627,75;
y=570,95;
}
if(flyttUt==8){
x=650,60;
y=382,05;
}
}
我得到了一个建议,可能使用它并打电话给returnFourPositionsF();
,但我不确定如何把所有的鼹鼠都放在一个,因为他们都有不同的计时器,我不希望他们改变位置甚至只有一个正在改变。
var positionA:Array = [ [243.30,171.65],[630.55,170.25],[999.85,175.55],[244.85,363.85],[632.75,360.20],[996.25,359.50],[228.45,572.40],[627.75,57.95],[650.60,382.05] ];
function returnFourPositionsF():Array{
shuffle(positionA);
return [positionA[0],positionA[1],positionA[2],positionA[3]]
}
function shuffle(a:Array) {
var p:int;
var t:*;
var ivar:int;
for (ivar = a.length-1; ivar>=0; ivar--) {
p=Math.floor((ivar+1)*Math.random());
t = a[ivar];
a[ivar] = a[p];
a[p] = t;
}
}
答案 0 :(得分:0)
通过Dictionary
运行您的混洗数组。
import flash.utils.Dictionary;
var ar:Array = [[200, 100], [600, 400], [200, 100], [479, 239]];
var dict:Dictionary = new Dictionary();
for(var i:int=0;i<ar.length;i++)
{
dict[ar[i]] = ar[i];
}
var temp:Array = [];
for(var item in dict)
{
temp.push(item);
}
字典不能包含重复键,因此每个重复键都会被删除。从那里,您应该能够使用此逻辑来避免重复的位置。