My program is a simple game where colored rectangles fall down the screen. Your player changes color depending on what button you click on, the aim is to make your player the same color as the falling object. How do i do a hit test object and check if the two colors are the same.
Here is my code:
import flash.geom.ColorTransform;
import flash.events.TimerEvent;
var rectangle:Shape = new Shape;
var RecTimer:Timer = new Timer(5);
var RecSTimer:Timer = new Timer(800);
var collision:Timer = new Timer(10,1000);
collision.start()
RecTimer.addEventListener(TimerEvent.TIMER, onTimer);
RecTimer.start();
RecSTimer.addEventListener(TimerEvent.TIMER, onSpawnTimer);
RecSTimer.start();
collision.addEventListener(TimerEvent.TIMER, fcollision)
function fcollision(e:TimerEvent):void {
for each(var rectangle:Shape in rectangles)
{
if (mcPLayer.hitTestObject(rectangle)) {
}
}
}
var rectangles:Array = []; // a list of all the rectangles we've made so far
function spawnRectangle():void {
var rectangle:Shape = new Shape();
rectangle.graphics.beginFill(randomColor()); // choosing the colour for the fill, here it is red
rectangle.graphics.drawRect(0, 10, 480, 45.49); // (x spacing, y spacing, width, height)
rectangle.graphics.endFill();
addChild(rectangle); // adds the rectangle to the stage
rectangles.push(rectangle); // adds the rectangle to our list of rectangles
}
var colors:Array = [0xFF0000, 0x00FF00, 0x0000FF];
function randomColor():uint
{
return colors[int(Math.random()*colors.length)];
}
function moveAllRectangles():void {
for each (var rectangle:* in rectangles) {
rectangle.y +=2;
if (rectangle.y == 550){
removeChild(rectangle)
}
}
}
function onTimer(e:TimerEvent):void {
moveAllRectangles();
}
function onSpawnTimer(e:TimerEvent):void {
spawnRectangle();
}
btnRed.addEventListener(MouseEvent.CLICK, fred);
btnGreen.addEventListener(MouseEvent.CLICK, fgreen);
btnBlue.addEventListener(MouseEvent.CLICK, fblue);
function fred (e:MouseEvent):void{
var myColorTransform = new ColorTransform();
myColorTransform.color = 0xFF0000;
mcPLayer.transform.colorTransform = myColorTransform;
}
function fgreen (e:MouseEvent):void{
var myColorTransform = new ColorTransform();
myColorTransform.color = 0x00FF00;
mcPLayer.transform.colorTransform = myColorTransform;
}
function fblue (e:MouseEvent):void{
var myColorTransform = new ColorTransform();
myColorTransform.color = 0x0066CC;
mcPLayer.transform.colorTransform = myColorTransform;
}
function delayedFunctionCall(delay:int, func:Function) {
var timer:Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, func);
timer.start();
}