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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.11.2005, 16:20
Fr@ddy вне форума Посмотреть профиль Отправить личное сообщение для Fr@ddy Найти все сообщения от Fr@ddy
  № 11  
Ответить с цитированием
Fr@ddy
 
Аватар для Fr@ddy

Регистрация: Jul 2005
Сообщений: 283
Цитата:
Сообщение от Буньков Максим
Попробуй так:
Код HTML:
for (n=1; n<6; n++) {
if (itemSlot1.hitTest(obj1)) 
{
        statysSlot1=1;
        [b]break;[/b]
}else{
        statysSlot1=0;
}
}
ps вдруг пропрет...
Так-то попрет. Но тут-то один объект. А их может 20 или 50, вот представь, какой код писать надо...

Старый 06.11.2005, 18:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если бы делал я то, состояние ячейки хранил бы массиве.
Пустая ячейка - значение 0, заполнил - 1. Убрал, снова 0.
И проходил бы по массиву в поисках первой свободной ячейки.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 06.11.2005, 19:25
Fr@ddy вне форума Посмотреть профиль Отправить личное сообщение для Fr@ddy Найти все сообщения от Fr@ddy
  № 13  
Ответить с цитированием
Fr@ddy
 
Аватар для Fr@ddy

Регистрация: Jul 2005
Сообщений: 283
Цитата:
Сообщение от iNils
Если бы делал я то, состояние ячейки хранил бы массиве.
Пустая ячейка - значение 0, заполнил - 1. Убрал, снова 0.
И проходил бы по массиву в поисках первой свободной ячейки.
Спасибо! Щас буду пробовать.

Старый 09.11.2005, 07:36
Буньков Максим вне форума Посмотреть профиль Отправить личное сообщение для Буньков Максим Посетить домашнюю страницу Буньков Максим Найти все сообщения от Буньков Максим
  № 14  
Ответить с цитированием
Буньков Максим
[+1 02.06.2006]
[+1.4 01.04.2006]
[+1 01.07.2006]
 
Аватар для Буньков Максим

Регистрация: Feb 2003
Адрес: Екатеринбург
Сообщений: 848
Отправить сообщение для Буньков Максим с помощью ICQ
Цитата:
Сообщение от iNils
Если бы делал я то, состояние ячейки хранил бы массиве.
Пустая ячейка - значение 0, заполнил - 1. Убрал, снова 0.
И проходил бы по массиву в поисках первой свободной ячейки.
да тоды это, я тоже думаю самый рациональный способ... я то думал тебе нафиг не надо другие ячейки проверять если уже одна не сошлась.
__________________
С уважением, Maksi.

Старый 09.11.2005, 15:21
Fr@ddy вне форума Посмотреть профиль Отправить личное сообщение для Fr@ddy Найти все сообщения от Fr@ddy
  № 15  
Ответить с цитированием
Fr@ddy
 
Аватар для Fr@ddy

Регистрация: Jul 2005
Сообщений: 283
Ну вот, облом...
Массив сделал, получилась та же проблема, как ты сможешь проверить, не касается-ли ячейка с одним из 5-ти предметов?
И скажите, iNils, пожайлуста, какая функция проверяет, точнее, при промощи какой функции, ты бы искал первую попавшуюся свободную ячейку в массиве?

Старый 09.11.2005, 16:09
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 16  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Если ячеек немного (в пределах разрядности) то быстрее всего использовать двоичные флаги.
Имеем:
//константы, есть степени двойки
cell1 = 1;
cell2 = 2;
cell3 = 4;
cell4 = 8;
cell5 = 16;
//строго говоря, max(cell)*2 - 1;
chksum = 1+2+4+8+16;
//начальное состояние рюкзака:
items = 0;
//Проверка наличия свободной (хотя бы одной) ячейки :
if (chksum ^ items != 0) {trace('есть места');}
//добавление вещи, чуть сложнее...
items += Math.pow(2, Math.floor(Math.log(chksum ^ mas) / Math.LN2));
//тут Math.pow(2, Math.floor(Math.log(chksum ^ mas) / Math.LN2)) - это "вес" итема, а Math.floor(Math.log(chksum ^ mas) / Math.LN2) - номер ячейки, в которую его поместили.

Величина chksum^mas = 0 при полном рюкзаке, поэтому теоретически логарифм должен дать ошибку, но выдает он минус бесконечность во флэше, поэтому pow(2, логарифм) выдает 0 при полностью заполненном рюкзаке.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.


Последний раз редактировалось Skubent; 09.11.2005 в 16:14.
Старый 11.11.2005, 19:37
Fr@ddy вне форума Посмотреть профиль Отправить личное сообщение для Fr@ddy Найти все сообщения от Fr@ddy
  № 17  
Ответить с цитированием
Fr@ddy
 
Аватар для Fr@ddy

Регистрация: Jul 2005
Сообщений: 283
Блин, спасибочки.
Но я в программировании не такой уж сильный...
Поясни, плиз, зачем константы в степени двойки задавать?

Старый 13.11.2005, 10:47
Fr@ddy вне форума Посмотреть профиль Отправить личное сообщение для Fr@ddy Найти все сообщения от Fr@ddy
  № 18  
Ответить с цитированием
Fr@ddy
 
Аватар для Fr@ddy

Регистрация: Jul 2005
Сообщений: 283
Видно Skubent, вне поля обозрения , может кто-нибудь, знает для чего степени двойки задавать?

Старый 13.11.2005, 21:30
Kyber Anton вне форума Посмотреть профиль Отправить личное сообщение для Kyber Anton Посетить домашнюю страницу Kyber Anton Найти все сообщения от Kyber Anton
  № 19  
Ответить с цитированием
Kyber Anton
 
Аватар для Kyber Anton

Регистрация: Oct 2005
Адрес: Воронеж-Москва
Сообщений: 671
Отправить сообщение для Kyber Anton с помощью ICQ
В чём проблема?
for (var j = 1; j<MaxSlot; ++j) {
_root["statysSlot"+j] = 0;
for (n=1; n<6; n++) {
if (_root["itemSlot"+j].hitTest(_root["obj"+n])) {
_root["statysSlot"+j] = 1;
}
}
}
Maxslot - кол-во слотов.
__________________
(А)

Старый 13.11.2005, 21:34
Kyber Anton вне форума Посмотреть профиль Отправить личное сообщение для Kyber Anton Посетить домашнюю страницу Kyber Anton Найти все сообщения от Kyber Anton
  № 20  
Ответить с цитированием
Kyber Anton
 
Аватар для Kyber Anton

Регистрация: Oct 2005
Адрес: Воронеж-Москва
Сообщений: 671
Отправить сообщение для Kyber Anton с помощью ICQ
Вот исправленное файло.
Вложения
Тип файла: rar flashRE.rar (5.2 Кб, 38 просмотров)
__________________
(А)

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

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

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


 


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


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