Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » последовательность выполнения команд
последовательность выполнения команд
OnideoДата: Понедельник, 16 Мая 2011, 14:55 | Сообщение # 1
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
допустим мне нужно выполнить следующее действие
юзер нажимает на разные кнопки в любой последовательности
но только если он нажмёт на все кнопки должна будет выполнится определённая команда
как это должно выглядеть на простом примере
так или как то по другому?
If (Show Text, Show Text2, Show Text3) Then
i=1
Next page
Else
End


 
YURIYДата: Понедельник, 16 Мая 2011, 15:21 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Onideo, дубль два: Вы пробовали синтаксис условного оператора в справке посмотреть? Уроки ещё есть в верхнем меню. Поинтересуйтесь, будьте так любезны.

Начните с основ. Глядя на код, который Вы указали, делается вывод, что изучением команд заниматься было лень.



Вечная память Андрею Сергееву!
 
OnideoДата: Понедельник, 16 Мая 2011, 15:46 | Сообщение # 3
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (YURIY)
Начните с основ. Глядя на код, который Вы указали, делается вывод, что изучением команд заниматься было лень.

почитал я урок "Условный оператор и циклы"
и он меня ещё более запутал %)
Не могли бы вы Юрий написать наглядный пример по моей задаче
я так лучше пойму что к чему

Добавлено (16 Май 2011, 15:46)
---------------------------------------------
все кто может помочь помогите - заранее спасибо!


 
DEMBELДата: Понедельник, 16 Мая 2011, 16:22 | Сообщение # 4
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Onideo)
юзер нажимает на разные кнопки в любой последовательности

при нажатии на кнопку ставишь флаг, что кнопка была нажата.
потом считаешь флаги, если они = кол-ву кнопок то все нажаты.

если с логикой туговато, лучше сразу завязывайте...

Прикрепления: num.zip (0.8 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
YURIYДата: Понедельник, 16 Мая 2011, 16:24 | Сообщение # 5
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Onideo)
и он меня ещё более запутал

Практикуйтесь. Придётся разбираться! Если Вас этот этап запутал, а это самое простое, что будет дальше?

Quote (Onideo)
Не могли бы вы Юрий написать наглядный пример по моей задаче

Могу без проблем, да только польза какая? Вы перейдёте к следующему пункту своих работ, а делать также я буду за Вас?

Объясню логику. Программировать уже придётся Вам, иначе даже не занимайтесь этим, если не хотите и/или не получается.

Есть несколько кнопок. Я так понимаю, их количество неизменно и их не очень много? В каждую на событие клика пропишите свою переменную и присваивайте ей единицу. Следом (всё также у каждой кнопки!) пусть идёт условие: если эта переменная равна единице и каждая другая из всех кнопок, то выполняем нужное действие.

Это самый простой для понимания алгоритм. Реализуйте его.



Вечная память Андрею Сергееву!
 
OnideoДата: Понедельник, 16 Мая 2011, 16:25 | Сообщение # 6
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
я уже просил не относящиеся к теме вопросы писать отдельно - Yuriy

 
YURIYДата: Понедельник, 16 Мая 2011, 16:27 | Сообщение # 7
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
DEMBEL, опять зря ты это сделал. Ты не учишь людей, а делаешь за них. Толку - 0.


Вечная память Андрею Сергееву!
 
DEMBELДата: Понедельник, 16 Мая 2011, 16:28 | Сообщение # 8
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
право первой брачной ночи, первый ответ бесплатно ) все, я ухожу...

Добавлено (16 Май 2011, 16:28)
---------------------------------------------
Onideo, в след. раз думай что спрашиваешь ) потратил свое желание.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
YURIYДата: Понедельник, 16 Мая 2011, 16:29 | Сообщение # 9
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
lol

Ещё и издевается над человеком :)



Вечная память Андрею Сергееву!
 
OnideoДата: Понедельник, 16 Мая 2011, 16:52 | Сообщение # 10
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (YURIY)
Могу без проблем, да только польза какая? Вы перейдёте к следующему пункту своих работ, а делать также я буду за Вас?

я уже заметил что на примерах которые мне предоставляли и Yuriy и DEMBEL
я всё хорошо усваиваю и прогрессирую
это как в школе - я хорошо понимаю когда мне объясняет учитель
ежели я сам что-то самостоятельно пытаюсь допедрить
Помоги с этим примером Юрий, а в следующий раз просто не отвечай-
помогут другие!

Добавлено (16 Май 2011, 16:36)
---------------------------------------------

Quote (DEMBEL)
Прикрепления: num.zip(1Kb)

Супер! Спасибо!
Ну ведь этого не было в уроках!
Я бы до такого сам не додумался!

Добавлено (16 Май 2011, 16:52)
---------------------------------------------

Quote (DEMBEL)
все, я ухожу...

Подожди, не уходи! :)
А если это картинки или "горячие кнопки" - разницы нет?
всё делается по этой же схеме?

скрипт Counter
If (flag=8) Then
Message("","Все нажаты")
**сброс данных
flag=0
bpress1=0
bpress2=0
bpress3=0
bpress4=0
bpress5=0
bpress6=0
bpress7=0
bpress8=0
End

что такое flag? - в mmb нет такого действия
или flag подразумевает все активные действия???
это очень важно?
то есть не нужно в скрипте Counter писать названия меток?


 
DEMBELДата: Понедельник, 16 Мая 2011, 17:15 | Сообщение # 11
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Onideo)
А если это картинки или "горячие кнопки" - разницы нет?

нет разницы, какая может быть разница? во всех обьектах есть кнопка скрипт и вкладки действий, пиши там что хочешь
Quote (Onideo)
что такое flag

flag это обычная числовая переменная, ну написал бы я х=х+1 так понятнее
переменные могут быть разных типов - числовая (х=1), строковая(х$='1'), массивы(x[y]=1). Записываются по разному. конвертируются через VAL(x) и CHAR(х) в разл. типы.
Quote (Onideo)
то есть не нужно в скрипте Counter писать названия меток?

у тебя в каждом обьекте своя переменная bpress с номером, отвечающая за статус кнопки (была нажата или нет). смотрим не по именам обьектов а по bpress. хотя можно и по именам сделать, но сперва кнопки назвать по порядку. с bpress проще было.
Quote (Onideo)
или flag подразумевает все активные действия???

переменные общие для всего проекта. каждая кнопка добавляет к текущему значению flag единицу и запускает скрипт который проверяет, не равно ли уже flag=8, если равно значит все кнопки нажимались по разу.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
DEMBELДата: Понедельник, 16 Мая 2011, 17:20 | Сообщение # 12
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Onideo)
скрипт Counter

Quote (Onideo)
то есть не нужно в скрипте Counter писать названия меток?

бгг, открой свойства кнопок!
Quote (DEMBEL)
нет разницы, какая может быть разница? во всех обьектах есть кнопка скрипт и вкладки действий, пиши там что хочешь

вот тут прописаны действия по кнопкам

Прикрепления: 2608952.png (17.2 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Понедельник, 16 Мая 2011, 17:36 | Сообщение # 13
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
бгг, открой свойства кнопок!

Quote (DEMBEL)
вот тут прописаны действия по кнопкам

:) это я всё знаю давным-давно
тем не менее спасибо ещё раз за то, что чайника на любой стадии развития
не бросаешь в трудную минуту!
сейчас буду пробовать твой скрипт в деле
должно получится, надо привязать "горячие точки"
к выполнению одной команды после того как игрок нажмёт на них
в разных последовательностях


 
DEMBELДата: Понедельник, 16 Мая 2011, 17:48 | Сообщение # 14
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
последовательность тут не учитывается, flag возрастает независимо от порядка нажатия... если тебе нужно учесть именно строгие последовательности, то присваивать нужно не во флаг, а добавлять символы к строковой переменной, потом проверять ее как строку на соответствие заданной строке последовательности, например помимо flag прописать в каждой кнопке
posled$=posled$+'1'
posled$=posled$+'2'
...
posled$=posled$+'8'

в скрипте

if posled$='12345876' then...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Alex3AДата: Понедельник, 16 Мая 2011, 23:40 | Сообщение # 15
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Гаспада!
Флаг он и в африке флаг. :D
А применительно к програмированию, эт состояние бита, и для подобной задачи вполне подходят битовые операции.
в каждой кнопке
Code

кнопа1
rez=rez | 1
RunScript("Script")
------------------
кнопа2
rez=rez | 2
RunScript("Script")
-------------------
кнопа3
rez=rez | 4
RunScript("Script")
--------------------
кнопаN
rez=rez | два в степени номера кнопы
RunScript("Script")

Script проверка все ли нажаты
Code

If (rez=31) Then
   Message("Усе кнопы нажаты! ","rez")
End

31 эт на 5 кноп, 2 в 5 степени
обнулить поле бит просто - rez=0
Кнопа при нажатии устанавливает соответствующий бит числа в 1
количество кноп ограничены разрядностью числа. но ни кто не запрещает использовать сколь нуна чисел. :D
Дешево и сердито.
 
Alex3AДата: Понедельник, 16 Мая 2011, 23:45 | Сообщение # 16
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
прымер
Прикрепления: bits.rar (0.7 Kb)
 
DEMBELДата: Вторник, 17 Мая 2011, 00:01 | Сообщение # 17
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
во, это прям как надо показано ) хороший приемчик, как я не догадался я ж видел много где похожий принцип, ну чтож в теории слабоваты, все больше тупая практика, стену лбом прошибать... буду юзать везде, отличная шняга для контроля состояний нескольких параметров, причем и по ходу процесса...



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Вторник, 17 Мая 2011, 00:05 | Сообщение # 18
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
Прикрепления: bits.rar(1Kb)

Спасибо большое за наглядный пример!
Теперь у меня есть 2 образца с которых я буду учиться
как правильно подчинять объекты1


 
Alex3AДата: Вторник, 17 Мая 2011, 11:49 | Сообщение # 19
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Биты можно устанавливать, сбрасывать и проверять.
Так сказать, держать карту состояния.
 
OnideoДата: Воскресенье, 22 Мая 2011, 22:42 | Сообщение # 20
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (Onideo)
Теперь у меня есть 2 образца с которых я буду учиться как правильно подчинять объекты1

Quote (DEMBEL)
если тебе нужно учесть именно строгие последовательности, то присваивать нужно не во флаг, а добавлять символы к строковой переменной, потом проверять ее как строку на соответствие заданной строке последовательности, например помимо flag прописать в каждой кнопке posled$=posled$+'1' posled$=posled$+'2' ... posled$=posled$+'8' в скрипте if posled$='12345876' then...

и всё таки я выбрал версию "Дембеля", но что-то я запутался в скрипте
DEMBEL,
выдаёт ошибку Syntax Error в этом месте if posled$='12345876' then
мне нужно, чтобы была последовательность нажатия кнопок

Добавлено (22 Май 2011, 22:40)
---------------------------------------------
скрипт один на эти все эти команды?
тот же - Counter?

Добавлено (22 Май 2011, 22:42)
---------------------------------------------
:( %)


 
DEMBELДата: Воскресенье, 22 Мая 2011, 22:54 | Сообщение # 21
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
когда думать то начнем? в каждой кнопке при нажатии наращиваем переменную order прибавляя в конец номер кнопки. В скрипте по итогам проверяем order на соответствие заданному порядку.
Прикрепления: 9110825.zip (0.9 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Воскресенье, 22 Мая 2011, 23:05 | Сообщение # 22
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
когда думать то начнем?.

спасибо! thumbs_up
сейчас кое-что на основе этого примера организую в новой игре
DEMBEL,


 
DEMBELДата: Воскресенье, 22 Мая 2011, 23:07 | Сообщение # 23
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
я не калугин александр александрович бггг



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Воскресенье, 22 Мая 2011, 23:11 | Сообщение # 24
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
я не калугин александр александрович бггг

scared
у тебя украли ник!
Прикрепления: 6925221.png (397.0 Kb)


 
DEMBELДата: Воскресенье, 22 Мая 2011, 23:13 | Сообщение # 25
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
да фиг с ним, при случае легко докажу обратное. я уже лет 10 в сети с этим ником



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Понедельник, 13 Июня 2011, 15:22 | Сообщение # 26
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
DEMBEL,
в моей задаче 4 кнопки
чтобы сработал скрипт Counter мне нужно нажать сперва на кнопку 2 потом на кнопку 3

в обеих кнопках я прописал скрипты


кнопка 2
Code
If (bpress1=0) Then
   bpress1=1
   flag=flag+1
   order$=order$+'1'
   RunScript("Counter")
Else
End

кнопка 2
Code
If (bpress2=0) Then
   bpress2=1
   flag=flag+1
   order$=order$+'2'
   RunScript("Counter")
Else
End

и я создал скрипт Counter
Code
If (order$='12') Then
  Message("","Порядок правильный")
   Else
    End


Но если я нажимаю на кнопки в другой последовательности
сперва на кнопку 3 потом на кнопку 2
и затем нажимаю на кнопки в правильной последовательности
сперва на кнопку 2 потом на кнопку 3, то скрипт Counter не срабатывает
Он срабатывает если нажать единожды сперва на кнопку 2 потом на кнопку 3
А мне нужно чтобы скрипт Counter срабатывал в независимости сколько раз
я нажму на эти две кнопки - как только правильная последовательность соблюдена
так должен срабатывать скрипт


 
DEMBELДата: Понедельник, 13 Июня 2011, 17:35 | Сообщение # 27
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Onideo)
то скрипт Counter не срабатывает

ну ясное дело, потому что переменная order$ уже заполнена неправильным шлаком. Нужно ее очистить перед началом нужной комбинации, например в начальной кнопке прописать ее обнуление order$='' но это только при условии что она нажимается только один раз, если нажмется посреди комбинации повторно (1212), то order$ затрется снова.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
OnideoДата: Четверг, 07 Июля 2011, 11:02 | Сообщение # 28
Постоянный участник
Группа: Проверенные
Сообщений: 225
Репутация: 0
Награды: 0
Статус: Offline
DEMBEL,
Спасибо за помощь!




Сообщение отредактировал Onideo - Четверг, 07 Июля 2011, 11:15
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » последовательность выполнения команд
  • Страница 1 из 1
  • 1
Поиск: