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

Вернуться   Форум Flasher.ru > Блоги > Основные моменты разработки приложений

Рейтинг: 3.00. Голосов: 2.

Мои искания в создании флеш-стратегии (Часть 2. Конец)

Запись от EndoCrinologist размещена 27.10.2011 в 11:44
Обновил(-а) EndoCrinologist 28.10.2011 в 09:40

Продолжаем работу (список предыдущих частей Вы можете просмотреть в конце статьи). Теперь мы научимся дублировать наши сооружения, чтобы они оставались и на панели сооружений, и на основном поле. Работы с железом не будет. Нам нужно будет только немного поработать с кодом, а точнее с условием if ((trux == true)&&(truy == true)){} функции obj1.onRelease = function():Void{}.

1) Открываем нашу игру (если уже открыта - это замечательно).
2) Полностью измените код кадра на следующий (появление новых элементов кода объясняется внутри):
Код AS1/AS2:
function initGame(){
	obj = 1; // счетчик наших мувиков на поле
	allMoney = 1000;
	allBuilds = 0;
	bordx = 60;
	bordy = 100;
	newx = 0;
	newy = 0;
	dx = 0;
	dy = 0;
	sw = Stage.width;
	sh = Stage.height;
	oldx = obj1._x;
	oldy = obj1._y;
	o1w = obj1._width;
	o1h = obj1._height;
}
initGame();
 
obj1.onPress = function():Void{
	this.startDrag(true);
}
 
obj1.onRelease = function():Void{
	pay = 100;
	newx = obj1._x;
	newy = obj1._y;
	dx = sw - newx;
	dy = sh - newy;
	numx = o1w / 2 + bordx;
	numy = o1h / 2 + bordy;
 
	if (dx >= numx){
		trux = true;
	} else {
		trux = false;
	}
 
	if (dy >= numy){
		truy = true;
	} else {
		truy = false;
	}
 
	if ((trux == true)&&(truy == true)){
		if (allMoney >= pay){ // это условие мы вставили вначале, чтобы проверить, если есть деньги, то осуществить код
			this.stopDrag();
			allBuilds++;
			allMoney -= pay;
			obj++; // увеличиваем количество объектов
			duplicateMovieClip("obj1", "obj"+obj, getNextHighestDepth()); // дублирование мувика
			eval("obj"+obj)._x = newx; // присваиваем новому мувику новую координату Х
			eval("obj"+obj)._y = newy; // присваиваем новому мувику новую координату У
			eval("obj"+obj).play(); // запускаем проигрывание (строительство)
			obj1._x = oldx; // а копированный мувик возвращаем на место
			obj1._y = oldy;
			info.text = "Здание куплено за " + pay + " кредитов";
		} else { //.. если же нет - здание строиться не может
			info.text = "Не хватает денег";
			this._x = oldx;
			this._y = oldy;
			this.stopDrag();
		}
	} else {
		this._x = oldx;
		this._y = oldy;
		this.stopDrag();
	}
}
Вот, собственно, и всё. Мы закончили наше дублирование. При проверке ролика всё функционирует нормально. В следующей части мы рассмотрим, как осуществить привязку сооружения к сетке и научимся сортировать расположение объектов по их глубине на сцене, чтобы произошло нормальное их перекрывание.

Спасибо за внимание
Всего комментариев 0

Комментарии

 

 


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


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