Художник пытается освоить GML
| |
Qvant | Дата: Четверг, 10 Марта 2011, 12:50 | Сообщение # 101 |
почти ветеран
Сейчас нет на сайте
| image_single заменит image_index=1; image_speed=0 аТнОтХоАн, не вешай лапшу на уши - на производительности не скажется , просто одна лишняя строка в коде в 8 версии GM этого оператора официально нет , но он работает (он просто был в GM6 или в GM7)
|
|
| |
NeZnayu | Дата: Четверг, 10 Марта 2011, 13:09 | Сообщение # 102 |
__танцуй!__
Сейчас нет на сайте
| Вызов скрипта работает гораздо медленнее (если речь идет о степе, т.е. Скрипт вызывается каждый шаг) чем просто код, поэтому сильно рекомендую весь степ писать прямо в объекте.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
NeZnayu | Дата: Четверг, 10 Марта 2011, 13:11 | Сообщение # 103 |
__танцуй!__
Сейчас нет на сайте
| Разве что какие-то общие, небольшие функции для удобства выносить в скрипты.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
GameMix | Дата: Четверг, 10 Марта 2011, 13:37 | Сообщение # 104 |
старожил
Сейчас нет на сайте
| Quote (Qvant) аТнОтХоАн, не вешай лапшу на уши - на производительности не скажется , просто одна лишняя строка в коде Извините, ведь я следовал логике. Чем меньше в step или draw скрипт, тем быстрее он выполняется в игре. Поэтому, решил, что image_single = 0; выполняется быстрее.
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал аТнОтХоАн - Четверг, 10 Марта 2011, 13:38 |
|
| |
Made_In_USSR | Дата: Четверг, 10 Марта 2011, 16:38 | Сообщение # 105 |
заслуженный участник
Сейчас нет на сайте
| Quote (Ferrumel) Насколько это оправдано, если я допустим для главного героя пишу здоровенную скриптовую портянку, где описываю абсолютно все его возможные действия и свойства, затем в объекте главного героя просто ставлю событие step и там вбиваю например script1() Тоесть больше ничего в объкте не существует кроме степ. Это нормально? Это не будет сильно напрягать систему? Или лучше делать по другому? Насколько оправданно выполнять код, который нужен только при нажатии кнопки каждый шаг? Думаю что ни на сколько)) Опять же скрипты пишутся для автоматизации рутинных задач. И как сказал NeZnayu Вызов скрипта работает медленнее чем код непосредственно из события. Наверное лучше перед тем как писать код обдумать для чего и когда он нужен. Понимать все равно начнешь в процессе, так что сейчас самое главное это логика и интуиция.Добавлено (10.03.2011, 16:38) ---------------------------------------------
Quote (аТнОтХоАн) Извините, ведь я следовал логике. Чем меньше в step или draw скрипт, тем быстрее он выполняется в игре. Поэтому, решил, что image_single = 0; выполняется быстрее. В скомпилированном виде это 1 и 1+1 байта памяти или как то так. В общем этого слишком мало чтобы втиснуться даже в погрешность
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Ferrumel | Дата: Суббота, 12 Марта 2011, 13:11 | Сообщение # 106 |
почти ветеран
Сейчас нет на сайте
| 3 недели долбежа перемещения героя не дали результата, можно сделать несколько выводов. Либо мне необходимо забросить это дело и рисовать дальше не помышляя даже о скриптовом программировании. Либо это слишком маленький срок и я просто не понял какойто мелочи. Можно даже сказать что у меня есть подозрения, чтоя просто не понимаю значения функций (еще бы, таким языком они написаны) А брать чужой код и заменить в нем спрайты, у меня совесть не позволяет.))) Показываю плод моих мучений, по логике это должно работать, если кому не лень объясните почему он не работает, или я неправильно понимаю функцию place_free? Просто скажите почему не работает, своих решений лучше не предлагать. Этот код засунут в степ. while (place_free (x,+4)) {y+=2}; if keyboard_check (vk_left) then if place_free (x-4,y) then x-=1 if keyboard_check (vk_right) then if place_free (x+4,y) then x+=1 if keyboard_check (vk_up) then if !place_free(x,y+4) then while (place_free(x,y-4)) {y-=2};
все серо и пусто
|
|
| |
NeZnayu | Дата: Суббота, 12 Марта 2011, 13:27 | Сообщение # 107 |
__танцуй!__
Сейчас нет на сайте
| Первая строчка: while (place_free (x,y+4)) Забыл у ?
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
BornInUSSR | Дата: Суббота, 12 Марта 2011, 16:37 | Сообщение # 108 |
почетный гость
Сейчас нет на сайте
| Quote (Ferrumel) while (place_free (x,+4)) {y+=2}; if keyboard_check (vk_left) then if place_free (x-4,y) then x-=1 if keyboard_check (vk_right) then if place_free (x+4,y) then x+=1 if keyboard_check (vk_up) then if !place_free(x,y+4) then while (place_free(x,y-4)) {y-=2}; Какой то странный разнобой в коде. То ты используешь скобки, то нет. Постоянно проскакивает этот then, который только затрудняет чтение кода. Почему то вместо or/and ты используешь два if. Ты явно используешь этот код в степе, зачем запускаешь цикл, если событие выполняется каждый шаг, почему не все тот же if? Мне кажется тебе нужно выработать какой то один стиль кодинга ну и внимательнее просматривать написанный код. Код к стати не работает из-за циклов, и вообще вешает машину.
|
|
| |
Dva_Kota | Дата: Понедельник, 14 Марта 2011, 13:06 | Сообщение # 109 |
заслуженный участник
Сейчас нет на сайте
| Quote (NeZnayu) Почему то вместо or/and ты используешь два if Если использовать два if то вторая проверка не будет выполняться если первая будет false, а если писать and то всегда будут выполняться обе проверки (это для увеличения производительности).
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
Made_In_USSR | Дата: Понедельник, 14 Марта 2011, 14:13 | Сообщение # 110 |
заслуженный участник
Сейчас нет на сайте
| Quote (BornInUSSR) if keyboard_check (vk_left) then if place_free (x-4,y) then x-=1 if keyboard_check (vk_left) && place_free (x-4,y) x-=1 Без всяких then и if*2. Компактно и легко читается. Тут в любом случае выполняются две проверки, Очередность та же. Каким образом это может повлиять на производительность?!? з.ы.: естественно что нужно использовать тот оператор который подходит в данном случае, это как бы само разумеющееся, мне обьяснять не нужно.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Dva_Kota | Дата: Понедельник, 14 Марта 2011, 14:24 | Сообщение # 111 |
заслуженный участник
Сейчас нет на сайте
| Code if (keyboard_check (vk_left)) { if (place_free (x-4,y)) { x-=1 } } Вторая проверка (place_free()) будет выполняться только если нажата клавиша vk_left
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
Made_In_USSR | Дата: Понедельник, 14 Марта 2011, 15:28 | Сообщение # 112 |
заслуженный участник
Сейчас нет на сайте
| Quote (Dva_Kota) Вторая проверка (place_free()) будет выполняться только если нажата клавиша vk_left Ну возможно, просто мне казалось, что если первая проверка терпит неудачу, то if возвращает неудачу не доходя до второй проверки.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Dva_Kota | Дата: Понедельник, 14 Марта 2011, 15:31 | Сообщение # 113 |
заслуженный участник
Сейчас нет на сайте
| Нет, это не так. Я раньше тоже так думал.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
Made_In_USSR | Дата: Понедельник, 14 Марта 2011, 15:40 | Сообщение # 114 |
заслуженный участник
Сейчас нет на сайте
| Ну тогда спасибо тебе за ценную информацию, возьму на вооружение.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Ferrumel | Дата: Вторник, 22 Марта 2011, 17:31 | Сообщение # 115 |
почти ветеран
Сейчас нет на сайте
| Ух народ! спасибо вам за беседу внутри темы. Наконец то добил движения. Всмысле оживил персонажа заставил бегать, прыгать, приседать, не застревать и не проваливаться. Более того, стрельбу реализовал в течении дня. Складывается впечатление, что что обучаться начинаю все быстрее и быстрее. Я тут вот с каким вопросиком. Где можно почитать про тайлы, стрипы и все что с этим связано. Мне не как это рисовать (это уж сумею), а как это реализовано в GM. Ну и один микро вопросик, где можно найти информацию про стрельбу очередями, как выполняются задержки между выстрелами, перезарядка и прочие мелочи. В принципе прокипев головой это тоже смогу решить, но все таки доп литратура не помешает.
все серо и пусто
|
|
| |
LunarPixel | Дата: Вторник, 22 Марта 2011, 18:05 | Сообщение # 116 |
старожил
Сейчас нет на сайте
| Ferrumel, вообще, всё что тебе нужно можно найти КЛИКНУВ ВОТ СЮДА кроме этого и головы на плечах больше ничего не нужно.
|
|
| |
Ferrumel | Дата: Вторник, 22 Марта 2011, 18:16 | Сообщение # 117 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, Если я пишу сюда, значит кривая справка с кривым переводом не дала мне необходимый объем информации. Гугл в своем большинстве выдает ссылку на ЭТОТ ФОРУМ! или yoyo (а я варварского языка не знаю). Написав здесь пост я либо прошу объяснить что это за фигня в справке непонятная. Или дайте углубленную информацию по тому или иному вопросу. Потому давайте не будем плодить неинфомативных и пустых постов.
все серо и пусто
|
|
| |
Robin_Locksley | Дата: Вторник, 22 Марта 2011, 18:51 | Сообщение # 118 |
постоянный участник
Сейчас нет на сайте
| Quote (Ferrumel) Где можно почитать про тайлы, стрипы и все что с этим связано. Конкретизируй, возможно тебе дадут ответ на интересующий вопрос вместо ссылки на мануал. Quote (Ferrumel) Ну и один микро вопросик, где можно найти информацию про стрельбу очередями, как выполняются задержки между выстрелами, перезарядка и прочие мелочи. Чуть позже я тебе отвечу
|
|
| |
Ferrumel | Дата: Вторник, 22 Марта 2011, 19:16 | Сообщение # 119 |
почти ветеран
Сейчас нет на сайте
| листы стрипов, в каком они должны быть формате, с прозрачным фоном или нет, каким образом осуществляется выдирка изображений в код, каким образом собирается на основе стрипа анимация, какие тонкости при это необходимо учитывать, какую нагрузку в конечном итоге играет лист на компьютер в отличие если использовать отдельные спрайты и анимированные спрайты. Можно ли использовать к одному объекту несколько стрипов, можно ли использовать на несколько объектов один стрип, целесообразность объеденения изображения в стрип, если его можно использовать как отдельный анимированный спрайт, общая теория и практические советы (справку не предлагать) Я спрашиваю, есть ли где почитать об этом? Или шишки себе на примитивных вещах набивать? Тоесть есть ли где нибудь объедененная информация? Robin_Locksley, В принципе могу и сам это дело додумать по поводу стрельбы, но хоть намек как это реализовывается таймером каким нибудь?, длинные коды писать не надо, все равно я посмотрю и напишу свой. Если есть где код можно просто ссылкой порадовать.
все серо и пусто
|
|
| |
LunarPixel | Дата: Вторник, 22 Марта 2011, 19:51 | Сообщение # 120 |
старожил
Сейчас нет на сайте
| Формат - любой, но желательно чтобы без потери качества (bmp, png), дабы можно было сделать прозрачный фон Фон прозрачный можно сделать уже в самом Game Maker'е Из стрипа формируешь спрайты. Выдергиваешь изображение и собираешь в анимацию. Для этого можно использовать команды Create from Strip или Add from Strip которые находятся в редакторе спрайтов в меню File. Жмешь на любую из этих команд, выбираешь стрип, выделяешь нужный кусочек изображения и жмешь ОК. Из этой части изображения сформируется спрайт. Create from Strip создает один спрайт, а Add from Strip добавляет новый спрайт к уже добавленному. Собственно говоря стрип - это просто анимированный спрайт. Он в любом случае состоит из кадров. Просто может, как художнику, тебе проще будет нарисовать анимацию покадрово вряд и сохранить в один фаил, а потом при помощи Create from Strip и Add from Strip создать анимацию в Game Maker'е. Что имеется в виду под "использовать к одному объекту несколько стрипов"?! Как я уже сказал из стрипа формируется спрайт. Для одного объекта в один момент времени можно использовать один спрайт. По ходу игры, кодом, спрайт можно изменять. Ну а для нескольких объектов один спрайт собранный из стрипа использовать можно. Вроде ничего не напутал )) Почитать кое что можешь вот тут: ТЫК СЮДА там и про стрипы и про тайлы есть статьи небольшие. Информации, больше чем в справке, я не встречал. Добавлено (22.03.2011, 19:51) --------------------------------------------- Вот набросал тебе для примера стрельбу с перезарядкой: Особо не заморачивался, просто чтобы принцип понятен был. Пробел - стрельба. Ентер - перезарядка.
|
|
| |
|