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

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

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

Регистрация: Mar 2006
Сообщений: 7
По умолчанию Игра для ребенка. Помогите, пожалуйста

Хочу сделать простую игрушку для дочки, суть в следующем. Есть печка-символ и есть продукты мувики. Нужно перетащить на печку определенные продукты и тогда переход на следующий кадр с готовым к примеру тортом, я знаю как сделать простое пересечение двух символов, а не пойму как сделать так чтоб символ пересекался с несколькими и тогда только происходило действие. Подскажите пожалуйста.

Старый 25.02.2011, 22:08
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Если не получится вот так, то привидите код и расскажите подробнее про количество перетаскиваемых объектов и их необходимые сочетания, постараемся помочь.

Код AS1/AS2:
if( myDraggedObject.hitTest( someOtherObject ) && myDraggedObject.hitTest( oneMoreObject ) ){
    // myDraggedObject пересекся с someOtherObject и oneMoreObject
}
myDraggedObject, someOtherObject и oneMoreObject - это instance name`ы у мувиклипов на сцене.
__________________
hauts.ru

Старый 25.02.2011, 22:09
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 3  
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
попробуйте задать нечто вроде переменных-рецептов.то есть:
Код AS1/AS2:
var cur_meal:String="";//переменная в которой вы можете хранить то что сейчас готовится
//..допустим при пересечении масла с печкой
cur_meal+="maslo";
//после пересечения с картошкой
cur_meal+="kartoshka";
//потом при нажатии кнопки "готовки"
if(cur_meal=="maslokartoshka" || cur_meal=="kartoshkamaslo") {
//переход на кадр с жареной картошкой
}
как-то так..
этот подход еще удобен тем,что можно регулировать очередность добавления сырья в печку)
возможно это попроще чем предлагает Hauts
__________________
Незнание правил освобождает от ответственности.


Последний раз редактировалось temofony; 25.02.2011 в 22:11.
Старый 25.02.2011, 22:19
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
На самом деле реализация кода упирается в два ключевых вопроса: количество инградиентов для создания нового блюда (переход на новый кадр) и критичность последовательности "смешивания".

temofony, это зло:

Код AS1/AS2:
if(cur_meal=="maslokartoshka" || cur_meal=="kartoshkamaslo") {
//переход на кадр с жареной картошкой
}


Что, если 4 инградиента будет? Или 10?

Думаю, что правильнее было бы так:

Любой объект, который можно перетащить, когда его отпускают над печкой, запускает функцию addMe со своим типом (например "potato"), и этот тип записывается в массив текущих инградиентов. Ну и тут же сравнивается с массивом необходимых для блюда инградиентов. Сравнивать проще всего так — сортируем массив с текущими элементами по алфавиту и сравниваем строки после Array.join("") для обоих массивов.

Понимаете, про что я?

Код AS1/AS2:
var currentMeat = [];
var needMeat = ["apple", "babanas", "citrus"];
 
function addMe(type:String, preventMultiply:Boolean) {
	if (preventMultiply == undefined) {
		preventMultiply = true;
	}
	if (preventMultiply) {
		if (needMeat.join("").indexOf(type)>-1) {
			return;
		}
	}
	currentMeat.push(type);
	testMeatComplete();
}
 
function testMeatComplete() {
	if (currentMeat.sort().join("") == needMeat.join("")) {
		// Блюдо готово
	} else {
		// Блюдо не готово
	}
}
__________________
hauts.ru


Последний раз редактировалось Hauts; 25.02.2011 в 22:28.
Старый 25.02.2011, 22:29
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 5  
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
да,конечно если ингридиентов много,то количество вариаций для проверки будет огого каким.Но из этой проблемы можно выйти не замарав перчаток-каждое блюдо должно готовится с определенной последовательностью элементов(ведь так и в реальной жизни,не так ли?).А через массивы контролировать "правильность" готовки готового произведения кулинарного искусства будет на порядок сложнее.(можно еще реализовать кадр с эдакой пригоревшей бурой кашицей при не true приготовлении )
__________________
Незнание правил освобождает от ответственности.

Старый 25.02.2011, 23:11
gantik вне форума Посмотреть профиль Отправить личное сообщение для gantik Найти все сообщения от gantik
  № 6  
gantik

Регистрация: Mar 2006
Сообщений: 7
Спасибо большое, что ответили. Да мне простой вариант, во вложении пример. Там на символ нужно перетащить символы по списку и в результате переход на следующий кадр.
Вложения
Тип файла: rar slonjara.rar (39.2 Кб, 29 просмотров)

Старый 26.02.2011, 10:24
gantik вне форума Посмотреть профиль Отправить личное сообщение для gantik Найти все сообщения от gantik
  № 7  
gantik

Регистрация: Mar 2006
Сообщений: 7
По умолчанию Спасибо

Спасибо, разобралась, все получилось :-)

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

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

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


 


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


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