estupidyante
09-16-2010, 04:15 AM
I'm new on actionscript and want to create a boardgame similar to stratego, I read some articles and come out with this code:
var c1 = new ColorTransform(1,1,1,1,0,0,0,1);
var c2 = new ColorTransform(0,0,0,1,51,102,153,1);
// create the board
for(var c=0; c<8; c++) {
for(var r=c%2; r<9+c%2; r++) {
var square:Sprite = new Sprite();
var color:uint = (c < 4) ? 0x999999 : 0xFFFFFF;
square.graphics.beginFill(color);
square.graphics.lineStyle(1, 0x000000);
square.graphics.drawRect(0,0, 50, 50);
square.graphics.endFill();
square.x = (r-c%2) * 50;
square.y = c * 50;
square.addEventListener(MouseEvent.ROLL_OVER, rollover);
square.addEventListener(MouseEvent.ROLL_OUT, rollout);
square.addEventListener(MouseEvent.CLICK, controlBox);
addChild(square);
}
}
// change color of the box when rollover
function rollover(e:MouseEvent):void {
e.target.transform.colorTransform = c2;
}
function rollout(e:MouseEvent):void {
e.target.transform.colorTransform = c1;
}
var pmove:Sprite = new Sprite();
addChild(pmove);
var select:Sprite = new Sprite();
addChild(select);
function controlBox(e:MouseEvent):void {
// highlight the box selected
select.graphics.clear();
select.graphics.lineStyle(2, 0x999999);
select.graphics.beginFill(0x6EAE09, 0.8);
select.graphics.drawRect(e.target.x, e.target.y, e.target.width, e.target.height);
select.graphics.endFill();
// highlight the possible moves
pmove.graphics.clear();
pmove.graphics.beginFill(0x9CFF00, 0.3);
pmove.graphics.drawRect(e.target.x-50, e.target.y, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x, e.target.y-50, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x, e.target.y+50, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x+50, e.target.y, e.target.width, e.target.height);
pmove.graphics.endFill();
}
how can I put my pieces on the board and setup their position (by swaping the pieces) after I setup the position if I click the piece it will suggest a move that allowed for that pieces (forward, backward, right, left)? what should I need to learn? or how should I do all of that?
Thanks,
var c1 = new ColorTransform(1,1,1,1,0,0,0,1);
var c2 = new ColorTransform(0,0,0,1,51,102,153,1);
// create the board
for(var c=0; c<8; c++) {
for(var r=c%2; r<9+c%2; r++) {
var square:Sprite = new Sprite();
var color:uint = (c < 4) ? 0x999999 : 0xFFFFFF;
square.graphics.beginFill(color);
square.graphics.lineStyle(1, 0x000000);
square.graphics.drawRect(0,0, 50, 50);
square.graphics.endFill();
square.x = (r-c%2) * 50;
square.y = c * 50;
square.addEventListener(MouseEvent.ROLL_OVER, rollover);
square.addEventListener(MouseEvent.ROLL_OUT, rollout);
square.addEventListener(MouseEvent.CLICK, controlBox);
addChild(square);
}
}
// change color of the box when rollover
function rollover(e:MouseEvent):void {
e.target.transform.colorTransform = c2;
}
function rollout(e:MouseEvent):void {
e.target.transform.colorTransform = c1;
}
var pmove:Sprite = new Sprite();
addChild(pmove);
var select:Sprite = new Sprite();
addChild(select);
function controlBox(e:MouseEvent):void {
// highlight the box selected
select.graphics.clear();
select.graphics.lineStyle(2, 0x999999);
select.graphics.beginFill(0x6EAE09, 0.8);
select.graphics.drawRect(e.target.x, e.target.y, e.target.width, e.target.height);
select.graphics.endFill();
// highlight the possible moves
pmove.graphics.clear();
pmove.graphics.beginFill(0x9CFF00, 0.3);
pmove.graphics.drawRect(e.target.x-50, e.target.y, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x, e.target.y-50, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x, e.target.y+50, e.target.width, e.target.height);
pmove.graphics.drawRect(e.target.x+50, e.target.y, e.target.width, e.target.height);
pmove.graphics.endFill();
}
how can I put my pieces on the board and setup their position (by swaping the pieces) after I setup the position if I click the piece it will suggest a move that allowed for that pieces (forward, backward, right, left)? what should I need to learn? or how should I do all of that?
Thanks,