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

Регистрация: Jan 2011
Сообщений: 247
Переделал весь код:
Код AS3:
package {
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
 
    public class Main extends Sprite {
 
        private var player:Player;
        private var inputArray:Array;
        private var drawing_area:Bitmap;
        private var trail_image:Shape;
		private var game:Boolean;
		private var checkA:Bitmap;
 
        public function Main() {
            initInput();
            initGame();  
        }        
        private function initInput() : void {            
            inputArray = new Array();
            for(var i:uint =0;i < 256; i++) {
                 inputArray.push(false);   
            }            
            stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
            stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
            this.addEventListener(Event.ENTER_FRAME, updateGame);
        }        
        public function onKeyDown(e:KeyboardEvent) : void {
            inputArray[e.keyCode] = true;  			
        }
        public  function onKeyUp(e:KeyboardEvent) : void {
            inputArray[e.keyCode] = false;   			
        }        
        public  function updateGame(e:Event) : void {
 
            if(inputArray[37]) {
                   player.rotation -= 3;
            }
            if(inputArray[39]) {
                   player.rotation += 3;
            }      
 
			if( game = true  ) {
				player.move();
                player.speed = Math.abs(player.speed);
				trail_image.x = player.x;
                trail_image.y = player.y;
                drawing_area.bitmapData.draw(trail_image, trail_image.transform.matrix);
			}
			if (checkHit() == true){
				trace('Готово');
            }
		}
        private function initGame() : void {            
 
            player = new Player();
            player.speed = 2;
            drawing_area = new Bitmap(new BitmapData(400, 400, false));
			checkA = new Bitmap();
            addChild(drawing_area);
 
            trail_image = new Shape();
            trail_image.graphics.beginFill(0x00FF00);
            trail_image.graphics.drawCircle(0, 0, 2);
            trail_image.graphics.endFill();
 
            player.x = 400/2;
            player.y = 400/2; 
        }
		private function checkHit():Boolean {
			var check:Boolean;
			check = trail_image.hitTestPoint(player.x, player.y, true);
                if (check == true) {
					trace(check);
                    return true;
                }
			return false;
		}
    }
}
На одну проблему меньше, но вторая так и осталась =)
Посмотрите на мой hitTestPoint в конце исходника, не могу понять почему не реагирует на "след"...