Показать сообщение отдельно
Старый 06.06.2014, 14:57
Sergey_A вне форума Посмотреть профиль Отправить личное сообщение для Sergey_A Найти все сообщения от Sergey_A
  № 6  
Ответить с цитированием
Sergey_A

Регистрация: Jun 2010
Сообщений: 128
Во первых, вы используете крайне устаревший и глючный синтаксис. К тому же, я вообще не понял, чего вы хотите добиться приведенным кусочком кода.

Вот простой пример реализации (весь код пишется в первом кадре временной шкалы, на сцене - два мувика - ground - земля, и hero - персонаж):
Код AS1/AS2:
var jamp_force = 15;
var gravity = 1;
var koef_povorot = -1;
var timer_pryg;
var jamp_force_real = jamp_force;
var is_pryzhok = false;
 
function povorot() {
	hero._rotation+=180;
	hero._y+=ground._height * koef_povorot;
}
 
function pryzhok() {
	hero._y+=jamp_force_real * koef_povorot;
	jamp_force_real-=gravity;
	if(hero.hitTest(ground)) {
		clearInterval(timer_pryg);
		jamp_force_real = jamp_force;
		is_pryzhok = !is_pryzhok;
		}
}
 
var keyListener:Object = new Object();
 
keyListener.onKeyDown = function() {
  if ((Key.isDown(Key.DOWN)) and (koef_povorot!=1)){
	  	koef_povorot = 1;
		povorot();
	}
  if ((Key.isDown(Key.UP)) and (koef_povorot!=-1)) {
	  	koef_povorot = -1;
		povorot();
	}
  if ((Key.isDown(Key.SPACE)) and (!is_pryzhok)){
	  timer_pryg = setInterval(pryzhok,20);
	  is_pryzhok = !is_pryzhok;
	  }
}
Key.addListener(keyListener);
Поворот выполняется по нажатию стрелок "вверх" и "вниз", прыжок - кнопкой пробела, причем в любом положении. Защиту от дурака - типа прыжка с одновременным поворотом - придумайте сами.
И вместо строки (повернуть на 180 градусов):
Код AS1/AS2:
hero._rotation+=180;
можно написать (отразить сверху вниз):
Код AS1/AS2:
hero._yscale*=-1;
- зависит от того, что именно вам нужно.
povorot.swf   (1.1 Кб)
Вложения
Тип файла: swf povorot.swf (1.1 Кб, 89 просмотров)


Последний раз редактировалось Sergey_A; 06.06.2014 в 15:27.