this is my code. I am total begginer in programming so i do not know, how i can make my character stop when it hits blackBlocks? any help would be great.
package
{
import flash.display.MovieClip;
import flash.events.*;
import flash.display.*;
import flashx.textLayout.formats.BlockProgression;
public class Main extends MovieClip
{
public var keyboardInput:keys
public var HeroSoul = new Soul();
public var bG = new bg();
public var character:Soul = new Soul();
public var BlackBlock = new blackBlock();
public var VioletBlock = new violetBlock();
private var speedX:int = 0;
private var speedY:int = 0;
private var lastX:Number;
private var lastY:Number;
private var speedConstant:int = 5;
private var friction:Number = 0.95;
private var heroSpawnX:int = 4;
private var heroSpawnY:int = 2;
private var heroX=heroSpawnX
private var heroY=heroSpawnY
private var BackX:Number;
private var BackY:Number;
private var mapWidth = 28;
private var mapHeight = 24;
private var tileSide = 50;
private var totalTiles = mapWidth * mapHeight;
private var level:Array;
public function Main()
{
addChild(bG);
creatingLevel();
addHero();
var keyboard_sprite = new Sprite;
addChild(keyboard_sprite);
keyboardInput = new keys(keyboard_sprite);
stage.addEventListener(Event.ENTER_FRAME, gameloop);
}
public function creatingLevel()
{
level = [
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
]
for (var i:int=0; i<mapHeight; i++)
{
for (var u:int=0; u<mapWidth; u++)
{
if(level[i][u] == 1)
{
VioletBlock = new violetBlock();
VioletBlock.x=tileSide*u;
VioletBlock.y=tileSide*i;
bG.addChild(VioletBlock);
}
if(level[i][u] == 0)
{
BlackBlock = new blackBlock();
BlackBlock.x=tileSide*u;
BlackBlock.y=tileSide*i;
bG.addChild(BlackBlock);
}
}
}
}
public function addHero()
{
addChild(character)
character.x=heroSpawnX * tileSide
character.y=heroSpawnY * tileSide
}
public function gameloop(e:Event)
{
if (keyboardInput.is_left())
{
speedX -= speedConstant;
if (character.hitTestObject(VioletBlock))
{
trace("hit");
}
}
if (keyboardInput.is_down())
{
speedY += speedConstant;
if (character.hitTestObject(VioletBlock))
{
trace("hit");
}
}
if (keyboardInput.is_right())
{
speedX += speedConstant;
if (character.hitTestObject(VioletBlock))
{
trace("hit");
}
}
if (keyboardInput.is_up())
{
speedY -= speedConstant;
if (character.hitTestObject(VioletBlock))
{
trace("hit");
}
}
speedX *= friction;
speedY *= friction;
bG.x -= speedX;
bG.y -= speedY;
speedX = lastX;
speedY = lastY;
}
}
}