Archive for the ‘Games’ Category
got a minute? try this amazing game made in Flash
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.
enjoy :O)
ActionScript 3.0: fruit smash game demo, part 1
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:
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]);
}
}
}