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

Регистрация: Jan 2014
Сообщений: 181
Отправить сообщение для zackscript с помощью Skype™
Вот код
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.events.TouchEvent;
	import flash.events.Event;
	import flash.ui.Multitouch;
	import flash.ui.MultitouchInputMode;
	import flash.desktop.NativeApplication;
	public class Tank extends MovieClip
	{
		private var Speed:Number = 4;
		private var _left:Boolean = false;
		private var _right:Boolean = false;
		private var _up:Boolean = false;
		private var _down:Boolean = false;
		private var platforms:Array = new Array  ;
		private var platform;
		public function Tank()
		{
			Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
			tank.stop();
			//----------------------------------------------------------------------------------------------//
			left.addEventListener(TouchEvent.TOUCH_BEGIN,leftTrue);
			right.addEventListener(TouchEvent.TOUCH_BEGIN,rightTrue);
			up.addEventListener(TouchEvent.TOUCH_BEGIN,upTrue);
			down.addEventListener(TouchEvent.TOUCH_BEGIN,downTrue);
			//----------------------------------------------------------------------------------------------//
			left.addEventListener(TouchEvent.TOUCH_END,leftFalse);
			right.addEventListener(TouchEvent.TOUCH_END,rightFalse);
			up.addEventListener(TouchEvent.TOUCH_END,upFalse);
			down.addEventListener(TouchEvent.TOUCH_END,downFalse);
			//----------------------------------------------------------------------------------------------//
			left.addEventListener(TouchEvent.TOUCH_OUT,leftOut);
			right.addEventListener(TouchEvent.TOUCH_OUT,rightOut);
			up.addEventListener(TouchEvent.TOUCH_OUT,upOut);
			down.addEventListener(TouchEvent.TOUCH_OUT,downOut);
			//----------------------------------------------------------------------------------------------//
			stage.addEventListener(Event.ENTER_FRAME,moveTank);
			for (var i:int = 0; i < map.numChildren; i++)
			{
				platforms.push(map.getChildAt(i));
			}
		}
		public function leftTrue(e:TouchEvent)
		{
			_left = true;
			tank.gotoAndStop("left");
		}
		public function rightTrue(e:TouchEvent)
		{
			_right = true;
			tank.gotoAndStop("right");
		}
		public function upTrue(e:TouchEvent)
		{
			_up = true;
			tank.gotoAndStop("up");
		}
		public function downTrue(e:TouchEvent)
		{
			_down = true;
			tank.gotoAndStop("down");
		}
		//----------------------------------------------------------------------------------------------//
		public function leftFalse(e:TouchEvent)
		{
			_left = false;
		}
		public function rightFalse(e:TouchEvent)
		{
			_right = false;
		}
		public function upFalse(e:TouchEvent)
		{
			_up = false;
		}
		public function downFalse(e:TouchEvent)
		{
			_down = false;
		}
		//----------------------------------------------------------------------------------------------//
		public function leftOut(e:TouchEvent)
		{
			_left = false;
		}
		public function rightOut(e:TouchEvent)
		{
			_right = false;
		}
		public function upOut(e:TouchEvent)
		{
			_up = false;
		}
		public function downOut(e:TouchEvent)
		{
			_down = false;
		}
		//----------------------------------------------------------------------------------------------//
		public function moveTank(e:Event)
		{
			if (_left)
			{
				tank.x -=  Speed;
			}
			if (_right)
			{
				tank.x +=  Speed;
			}
			if (_up)
			{
				tank.y -=  Speed;
			}
			if (_down)
			{
				tank.y +=  Speed;
			}
			detection(tank);
		}
		public function detection(_tank)
		{
			//перебираем все платформы и проверяем пересечение с персонажем
			for (var p:int = 0; p < platforms.length; p++)
			{
				platform = platforms[p];
 
				if (_tank.left.hitTestObject(platform))
				{
					_left = false;
				}
				if (_tank.right.hitTestObject(platform))
				{
					_right = false;
				}
				if (_tank.up.hitTestObject(platform))
				{
					_up = false;
				}
				if (_tank.down.hitTestObject(platform))
				{
					_down = false;
				}
			}
		}
	}
}