Понедельник, 30 Декабря 2024, 20:19

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
AnthemДата: Среда, 22 Апреля 2015, 15:51 | Сообщение # 5341
Д'Артаньян
Сейчас нет на сайте
EfimovMax, только вверх, поэтому и отсчет от 0 влево и вправо

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
EfimovMaxДата: Среда, 22 Апреля 2015, 16:28 | Сообщение # 5342
заслуженный участник
Сейчас нет на сайте
Anthem,
Код

// Управление
if keyboard_check(ord('A')) hspeed=-2
if keyboard_check(ord('D')) hspeed=2

// Поворот спрайта
if hspeed < 0
            {
             if image_angle <= 12 {image_angle += 2}        
             }
else if hspeed > 0        
            {
             if image_angle > -12 {image_angle -= 2}
             }


Вот набросал. Всё едет и поворачивает smile

ps Ты в своём коде забыл взять два условия if в скобки {} и я не совсем понял, зачем тебе нужны условия else.


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Среда, 22 Апреля 2015, 16:36
AnthemДата: Среда, 22 Апреля 2015, 18:52 | Сообщение # 5343
Д'Артаньян
Сейчас нет на сайте
EfimovMax, спасибо, вижу теперь косяк. Элс нужен, чтобы машина выпрямлялась, ехала прямо без нажатия

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
EfimovMaxДата: Среда, 22 Апреля 2015, 20:34 | Сообщение # 5344
заслуженный участник
Сейчас нет на сайте
Цитата Anthem ()
EfimovMax, спасибо, вижу теперь косяк. Элс нужен, чтобы машина выпрямлялась, ехала прямо без нажатия

Не нужно, поставь это условие
Код

if !keyboard_check(ord('A')) &&  !keyboard_check(ord('D'))  
    {
    hspeed=0
    image_angle=0
    }


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Среда, 22 Апреля 2015, 20:35
AnthemДата: Среда, 22 Апреля 2015, 22:26 | Сообщение # 5345
Д'Артаньян
Сейчас нет на сайте
EfimovMax, я имею в виду, что в моем коде прописано плавное уменьшение угла, а у тебя машина резко возвращается в исходное положение. Спасибо, что подсказал со скобками, теперь все работает нормально, даже с элсами:)
Могу задать другой вопрос. Ты делаешь мультиязычные игры?
Пипл, как вы решаете вопрос с переключением языков? Я что-то уже подзадолбался. У меня все на спрайтах, но они не хотят меняться при смене языка


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
LunarPixelДата: Среда, 22 Апреля 2015, 23:35 | Сообщение # 5346
старожил
Сейчас нет на сайте
Цитата Anthem ()
Я что-то уже подзадолбался. У меня все на спрайтах, но они не хотят меняться при смене языка

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

Код
if lang==1 {спрайт на русском} else {спрайт на английском}

Если языков много, то можно через switch организовать.

Если анимаций нет, то просто в спрайт помещаешь кадры на разных языках и используешь переменную, хранящую язык, как номер кадра (при условии, что языки хранишь, как числа, 1-русский, 2-английский и т.д.).

Код
draw_sprite(sprite_index,lang,x,y)


AnthemДата: Среда, 22 Апреля 2015, 23:56 | Сообщение # 5347
Д'Артаньян
Сейчас нет на сайте
Цитата LunarPixel ()
А в чем, собственно, проблема?
Проблема в том, что появилась навящивая идея, сделать все это за пределами Степа. Переменная меняется при нажатии на кнопку "Язык". Есть невидимый объект "Кнопки меню", в котором также меняется индекс кадра. Этот объект родительский для всех кнопок. Так вот в меню настроек все кнопки, включая Язык, меняют свои спрайты, а кнопки главного меню - нет. Может из-за того что они деактивированы в момент нажатия? biggrin Да, так и есть. Мог бы раньше прочитать...
значит Или вообще все это бред и надо просто закинуть скрипт смены кадра каждой кнопке в Степ и на оптимизации это не скажется?


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
EfimovMaxДата: Четверг, 23 Апреля 2015, 00:37 | Сообщение # 5348
заслуженный участник
Сейчас нет на сайте
Цитата Anthem ()
значит Или вообще все это бред и надо просто закинуть скрипт смены кадра каждой кнопке в Степ и на оптимизации это не скажется?

Я бы не запаривался wink Простая конструкция if else не даст тебе хоть какого-либо проседания фпс.


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
LunarPixelДата: Четверг, 23 Апреля 2015, 00:50 | Сообщение # 5349
старожил
Сейчас нет на сайте
Anthem, если я тебя правильно понял, то в твоей ситуации не обязательно Степ использовать. У тебя же есть событие, при котором меню активируется, ставь туда же, после активации, и проверку языка, чтобы уже у активированного меню сменить индекс. Получается, проверка будет проходить один раз, только в момент появления меню.

Касательно же Степа и оптимизации, то, как уже выше заметили, видимых глазу ухудшений это не прибавит.


AnthemДата: Четверг, 23 Апреля 2015, 01:08 | Сообщение # 5350
Д'Артаньян
Сейчас нет на сайте
EfimovMax, LunarPixel, спасибо вновь за консультации!

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
hmprДата: Пятница, 24 Апреля 2015, 11:59 | Сообщение # 5351
частый гость
Сейчас нет на сайте
Здравствуйте. У меня нубский вопрос: зачем нужны скрипты в GM? В справке написано что по сути они ни чем не отличаются от кода событий объекта и еще где-то я вычитал, что скрипты выполняются на много медленней чем код событий, однако во многих примерах, которые я скачивал, скриптов понапихано туева хуча. Буду благодарен за разъяснение на понятном языке, в чем их преимущество и вообще...
dima9595Дата: Пятница, 24 Апреля 2015, 12:27 | Сообщение # 5352
почти ветеран
Сейчас нет на сайте
Цитата hmpr ()
скрипты выполняются на много медленней чем код событий

не совсем так...самописные функции, как я слышал, выполняются дольше, а те, которые есть в GML - они нормальные - стоит использовать их.
Цитата hmpr ()
зачем нужны скрипты в GM?

Для облегчения работы, уменьшения так называемых "кнопочных событий". Создал файл - впихнул туево-кукуево кода и он тебе не мешает...просто подключаешь его где надо. А если делать всё с кнопками, то ты сам запутаешься в них.
Надеюсь понятно объяснил)


TernoxДата: Пятница, 24 Апреля 2015, 12:48 | Сообщение # 5353
Light my fire
Сейчас нет на сайте
hmpr, как зачем? Чтобы не повторять постоянно одни и те же строки кода, можно для удобства запилить себе настраиваемые скрипты, или возвращать с помощью них нужную информацию.

Ternoxgames.com. Разрабатывают игры и выпускаю их на консолях.
hmprДата: Понедельник, 27 Апреля 2015, 01:14 | Сообщение # 5354
частый гость
Сейчас нет на сайте
dima9595, Ternox, и все? В таком случае можно же и без скриптов обойтись вполне... или нет?
EfimovMaxДата: Понедельник, 27 Апреля 2015, 02:31 | Сообщение # 5355
заслуженный участник
Сейчас нет на сайте
Цитата hmpr ()
и все? В таком случае можно же и без скриптов обойтись вполне... или нет?

Можно и обойтись. Но давай представим ситуацию - у тебя рпг-игра. Есть инвентарь, и есть предметы. Каждый тип предмета - это отдельный объект (objSwords, objDaggers, objPotions, objHelms и т.д.). Естественно, чтобы их, к примеру, можно было подбирать, тебе нужно для каждого объекта писать одинаковый код (изменения в переменных, замена спрайтов, новые параметры самих объектов и т.д.). Ладно, можно просто копировать-вставить. Но тут вдруг нужно поменять какие-то значения/строку в этом коде. Открываем каждый объект и меняем. Не удобно, правда?
А вот если напишем скрипт для подбора, то нам нужно будет в каждый объект засунуть только одну строку (вызов скрипта). И с редактированием не возникнет никаких проблем. Удобно ведь?
Так если у нас есть возможность написать более красивый и менее объёмный код, да ещё и с понятным редактированием, то почему бы не воспользоваться? smile


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Понедельник, 27 Апреля 2015, 13:51
Fill_FreemanДата: Понедельник, 27 Апреля 2015, 13:48 | Сообщение # 5356
почетный гость
Сейчас нет на сайте
hmpr, В дополнение к тому, что написал EfimovMax распиши ситуацию вскользь замечененную Ternox.

Допустим у тебя много разных видов стрел (ядовитые, простые, огненные и проч). У них разный урон. А еще есть много разных врагов. Для того чтобы узнавать, а сколько же ты нанес урона. Тебе пришлось бы создавать кучу событий. Collusion каждого врага с каждой стрелой. В итоге у тебя получается огромное кол-во событий, в которых кто-угодно наделает столько ошибок, что хоть вешайся.

Используя скрипты ты можешь сделать одно событие когда родительский объект врага сралкивается с родительским объектом стрел. В этом собитии ты вызываешь скрипт, передовая какие именно объекты сталкиваются. А сам скрипт, например, возвращает сколько хитпоинтов было снесено у врага. В итоге очень удобный и легко обслуживаемый код.


hmprДата: Понедельник, 27 Апреля 2015, 16:42 | Сообщение # 5357
частый гость
Сейчас нет на сайте
EfimovMax, Fill_Freeman, Спасибо. Вроде стало понятно. А что такое аргумент?
Fill_FreemanДата: Понедельник, 27 Апреля 2015, 20:57 | Сообщение # 5358
почетный гость
Сейчас нет на сайте
Цитата hmpr ()
А что такое аргумент?


Это параметр, который передается в функцию. За подробностями надо учить мат часть, начать например на вики.
Если вкратце, то если например сделать скрипт (а в других языках, функцию), который складывает два числа, то сам скрипт будет выглядеть вот так:

script:
return argument0 + argument1;

argument0 и argument1 - это некие аргументы, которые каждый раз будут разные. А return возвращает результат их сложения.
В итоге когда ты пишешь

A = script(1,2), то A здесь равно 3.
1 будет argument0, 2 - argumment1. Потому что 1 - первое в списке, а 2 - второе.

В общем, читай основы программирования...


hmprДата: Вторник, 28 Апреля 2015, 20:10 | Сообщение # 5359
частый гость
Сейчас нет на сайте
Fill_Freeman, огромное спасибо
hakoДата: Суббота, 02 Мая 2015, 02:27 | Сообщение # 5360
был не раз
Сейчас нет на сайте
Всем привет! Нужна помощь в написании скрипта, так как я совсем зеленый, то своими силами сколько ни пытался, ничего не выходит smile
Нужно чтобы персонаж objHero при столкновение с объектом objPer (нетвердый, невидимый) и при нажатии клавиши вверх, переходил в комнату roomDom..т.е только если оба условия верны.
Пытался запихнуть код
if keyboard_check(vk_up) and collision_line( 0, y, 80, y, objPer, false, true)
{
room_goto(roomDom)
}
Ничего...
Пытался так - затолкал этот код в событие столкновения с objPer
if keyboard_check(vk_up)
{
room_goto(roomDom)
}
Тишина...вернее при столкновение сразу переходит в другую комнату, а нужно чтобы при нажатии клавиши.
И вот так пробовал...в событие нажатии клавиши Вверх
if collision_line( 0, y, 80, y, objPer, false, true)
{
room_goto(roomDom)
}
так она в любой части уровня переходит в след комнату
Вообщем, очень надеюсь на помощь, спасибо!


Никто о том не покрушится,
И будут (я уверен в том)
О смерти больше веселится,
Чем о рождении моем…
Поиск:

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