johosher
02-20-2008, 04:05 AM
I am currently working on a flash game and having some trouble. My game is a puzzle game where you have to drag and drop different colored aliens and when you get four aliens in a row, they disappear and you get points. I made an array of 6 different colored aliens and randomly attached the different colors to the screen in rows of 8. it starts with 3 rows in the start then as time goes by a row is inserted every 3 seconds or so. I am trying to make it so that you can only pick up the elements in the last row. So could someone help me with an idea to make it so that each alien can keep track of which aliens are around him? and if there is a same colored alien beside him to link them together some how? heres my code so far with 6 movieclips.
stop();
clock=0;
var linkageArr:Array = ["red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","green", "green", "green", "green", "green", "green","green","green","green","green","green","green","green","green","green","green","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange"];
var newArr:Array;
linkageArr.sort(sort);
initialize();
setInterval(this, "addRow", 2000);
function initialize():Void{
var depth:Number;
var clip:MovieClip;
var x:Number = 160;
var y:Number = -355;
for(var i:Number = 0; i <= linkageArr.length; i++){
depth = this.getNextHighestDepth();
clip = this.attachMovie(linkageArr[i], "clip" + depth, depth, {_x: x, _y: y});
clip.onPress = function():Void{
onAlienPress(this);
}
clip.onMouseUp = function():Void{
onAlienRelease(this);
}
if((i +1) % 8 != 0){
x+= clip._width +5;
}
else{
x = 160;
y += clip._height + 5;
}
}
}
function addRow(alien:MovieClip):Void
{
if(_y < 355){
_y += 40;
}else
{
gotoAndStop(2);
}
}
function onAlienPress(alien:MovieClip):Void{
startDrag(alien,true);
}
function onAlienRelease(alien:MovieClip):Void{
stopDrag();
if(alien._droptarget == "/column3"){
gotoAndStop(3);
}
}
function sort(a:Object, b:Object):Number{
return(Math.random() < .5)? - 1: 1;
}
stop();
clock=0;
var linkageArr:Array = ["red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","green", "green", "green", "green", "green", "green","green","green","green","green","green","green","green","green","green","green","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","blue","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","yellow","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","purple","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange","orange"];
var newArr:Array;
linkageArr.sort(sort);
initialize();
setInterval(this, "addRow", 2000);
function initialize():Void{
var depth:Number;
var clip:MovieClip;
var x:Number = 160;
var y:Number = -355;
for(var i:Number = 0; i <= linkageArr.length; i++){
depth = this.getNextHighestDepth();
clip = this.attachMovie(linkageArr[i], "clip" + depth, depth, {_x: x, _y: y});
clip.onPress = function():Void{
onAlienPress(this);
}
clip.onMouseUp = function():Void{
onAlienRelease(this);
}
if((i +1) % 8 != 0){
x+= clip._width +5;
}
else{
x = 160;
y += clip._height + 5;
}
}
}
function addRow(alien:MovieClip):Void
{
if(_y < 355){
_y += 40;
}else
{
gotoAndStop(2);
}
}
function onAlienPress(alien:MovieClip):Void{
startDrag(alien,true);
}
function onAlienRelease(alien:MovieClip):Void{
stopDrag();
if(alien._droptarget == "/column3"){
gotoAndStop(3);
}
}
function sort(a:Object, b:Object):Number{
return(Math.random() < .5)? - 1: 1;
}