Показать сообщение отдельно
Старый 13.10.2010, 22:23
drnet_ua вне форума Посмотреть профиль Отправить личное сообщение для drnet_ua Найти все сообщения от drnet_ua
  № 19  
Ответить с цитированием
drnet_ua
 
Аватар для drnet_ua

Регистрация: Jul 2010
Адрес: 50° 27′ 0″ N, 30° 30′ 0″ E
Сообщений: 256
Записей в блоге: 2
гыыы

Код AS3:
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
 
    /**
     * ...
     * @author 1
     */
    public class Main extends Sprite 
    {
        private var tank:Sprite;
 
        private var dx:Number;
        private var dy:Number;
 
 
        private function CreateTank():void {
            tank = new Sprite();
 
            tank.graphics.beginFill(0x800000);
            tank.graphics.drawRoundRect( -15, -20, 30, 40, 5);
 
            tank.graphics.beginFill(0x999999);
            tank.graphics.drawRect( -3, -25, 6, 25);
 
            tank.graphics.beginFill(0xbbbbbb);
            tank.graphics.drawRect( -5, -30, 10, 7);
 
            tank.graphics.beginFill(0xFF0000);
            tank.graphics.drawCircle(0, 0, 10);
            tank.graphics.endFill();
            stage.addChild(tank);
            tank.x = stage.stageWidth / 2;
            tank.y = stage.stageHeight / 2;
        }
 
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
            CreateTank();
            dx = 0;
            dy = 0;
            stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPressed);
            stage.addEventListener(KeyboardEvent.KEY_UP, KeyDePressed);
            stage.addEventListener(Event.ENTER_FRAME, TankMove)
 
        }
 
        private function TankMove(e:Event):void {
 
 
            if (dx == 0 && dy == -1) { tank.rotation = 0 };
            if (dx == 1 && dy == -1) { tank.rotation = 45 };
            if (dx == 1 && dy == 0) { tank.rotation = 90 };
            if (dx == 1 && dy == 1) { tank.rotation = 135 };
            if (dx == 0 && dy == 1) { tank.rotation = 180 };
            if (dx == -1 && dy == 1) { tank.rotation = 225 };
            if (dx == -1 && dy == 0) { tank.rotation = 270 };
            if (dx == -1 && dy == -1) { tank.rotation = 315 };                        
 
 
            var c:Number = 5;
 
            if (dx != 0 && dy != 0) {
                c = Math.sqrt(c * c + c * c) / 2;
            }
 
            tank.x += dx * c;
            tank.y += dy * c;
 
            if (tank.x < 0) { tank.x += stage.stageWidth; }
            if (tank.y < 0) { tank.y += stage.stageHeight; }
            if (tank.x > stage.stageWidth) { tank.x -= stage.stageWidth; }
            if (tank.y > stage.stageHeight) { tank.y -= stage.stageHeight; }
 
        }
 
        private function KeyPressed(e:KeyboardEvent):void {
            var keyCode:Number = e.keyCode;
 
            if (keyCode == 39 || keyCode == 68) {
                dx = 1;
            }
 
            if (keyCode == 37 || keyCode == 65) {
                dx = -1;
            }
 
            if (keyCode == 38 || keyCode == 87) {
                dy = -1;
            }
 
            if (keyCode == 40 || keyCode == 83) {
                dy = 1;
            }
        }
 
        private function KeyDePressed(e:KeyboardEvent):void {
            var keyCode:Number = e.keyCode;
 
            if (keyCode == 39 || keyCode == 68) {
                dx = 0;
            }
 
            if (keyCode == 37 || keyCode == 65) {
                dx = 0;
            }
 
            if (keyCode == 38 || keyCode == 87) {
                dy = 0;
            }
 
            if (keyCode == 40 || keyCode == 83) {
                dy = 0;
            }
        }
 
    }
 
}
Вложения
Тип файла: swf tankmove.swf (1.8 Кб, 38 просмотров)