Вторник, 16 Апреля 2024, 22:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопросы по Game Maker Language
Вопросы по Game Maker Language
DeswingДата: Вторник, 15 Февраля 2011, 16:31 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Доброго времени суток! На данный момент я разрабатываю mmorpg на 39dll. Во время разработки я иногда подглядываю на такой ресурс под названием "39dll.ru" - состав очень хороший, всегда выслушают и помогут. Там, конечно, всегда радушный приём, но посетителей очень мало. Поэтому я вынужден обратится к вам! Многие вопросы будут по offline части, но это не значит, что они будут лёгкими. Очень прошу вас не спорить, не критиковать, да и вообще просить меня забросить идею mmorpg. Если даете ответ - даю вам плюс и очень сильно благодарю вас. Понимаю, вы бы не отказались от денег, но я не так уж и богат (: Так же, при ответе, не забудьте рассказать теорию своего алгоритма. Я должен знать как работает тот или иной код от А до Я.
Пока у меня немного вопросов:

1.Помогите создать генератор имен. У нас есть окно, куда вводится логин, и есть кнопка "Генерировать". При нажатии на эту кнопку генерируется случайный ник (даже, скажем так, имя) с уклоном на японский. Примеры: Yamato, Tasuki и т. п. Вопрос состоит в следующем - как сделать эту генерацию? Я сидел на диване, думал... Мне даже теория с трудом давалась... Придумывал себе, мол, у каждой буквы есть свой ID (который я присвою) и через random будут строится имена. Ничего не вышло. Ваши идеи?

2.Есть ли функция, которая считывает нажатие клавиш? Например чтобы код был в степе такой:
my_acc=функция, которая считывает нажатие клавиш

Сообщение отредактировал Deswing - Вторник, 15 Февраля 2011, 16:33
stalker5889Дата: Вторник, 15 Февраля 2011, 16:59 | Сообщение # 2
Свободный игродел
Сейчас нет на сайте
2. If keyboad_chek(ord("W"))
[тут команда] // Вместо w нужную клавишу. Надеюсь правильно понял?


DeswingДата: Вторник, 15 Февраля 2011, 17:02 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Quote (stalker5889)
Надеюсь правильно понял?

нет, не правильно. Вроде в GML есть функция или плагин, который заменяет большое количество кода. Сам подумай... В step будет много условий... А вдруг мою игру запустит старый компьютер? Не вариант... Я тоже думал об этом, но не вариант...
if keyboard_check(ord("N"))
{
my_acc+="N"
}
Ага... И мне по каждой букве пройтись? Извини, не катит
BaHu3aTopДата: Вторник, 15 Февраля 2011, 17:04 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Дошел до генерации, проблема в том, что генерируются сразу все имена и не знаю как исправить.


DeswingДата: Вторник, 15 Февраля 2011, 17:05 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте

Сейчас гляну
GameMixДата: Вторник, 15 Февраля 2011, 17:06 | Сообщение # 6
старожил
Сейчас нет на сайте
Quote (Deswing)
my_acc=функция, которая считывает нажатие клавиш

Переменная должна записывать код одной клавиши или целой последовательности нажатия?


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Вторник, 15 Февраля 2011, 17:07
DeswingДата: Вторник, 15 Февраля 2011, 17:08 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
аТнОтХоАн, последовательность. На ошибке меня поймал)
Quote (Deswing)
my_acc+=функция, которая считывает нажатие клавиш
GameMixДата: Вторник, 15 Февраля 2011, 17:09 | Сообщение # 8
старожил
Сейчас нет на сайте
Quote (Deswing)
нет, не правильно. Вроде в GML есть функция или плагин, который заменяет большое количество кода. Сам подумай... В step будет много условий... А вдруг мою игру запустит старый компьютер? Не вариант... Я тоже думал об этом, но не вариант...
if keyboard_check(ord("N"))
{
my_acc+="N"
}
Ага... И мне по каждой букве пройтись? Извини, не катит

Можно так:
Code
my_acc+=keyboard_lastkey


Steel Standoff - 2D аркада.
Мои статьи
DeswingДата: Вторник, 15 Февраля 2011, 17:10 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Quote (аТнОтХоАн)
keyboard_lastkey

можно узнать подробнее? Вы меня сильно выручаете, но мне нужно небольшое объяснение, если не сложно конечно)
GameMixДата: Вторник, 15 Февраля 2011, 17:12 | Сообщение # 10
старожил
Сейчас нет на сайте
Quote (Справка)
keyboard_lastkey Клавиатурный код последней нажатой клавиши.

Думаю, здесь понятно?


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Вторник, 15 Февраля 2011, 17:13
DeswingДата: Вторник, 15 Февраля 2011, 17:38 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Quote (аТнОтХоАн)
Думаю, здесь понятно?

Да, спасибо большое! Я вам + дал) А с стиранием символа как быть? Реализация Backspace

Добавлено (15.02.2011, 17:38)
---------------------------------------------
BaHu3aTop, эх.. У меня проблема гораздо сложнее... Это нужно для онлайн игры... А у тебя, видимо, только четыре имени

Quote
a[1]='BaHek'//Ìàññèâ
a[2]='Stiv'
a[3]='Dave'
a[4]='Roger'

А мне надо генерировать. Сам компьютер должен генерировать, а не выдать уже заготовленное имя. Твоя проблема решается легко!
GameMixДата: Вторник, 15 Февраля 2011, 17:40 | Сообщение # 12
старожил
Сейчас нет на сайте
Deswing, тогда будет так:
Code
my_acc=keyboard_string;

keyboard_string - это строка, которая содержит печатные символы. Также, реагирует на нажатие Backspace, стирая предыдущий символ.


Steel Standoff - 2D аркада.
Мои статьи
DeswingДата: Вторник, 15 Февраля 2011, 17:44 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
аТнОтХоАн, сейчас протестирую, секунду

Добавлено (15.02.2011, 17:44)
---------------------------------------------
аТнОтХоАн, работает! Спасибо большое!

GameMixДата: Вторник, 15 Февраля 2011, 17:46 | Сообщение # 14
старожил
Сейчас нет на сайте
Deswing, пользуйтесь на здоровье :). С генерацией именно имен, а не наборов букв, пока справиться не могу.

Steel Standoff - 2D аркада.
Мои статьи
DeswingДата: Вторник, 15 Февраля 2011, 17:50 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
аТнОтХоАн, ммм... Нашел баг... Странный такой... Вот мой нехитрый код:
Code
Create
my_acc="my_acc" //Мне показалось банальным написать ""   
STEP
my_acc=keyboard_string;
Draw
draw_text(40,30,""+string(object0.my_acc))

очень обрадовался, когда решил эту проблему (я ночами не спал из-за неё (: ) Как всегда свернул программу и поблагодарил вас, но когда я программу развернул - пустота! Такое чувство, что my_acc сам обнулился.
Баг не очень хороший


Сообщение отредактировал Deswing - Вторник, 15 Февраля 2011, 17:53
GameMixДата: Вторник, 15 Февраля 2011, 18:03 | Сообщение # 16
старожил
Сейчас нет на сайте
Deswing, одна ошибка (не по теме). Не используйте сразу и step, и draw. Они снижают оптимизацию. Уж что-то одно smile .

Добавлено (15.02.2011, 18:03)
---------------------------------------------

Quote (Deswing)
очень обрадовался, когда решил эту проблему (я ночами не спал из-за неё (: ) Как всегда свернул программу и поблагодарил вас, но когда я программу развернул - пустота! Такое чувство, что my_acc сам обнулился.
Баг не очень хороший

Обнулился......а текст вводили на русском?


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Вторник, 15 Февраля 2011, 18:01
DeswingДата: Вторник, 15 Февраля 2011, 18:06 | Сообщение # 17
заслуженный участник
Сейчас нет на сайте
Quote (аТнОтХоАн)
Обнулился......а текст вводили на русском?

Нет. На английском)
Made_In_USSRДата: Вторник, 15 Февраля 2011, 18:12 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
Для генератора все равно нужні заготовки имен. Например tsu для окончания и скажем fuji для начала.

Теперь берем имя игрока, скажем Tom и добавляем к нему в рандомном месте либо одно либо другое. У нас получится несколько комбинаций. Например Tomitsu, Tofujim. Ну пускай примеры не самые удачные, но над ними естественно нужно поработать. А если дописывать в конце san, то получится вообще идилия biggrin

draw_text(x,y,string(names1[random(n)]+username_var+names2[random(n)])) //нужно проверить код, не уверен что правильно написал
где n это количество ячеек в массиве namesN

Можно еще поколдовать над тем чтобы вставлять нужные значения в середину имени, но на этим нужно подумать, на вскидку не скажу.


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
DeswingДата: Вторник, 15 Февраля 2011, 18:18 | Сообщение # 19
заслуженный участник
Сейчас нет на сайте
Made_In_USSR, эх... Этот генератор я буду прикручивать к mmorpg... Более 100-200 имен он не сгенерирует. А это проблема... Наверное мне легче забить на генератор
Made_In_USSRДата: Вторник, 15 Февраля 2011, 18:27 | Сообщение # 20
заслуженный участник
Сейчас нет на сайте
Этот генератор поще амебы. Конечно идею нужно развивать. Тем более что из двух массивов в 20 строк и оригинального логина username можно сгенерировать в несколько порядков болше имен чем 100-200. Другое дело что они все будут однотипными, поэтому алгоритм должен быть сложнее чем я предложил. Этот пример просто должен навести на мысль. А вообще проще будет взять уже готовые алгоритмы из интернета и адаптировать из под функции гм, хотя суть у всех одна и та же. Фантазируй.

Добавлено (15.02.2011, 18:27)
---------------------------------------------
А вообще если делать регистрацию через http, то можно взять уже готовые скрипты генераторы, а результат писать в базу данных. Серверу то все равно читать оттуда.


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопросы по Game Maker Language
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг