2013-03-31 5 views
0

im пытаюсь сделать игру в телепорте, и мой персонаж должен иметь некоторую скорость и силу тяжести, кто-нибудь знает, какие суммы мне нужно уметь это усвоить?Как получить скорость для моего персонажа в as3

Это мой код до сих пор:

var char = this.addChild(new Char()); 
char.width = 20; 
char.height = 20; 
char.x = startPos.x; //startPos is an invisible movieclip that I can move around to  make the starting position 
char.y = startPos.y;  // accurate 
var vx:Number = 0; 
var vt:Number = 0; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyDownHandler (e:KeyboardEvent):void { 
    switch (e.keyCode) { 
     case Keyboard.UP: 
     char.y = char.y - 5 
    } 
} 
+0

Это не поможет с вашим вопросом, но это всего лишь предложение: вы можете сделать 'startPos'' Point' вместо 'MovieClip'. Он имеет свойства 'x' и' y', поэтому вы все равно можете использовать его так же, как обычно, но это проще и может немного улучшить производительность (поскольку Flash Player не должен беспокоиться о том, нужно ли его рисовать или нет). – puggsoy

+0

Перейдите на [flashAndMath.com] (http://www.flashandmath.com) и ознакомьтесь с учебниками. У них есть те, что есть на этом и всевозможные другие вещи, которые вам нужно знать, чтобы строить игры. –

ответ

1

Если символ нужно только идти вверх, то следующий код будет делать эту работу.

Но если это необходимо для перемещения по всему направлению, то требуется расширенный код. Moving Character in all directions.

Это быстрое решение вашей потребности.

var gravity:Number = 2; 

var velocity:Number = 1.1; 

var move:Boolean = false; 

function moveChar(e:Event):void 
{ 
    if(move) 
    { 
     gravity *= velocity; 
     char.y -= gravity; // move char 
    } 
} 
char.addEventListener(Event.ENTER_FRAME, moveChar, false, 0, true); 


//Keyboard events 
function keyDownHandler (e:KeyboardEvent):void 
{ 
    switch (e.keyCode) 
    { 
     case Keyboard.UP: 
     move = true; 
    } 
} 
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyUpHandler (e:KeyboardEvent):void 
{ 
    move = false; 
    gravity = 2; 
} 
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); 
+0

Мне нужно заставить его двигаться во всех направлениях, а также вы можете замедлить его, как только ключ будет выпущен? – sam

+0

@ samtheman999 Я добавил ссылку в свой ответ. Пожалуйста, обратитесь к нему. –

+0

omg Большое вам спасибо за вашу помощь, это было именно то, что мне нужно! Еще раз спасибо! – sam

Смежные вопросы