Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.04.2011, 01:06
Andrej вне форума Посмотреть профиль Отправить личное сообщение для Andrej Найти все сообщения от Andrej
  № 1  
Ответить с цитированием
Andrej

Регистрация: Sep 2010
Сообщений: 49
По умолчанию Из AS 2 в AS3 прошу помощи.

Доброго времени суток дорогие форумчане.Дело в том ,что AS 2 я не знаю,сразу учил с AS3.По одному примеру в интернете я решил попробовать сделать игру,но пример написан на AS2.В принципе все переделал как с мог.Но возникла такая проблема.До этого я использовал hitTestObject одного мувика с другим,например :
Код AS3:
if (klip1.hitTestObject(klip2)) {то......}
В принципе и тут я переделал,но это очень километрово писать код для каждого блока.А в примере автор использует массив с которого передает данные как я понял.Вобщем я с таким пока не сталкивался прошу помощи.Теперь по порядку.У нас есть герой (hero),он прыгает бегает и так далее, с этим ясно.Далее мы содаем блоки для него.Автор примера создает прямоугольник,все блоки в нем, а в кадре прямоугольника пишет _parent.addBox(this);.Далее такой код AS2:
Код AS1/AS2:
//половина ширины персонажа
var hhx = (hero.p1._x - hero.p3._x + hero.p1._width / 2 + hero.p3._width / 2) / 2;
//половина высоты персонажа
var hhy = (hero.p2._y - hero.p4._y + hero.p2._height / 2 + hero.p4._height / 2) / 2;
//массив с платформами
var boxes = [];
//каждая платформа при старте вызывает эту функцию и передаёт себя как параметр
addBox = function (obj) {
	boxes.push(obj);
}
 
checkHitPlatform = function(){
	//перебираем все платформы и проверяем пересечение с персонажем с учётом того,
	//в какую сторону он смотрит
	var i = boxes.length;
	while (i--) {
		var curB = boxes[i];
		if (curB.hitTest(hero.p1)) {
			//контакт справа
			if (hero._xscale > 0) {
				hero._x = curB._x - curB._width / 2 - hhx;
			} else {
				hero._x = curB._x + curB._width / 2 + hhx;
			}
		} else if (curB.hitTest(hero.p2)) {
			//контакт снизу
			jump = false;
			speedY = 0;
			hero._y = curB._y - curB._height / 2 - hhy;
		} else if (curB.hitTest(hero.p3)) {
			//контакт слева
			if (hero._xscale > 0) {
				hero._x = curB._x + curB._width / 2 + hhx;
			} else {
				hero._x = curB._x - curB._width / 2 - hhx;
			}
		} else if (curB.hitTest(hero.p4)) {
			//контакт сверху
			speedY = 0; // как вариант: speedY *= -1;
			hero._y = curB._y + curB._height / 2 + hhy;
		}
	}
}
Как в AS3 передать данные из этого прямоугольника.Спасибо.С уважением Андрей.

Создать новую тему   Часовой пояс GMT +4, время: 16:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.