Helpful stuff on Flash, ActionScript, After Effects etc

cases, code, tips and guidance

Archive for the ‘Games’ Category

got a minute? try this amazing game made in Flash

without comments

this puzzle game is made by a Swedish study group.
it’s very simple, but has a great gameplay and very nice use of music.

try Continuity here

enjoy :O)

Bookmark and Share

Written by admin

februar 5th, 2010 at 1:22 pm

Posted in Flash, Games

ActionScript 3.0: fruit smash game demo, part 1

without comments

so, loving this; http://www.miniclip.com/games/fruit-smash/en/ made me wanna build a demo of it.
I started up easy, hardcoded 3 x 3 balls on stage, and made it possible to see if any of the balls moved matched other balls vertically or horisontally on stage.

here’s my demo:
http://campjohn.dk/AS3/FruitSmash/gametest.html

as you can see it’s a demo.
it’s only possible to move the balls around, and if they match, they don’t dissapear, but only tell if they match or not.
but even though it’s just a demo, it took a lot of time to program.
not being a programmer, I guess I managed to ActionScript it in about 6-7 hours.

here’s the entire code:

package {
               
               import flash.display.MovieClip;
               import flash.display.Sprite;
               import flash.events.MouseEvent;
               
               public class Gametest extends Sprite {
                             
                              private var _xArray:Array;
                              private var _yArray:Array;
                              private var _arrayOfArrays:Array;
                              private var _firstArrayOfBalls:Array;
                              private var _secondArrayOfBalls:Array;
                              private var _thirdArrayOfBalls:Array;
                              private var _firstBall:MovieClip;
                              private var _secondBall:MovieClip;
                              private var _thirdBall:MovieClip;
                              private var _fourthBall:MovieClip;
                              private var _fifthBall:MovieClip;
                              private var _sixthBall:MovieClip;
                              private var _seventhBall:MovieClip;
                              private var _eigthBall:MovieClip;
                              private var _ninethBall:MovieClip;
                              private var _firstSelectedArray:Number;
                              private var _firstSelectedBall:Number;
                              private var _secondSelectedArray:Number;
                              private var _secondSelectedBall:Number;
                                                           
                              public function Gametest():void {
                                             init();
                              }
                             
                              private function init():void {
                                             _xArray = [25, 100, 175];
                                             _yArray = [25, 100, 175];
                                             
                                             arrayOfArrays();
                              }
                             
                              private function arrayOfArrays():void {
                                             _arrayOfArrays = new Array();
                                             
                                             firstArrayOfBalls();
                              }
                             
                              private function firstArrayOfBalls():void {
                                             _firstBall = new Red();
                                             _firstBall.name = "_firstBall";
                                             _firstBall.theColor = "red";
                                             _firstBall.mouseChildren = false;
                                             addChild(_firstBall);
                                             _firstBall.y = _yArray[0];
                                             
                                             _secondBall = new Purple();
                                             _secondBall.name = "_secondBall";
                                             _secondBall.theColor = "purple";
                                             _secondBall.mouseChildren = false;
                                             addChild(_secondBall);
                                             _secondBall.y = _yArray[1];
                                             
                                             _thirdBall = new Blue();
                                             _thirdBall.name = "_thirdBall";
                                             _thirdBall.theColor = "blue";
                                             _thirdBall.mouseChildren = false;
                                             addChild(_thirdBall);
                                             _thirdBall.y = _yArray[2];
                                             
                                             _firstBall.x = _secondBall.x = _thirdBall.x = _xArray[0];
                                             _firstArrayOfBalls = [_firstBall, _secondBall, _thirdBall];
                                             
                                             _arrayOfArrays.push(_firstArrayOfBalls);
                                             
                                             secondArrayOfBalls();
                              }
                             
                              private function secondArrayOfBalls():void {
                                             _fourthBall = new Yellow();
                                             _fourthBall.name = "_fourthBall";
                                             _fourthBall.theColor = "yellow";
                                             _fourthBall.mouseChildren = false;
                                             addChild(_fourthBall);
                                             _fourthBall.y = _yArray[0];
                                             
                                             _fifthBall = new Blue();
                                             _fifthBall.name = "_fifthBall";
                                             _fifthBall.theColor = "blue";
                                             _fifthBall.mouseChildren = false;
                                             addChild(_fifthBall);
                                             _fifthBall.y = _yArray[1];
                                             
                                             _sixthBall = new Red();
                                             _sixthBall.name = "_sixthBall";
                                             _sixthBall.theColor = "red";
                                             _sixthBall.mouseChildren = false;
                                             addChild(_sixthBall);
                                             _sixthBall.y = _yArray[2];
                                             
                                             _fourthBall.x = _fifthBall.x = _sixthBall.x = _xArray[1];
                                             _secondArrayOfBalls = [_fourthBall, _fifthBall, _sixthBall];
                                             
                                             _arrayOfArrays.push(_secondArrayOfBalls);
                                             
                                             thirdArrayOfBalls();
                              }
                             
                              private function thirdArrayOfBalls():void {
                                             _seventhBall = new Green();
                                             _seventhBall.name = "_seventhBall";
                                             _seventhBall.theColor = "green";
                                             _seventhBall.mouseChildren = false;
                                             addChild(_seventhBall);
                                             _seventhBall.y = _yArray[0];
                                             
                                             _eigthBall = new Blue();
                                             _eigthBall.name = "_eigthBall";
                                             _eigthBall.theColor = "blue";
                                             _eigthBall.mouseChildren = false;
                                             addChild(_eigthBall);
                                             _eigthBall.y = _yArray[1];
                                             
                                             _ninethBall = new Purple();
                                             _ninethBall.name = "_ninethBall";
                                             _ninethBall.theColor = "purple";
                                             _ninethBall.mouseChildren = false;
                                             addChild(_ninethBall);
                                             _ninethBall.y = _yArray[2];
                                             
                                             _seventhBall.x = _eigthBall.x = _ninethBall.x = _xArray[2];
                                             _thirdArrayOfBalls = [_seventhBall, _eigthBall, _ninethBall];
                                             
                                             _arrayOfArrays.push(_thirdArrayOfBalls);
                                             
                                             buttonModes();
                                             clickAcceptedByAllBalls();
                              }
                             
                              private function buttonModes():void {
                                             _firstBall.buttonMode = _secondBall.buttonMode = _thirdBall.buttonMode = _fourthBall.buttonMode = _fifthBall.buttonMode = _sixthBall.buttonMode = _seventhBall.buttonMode = _eigthBall.buttonMode = _ninethBall.buttonMode = true;
                                             
                                             traceArrayOfArrays();
                              }
                             
                              private function removeButtonModes():void {
                                             _firstBall.buttonMode = _secondBall.buttonMode = _thirdBall.buttonMode = _fourthBall.buttonMode = _fifthBall.buttonMode = _sixthBall.buttonMode = _seventhBall.buttonMode = _eigthBall.buttonMode = _ninethBall.buttonMode = false;
                                             
                                             traceArrayOfArrays();
                              }                            
                             
                              private function clickAcceptedByAllBalls():void {
                                             _firstBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _secondBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _thirdBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _fourthBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _fifthBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _sixthBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _seventhBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _eigthBall.addEventListener(MouseEvent.CLICK, ballClicked);
                                             _ninethBall.addEventListener(MouseEvent.CLICK, ballClicked);
                              }
                             
                              private function clickRemovedFromAllBalls():void {
                                             _firstBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _secondBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _thirdBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _fourthBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _fifthBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _sixthBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _seventhBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _eigthBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                                             _ninethBall.removeEventListener(MouseEvent.CLICK, ballClicked);
                              }
                             
                              private function removeThisIsTheSecondBall():void {
                                             _firstBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _secondBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _thirdBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _fourthBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _fifthBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _sixthBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _seventhBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _eigthBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             _ninethBall.removeEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                              }                            
                             
                              private function removeAllTexts():void {
                                             _firstBall.textarea.text = "";
                                             _secondBall.textarea.text = "";
                                             _thirdBall.textarea.text = "";
                                             _fourthBall.textarea.text = "";
                                             _fifthBall.textarea.text = "";
                                             _sixthBall.textarea.text = "";
                                             _seventhBall.textarea.text = "";
                                             _eigthBall.textarea.text = "";
                                             _ninethBall.textarea.text = "";
                              }
                             
                              private function ballClicked(e:MouseEvent):void {
                                             
                                             clickRemovedFromAllBalls();
                                             removeButtonModes();
                                             
                                             e.target.textarea.text = "chosen";

                                             var i:Number = 0;
                                             while(i < _arrayOfArrays.length){
                                                            var j:Number = 0;
                                                            while(j < _arrayOfArrays[i].length){
                                                                           if(_arrayOfArrays[i][j].name == e.target.name){
                                                                                          trace("ball clicked: "+_arrayOfArrays[i][j].name);
                                                                                         
                                                                                          _firstSelectedArray = i;
                                                                                          _firstSelectedBall = j;
                                                                                         
                                                                                          break;
                                                                           }
                                                                           j++;
                                                            }
                                                            i++;
                                             }                                           
                                             
                                             findClickableNeighbours(_firstSelectedArray, _firstSelectedBall);
                              }
                             
                              private function findClickableNeighbours(i:Number, j:Number):void {
                                             
                                             if(_arrayOfArrays[i][j-1]){
                                                            _arrayOfArrays[i][j-1].textarea.text = "select";
                                                            _arrayOfArrays[i][j-1].buttonMode = true;
                                                            _arrayOfArrays[i][j-1].addEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             }
                                             
                                             if(_arrayOfArrays[i][j+1]){
                                                            _arrayOfArrays[i][j+1].textarea.text = "select";
                                                            _arrayOfArrays[i][j+1].buttonMode = true;
                                                            _arrayOfArrays[i][j+1].addEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             }
                                             
                                             if(i-1 > -1){
                                                            _arrayOfArrays[i-1][j].textarea.text = "select";
                                                            _arrayOfArrays[i-1][j].buttonMode = true;
                                                            _arrayOfArrays[i-1][j].addEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             }
                                             
                                             if(i+1 < _arrayOfArrays.length){
                                                            _arrayOfArrays[i+1][j].textarea.text = "select";
                                                            _arrayOfArrays[i+1][j].buttonMode = true;
                                                            _arrayOfArrays[i+1][j].addEventListener(MouseEvent.CLICK, thisIsTheSecondBall);
                                             }
                              }
                             
                              private function thisIsTheSecondBall(e:MouseEvent):void {
                                             clickRemovedFromAllBalls();
                                             removeThisIsTheSecondBall();
                                             removeButtonModes();
                                             
                                             var i:Number = 0;
                                             while(i < _arrayOfArrays.length){
                                                            var j:Number = 0;
                                                            while(j < _arrayOfArrays[i].length){
                                                                           if(_arrayOfArrays[i][j].name == e.target.name){
                                                                                          trace("ball clicked: "+_arrayOfArrays[i][j].name);
                                                                                         
                                                                                          _secondSelectedArray = i;
                                                                                          _secondSelectedBall = j;
                                                                                         
                                                                                          break;
                                                                           }
                                                                           j++;
                                                            }
                                                            i++;
                                             }
                                             
                                             swapTheBalls();
                              }
                             
                              private function swapTheBalls():void {
                                             var firstX:Number = _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].x;
                                             var firstY:Number = _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].y;
                                             var secondX:Number = _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].x;
                                             var secondY:Number = _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].y;
                                             
                                             _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].x = secondX;
                                             _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].y = secondY;
                                             _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].x = firstX;
                                             _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].y = firstY;
                                             
                                             removeAllTexts();
                                             
                                             swapTheBallsInArrays();
                              }
                             
                              private function swapTheBallsInArrays():void {
                                             
                                             var firstball:Object = _arrayOfArrays[_firstSelectedArray][_firstSelectedBall];
                                             var secondball:Object = _arrayOfArrays[_secondSelectedArray][_secondSelectedBall];
                                             
                                             _arrayOfArrays[_firstSelectedArray][_firstSelectedBall] = secondball;
                                             _arrayOfArrays[_secondSelectedArray][_secondSelectedBall] = firstball;
                                             
                                             anyMatch();
                              }
                             
                              private function anyMatch():void {
                                                                                         
                                             var firstColor = _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].theColor;
                                             var secondColor = _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].theColor;
                                             
                                             //first color
                                             if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall-1]){
                                                            if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall-1].theColor == firstColor){
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall-1].textarea.text = "match";
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall-2]){
                                                                                          if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall-2].theColor == firstColor){
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall-2].textarea.text = "match";
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }
                                                            }
                                             }
                                                                                         
                                             if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall+1]){
                                                            if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall+1].theColor == firstColor){
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall+1].textarea.text = "match";
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall+2]){
                                                                                          if(_arrayOfArrays[_firstSelectedArray][_firstSelectedBall+2].theColor == firstColor){
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall+2].textarea.text = "match";
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }                                           
                                             
                                             if(_firstSelectedArray-1 > -1){
                                                            if(_arrayOfArrays[_firstSelectedArray-1][_firstSelectedBall].theColor == firstColor){
                                                                           _arrayOfArrays[_firstSelectedArray-1][_firstSelectedBall].textarea.text = "match";
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_firstSelectedArray-2 > -1){
                                                                                          if(_arrayOfArrays[_firstSelectedArray-2][_firstSelectedBall].theColor == firstColor){
                                                                                                         _arrayOfArrays[_firstSelectedArray-2][_firstSelectedBall].textarea.text = "match";
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }
                                             
                                             if(_firstSelectedArray+1 < _arrayOfArrays.length){
                                                            if(_arrayOfArrays[_firstSelectedArray+1][_firstSelectedBall].theColor == firstColor){
                                                                           _arrayOfArrays[_firstSelectedArray+1][_firstSelectedBall].textarea.text = "match";
                                                                           _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_firstSelectedArray+2 < _arrayOfArrays.length){
                                                                                          if(_arrayOfArrays[_firstSelectedArray+2][_firstSelectedBall].theColor == firstColor){
                                                                                                         _arrayOfArrays[_firstSelectedArray+2][_firstSelectedBall].textarea.text = "match";
                                                                                                         _arrayOfArrays[_firstSelectedArray][_firstSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }
                                             
                                             //second color
                                             if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall-1]){
                                                            if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall-1].theColor == secondColor){
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall-1].textarea.text = "match";
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall-2]){
                                                                                          if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall-2].theColor == secondColor){
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall-2].textarea.text = "match";
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }
                                                            }
                                             }
                                                                                         
                                             if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall+1]){
                                                            if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall+1].theColor == secondColor){
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall+1].textarea.text = "match";
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall+2]){
                                                                                          if(_arrayOfArrays[_secondSelectedArray][_secondSelectedBall+2].theColor == secondColor){
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall+2].textarea.text = "match";
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }                                           
                                             
                                             if(_secondSelectedArray-1 > -1){
                                                            if(_arrayOfArrays[_secondSelectedArray-1][_secondSelectedBall].theColor == secondColor){
                                                                           _arrayOfArrays[_secondSelectedArray-1][_secondSelectedBall].textarea.text = "match";
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_secondSelectedArray-2 > -1){
                                                                                          if(_arrayOfArrays[_secondSelectedArray-2][_secondSelectedBall].theColor == secondColor){
                                                                                                         _arrayOfArrays[_secondSelectedArray-2][_secondSelectedBall].textarea.text = "match";
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }
                                             
                                             if(_secondSelectedArray+1 < _arrayOfArrays.length){
                                                            if(_arrayOfArrays[_secondSelectedArray+1][_secondSelectedBall].theColor == secondColor){
                                                                           _arrayOfArrays[_secondSelectedArray+1][_secondSelectedBall].textarea.text = "match";
                                                                           _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                           
                                                                           if(_secondSelectedArray+2 < _arrayOfArrays.length){
                                                                                          if(_arrayOfArrays[_secondSelectedArray+2][_secondSelectedBall].theColor == secondColor){
                                                                                                         _arrayOfArrays[_secondSelectedArray+2][_secondSelectedBall].textarea.text = "match";
                                                                                                         _arrayOfArrays[_secondSelectedArray][_secondSelectedBall].textarea.text = "match";
                                                                                          }
                                                                           }                                                                         
                                                            }
                                             }                                           
                                             
                                             buttonModes();
                                             clickAcceptedByAllBalls();
                              }
                             
                              private function traceArrayOfArrays():void {
                                             //trace("_arrayOfArrays.length = "+_arrayOfArrays.length);
                                             //trace("_arrayOfArrays[0].length = "+_arrayOfArrays[0].length);
                                             //trace("_arrayOfArrays = "+_arrayOfArrays);
                                             //trace("_arrayOfArrays[0] = "+_arrayOfArrays[0]);
                              }
               }
}
Bookmark and Share

Written by admin

april 12th, 2009 at 11:50 am