I'm creating simple flash game, I just made character controls (move left, right and jump). When I add gravity my character falling down from the stage.
I have painted floor, imported to library, but I don't know how code should looks like.
My floor is called "Ground" I added AS Linkage "Ground".
For now my code looks like: (Note: my character is named "Hero")
public class Script extends MovieClip{ // start the script
private const gravity:int = 1;
private const max_speed:int = 8;
private const walkspeed:int = 4;
private const jumpspeed:int = 10;
private var forecast_x:int;
private var forecast_y:int;
private const start_x:int = 50;
private const start_y:int = 50;
private var left:Boolean;
private var up:Boolean;
private var right:Boolean;
private var space:Boolean;
private var level:Array = new Array();
private var Map_data:Data = new Data; // create a version of the Data.as
private var Hero_col:collision_manager = new collision_manager;
private var Hero:hero = new hero;
public function Script(){ // the init (will only be runned once)
//BuildMap();
create_hero();
addEventListener(Event.ENTER_FRAME, main);
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
Hero_col.Setup(25,level,Hero);
}
private function main(event:Event){
update_hero();
}
private function key_down(event:KeyboardEvent){
if(event.keyCode == 37){
left = true;
}
if(event.keyCode == 38){
up = true;
}
if(event.keyCode == 39){
right = true;
}
}
private function key_up(event:KeyboardEvent){
if(event.keyCode == 37){
left = false;
}
if(event.keyCode == 38){
up = false;
}
if(event.keyCode == 39){
right = false;
}
}
private function create_hero(){
addChild(Hero);
Hero.x = start_x;
Hero.y = start_y;
Hero.x_speed = 0;
Hero.y_speed = 0;
}
private function setDirection(param) {
if (param == 0) {
Hero.scaleX = 1;
} else {
Hero.scaleX = -1;
}
}
private function update_hero(){
Hero.y_speed += gravity;
if(left){
Hero.x_speed = -walkspeed;
setDirection(1);
}
if(right){
Hero.x_speed = walkspeed;
setDirection(0);
}
if(up && Hero_col.can_jump){
Hero.y_speed = -jumpspeed;
}
if(Hero.y_speed > max_speed){
Hero.y_speed = max_speed;
}
forecast_y = Hero.y + Hero.y_speed;
forecast_x = Hero.x + Hero.x_speed;
Hero_col.solve_all(forecast_x, forecast_y);
Hero.x_speed = 0;
}
Thank you for help.
stageHeight
andhero.y
. – null.point3rif (Hero.y == 150){ Hero.y_speed = 0; }
but now I can't Jump when It's on the floor – user1816133