Помогите создать обучающую игру для ребенка
| |
Ateist | Дата: Пятница, 29 Июня 2012, 01:36 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Для начала, я армянин, и игра будет на армянском и будет учить армянскому алфавиту. В игре будет 2 режима: Цифры и буквы В каждом режиме еще два режима: обучение и проверка В режиме обучения на экране разбросаны цифры (буквы). Кликаешь на одном из них, компьютер произносит данную цифру (букву), переносит его в другое, произвольное место. Все В режиме проверки компьютер просит найти конкретную цифры (букву), если указана неправильная цифра, просто произносится его имя, если же указана правильная, то не месте цифры возникает салют, какие то аплодисменты. А цифра появляется в новом месте.
Для начала мне нужно только это. Я новичок в ГМ. Сейяай изложу что уже сделано, и что не получается. Для начала я делаю все только для цифр, если научусь всему необходимому, буквы доделаю сам.
1. Создал 2 комнати: для обучения и для проверки 2. т.к. не знаю как сделать в начале меню для выбора режима, пока переход межу режимам делаю вручную, переставляя местами комнаты. 3. Режим обучение работает нормально. 4. В режиме проверки первая проверка началась когда я хотел чтоб компьютер произнёс "Покажи цифру' N. По армянский это звучит чут иначе: "Покажи" N "цифру": Я отдельно записал поризночения всех цифр (которые и звучат в режиме обучения), и слова "покажи" и "цифру": 5. Сначала попробовал получуть необходимую фразу через
global.tiv=irandom(1)+9 //tiv значит цифра, выбираем произвольную цифру sound_play(11); //проиграть "покажи" sound_play(global.tiv) // проиграть выбранную цифру sound_play(12) //проиграть "цуфру" Аудиозаписи хранятся в формате MP3, при таком коде воспроизводится только 3-я часть: "цифру". Я поменял код на global.tiv=irandom(1)+9 //tiv значит цифра, выбираем произвольную цифру sound_play(11); //проиграть "покажи" sleep(1200) //сделать паузу sound_play(global.tiv) // проиграть выбранную цифру sleep(800) //сделать паузу sound_play(12) //проиграть "цуфру"
Так игра нормально начинается. Далее для цифр создаем event Left Button. Там для каждой цифры проверяем, Code если global.tiv равен данной цифре, то цикл сделать салют на месте цифры запустит скрипт (global.tiv= irandom(1)+9 sound_play(11); sleep(1200) sound_play(global.tiv) sleep(800) sound_play(12)) закрыть цикл Иначе цикл Произнести цифру закрыть цикл Переместить цифру в произвольное место.
Теперь как что у меня работает. 1. Из за команд Sleep у меня останавливается анимация комнаты, но я не знаю другой команды типа delay. 2. Последний пункт "Переместить цифру в произвольное место." происходит сразу же, только после него срабатывает скрипт, который воспраизводит "найти N" и только на последнем слове "цифру", на прежнем месте цифры происходить салют.Добавлено (29.06.2012, 01:36) --------------------------------------------- Ссылка на исходник. Не прошу сделать все за меня, но помогите советами. 1. как добится delay-a? 2. Обьясните, что делает event Step, не нашел понятного текста.
Только delay-em я многого добюсь самостоятельно, но похожо в ГМ такой функции нет, а в Alarm-ах не разобрался.
De gustibus et coloribus non est disputandum.
|
|
| |
Vong | Дата: Пятница, 29 Июня 2012, 02:31 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Как раз таки алярмы, то что тебе нужно.(сам алярмы не люблю). Могу посоветовать использовать Game Develop или скиру констракт. В скире есть процедура every X miliseconds (каждые X секунд) с ней, очень просто можно сделать. ----------------- видео, в принципе, покажет, как воплотить твою идею: YouTube
Сообщение отредактировал Vong - Пятница, 29 Июня 2012, 02:41 |
|
| |
МистерИкс | Дата: Пятница, 29 Июня 2012, 02:40 | Сообщение # 3 |
Текстовик
Сейчас нет на сайте
| Quote (Vong) В скире есть процедура every X miliseconds (каждые X секунд) с ней, очень просто можно сделать. Хех, а разве сложно запустить Alarm[0] один раз, когда нужно, а потом проверять в нем: Code if (какая-то переменная) {Выполняем что-то alarm[0]=нужное_время //Снова запускаем таймер, и выполняется до бесконечности, пока равна переменная }
Три Пути - текстовый квест Not Quite Heroes - пародийная jRPG в разработке
|
|
| |
Vong | Дата: Пятница, 29 Июня 2012, 02:42 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| Quote (МистерИкс) Хех, а разве сложно запустить Alarm[0] один раз, когда нужно, а потом проверять в нем: он же написал, что не разобрался - я для этого и приложил видео.
|
|
| |
Saladin | Дата: Пятница, 29 Июня 2012, 17:49 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Это: Quote (Ateist) sound_play(11) И особенно вот это: Quote (Ateist) global.tiv=irandom(1)+9 //tiv значит цифра, выбираем произвольную цифру Quote (Ateist) sound_play(global.tiv) Что это такое? У тебя переменная содержащая айди звука (имя звука) состоит из одних только цифр? Как твоя программа отличает цифры от имен переменных? Лабуда. Сейчас гляну сырец, но чета мне кажется проще написать с нуля чем исправить.
Анбаннэд. Хэлоу эгин =)
|
|
| |
Ateist | Дата: Пятница, 29 Июня 2012, 20:45 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| Спасибо всем за совети.
Saladin
Я в своем посте добавил коментарии к каждой строке global.tiv=irandom(1)+9 //tiv значит цифра, выбираем произвольную цифру sound_play(11); //проиграть "покажи" sleep(1200) //сделать паузу sound_play(global.tiv) // проиграть выбранную цифру sleep(800) //сделать паузу sound_play(12) //проиграть "цифру"
Да, переменная и есть ID звука и цифри.
Посмотрел видео по Alarm-ам, но как то не помогло, мне нужна именно пауза в разных местах программы.
Я немножко программирую (программировал) в VB6, VBA, может это мне мешает понять логику ГМ. Пишу команды по очереди, а они работают в другой последовательности. Я скачал Скиру, посмотрю, может её логика будет мне понятней. Буду знакомиться и с ней, но буду следить и за этой темой. Может будет понятная для меня подсказка, наводка
Еще раз спасибо.
De gustibus et coloribus non est disputandum.
|
|
| |
Aaron_Jel | Дата: Пятница, 29 Июня 2012, 22:08 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Quote (Ateist) Я немножко программирую (программировал) в VB6, VBA, Так и напишите на VB игру.
גוגל מתרגם בולשיט
|
|
| |
Saladin | Дата: Пятница, 29 Июня 2012, 22:27 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Посмотрел исходник, ничерта не понял. Там "какие то кнопки".
Quote (Ateist) мне нужна именно пауза в разных местах программы. Пауза понятие растяжимое. Пауза может приостанавливать весь игровой процесс, пауза может быть задержкой в каком то действии, выполнении функции, паузой может быть просто отключение ввода с клавиатуры или мыши. Что конкретно тебе нужно?
А вообще правильно по алярмам тебе сказали. Если я правильно понял, тебе можно и нужно пользоваться даже не алярмами а таймлайнами. В нажатии кнопки запускаешь таймлайн, а в самом таймлайне пишешь сценарий. Что-то вроде: шаг 0 - проиграть звук "покажи", шаг 1000 - проиграть звук "переменная для звука цифры" , шаг 2000 - проиграть звук "цифру". Получится таймлайн на три действия, ну и шаги нужно прикинуть так, чтобы не слишком большая пауза между звуками была (одна секунда = room_speed).
Анбаннэд. Хэлоу эгин =)
|
|
| |
Ateist | Дата: Пятница, 29 Июня 2012, 22:43 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Спасибо за наводу, кажется таймлайны именно то что мне нужно.
А насчет VB6, далек он от мультимедии, тоже самое в ГМ можно сделать и красивее и намного быстрее.
De gustibus et coloribus non est disputandum.
|
|
| |
Pocifik | Дата: Пятница, 29 Июня 2012, 22:55 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Ateist, аватар нарушает правила
|
|
| |
Ateist | Дата: Пятница, 29 Июня 2012, 23:57 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Quote (Pocifik) Ateist, аватар нарушает правила
Именно настолько, насколько никнейм, т.е. никак не нарушает, ибо никого ни к чему не призывает, и никого не пытается оскорбить, а только показывает мою точку зрения.
Спасибо за внимание, если администрация со мной не согласна, я могу поменять. Но только по решению администрации.
De gustibus et coloribus non est disputandum.
|
|
| |
Pocifik | Дата: Суббота, 30 Июня 2012, 21:11 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Quote (Ateist) никого не пытается оскорбить шутите?
|
|
| |
|