Game Maker - создание игр | HellRoom Games
Апрель 30, 2025, 14:08:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Ссылки на события
  • Новый урок в школе GML: Апрель 10, 2011 - Апрель 13, 2011
Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Урок 2. Управление перемещением.  (Прочитано 55829 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dmi7ry
Гл. Администратор
*

Репутация: 1379
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #30 : Ноябрь 12, 2011, 17:18:06 »

Позволю себе ответить, пока автора уроков нет 

Здравствуйте мне очень нравятся ваши уроки по GML. Но у меня есть вопросы по некоторым функциям... я все в цитату возвел...
1) place_meeting(x,y,obj) я не понял , что значит возвращает истину?? Ну вообщем я понял, что это можно использовать вместо " Столкновение с объектом" к примеру   
Код:
if place_meeting (player.x,player.y,monstr) { global.hp-=10}... 
возможно же такое ??? объясните пожауйсто..
"функция возвращает", это значит что выполнив, например
Код:
a=place_meeting(...)
в "a" будет результат.
в данном случае "a" будет равно либо true, либо false.
Ваша запись также верна. Хотя лично я все условия ставлю в скобки.
Код:
if (place_meeting (player.x,player.y,monstr)) { global.hp-=10}... 
Для наглядности, чтобы самому не запутаться, а также во избежание неправильной обработки данных.

Цитировать
2)move_bounce_solid(adv) - принципи я понял, что это основной рикошет... но вместо "adv" я так понял пишут объект ??
Нет, вместо adv ставим true или false.
Цитировать
Аргумент adv отвечает за "продвинутое" использования (поверхности любого наклона)
Имя объекта указывать не нужно - тут действие идёт по отношению ко всем твёрдым объектам.

Цитировать
3)move_outside_solid(dir,maxdist) будет двигаться пока соприкасается с экземпляром твёрдого объекта ... как это возможно?? если объект соприкасается с твердым объектом насколько я знаю он в нем останавливается тобишь в этом случае застрявает... эмм.. что за парадокс?  Мда.... может быть я чегото не дочитал?
Застревает - это в том случае, если прописано событие столкновения с объектом.
Если мы поставим  с любым твёрдым объектом, то GM автоматически будет выполнять команды x=xprevious и y=yprevious. Как раз из-за этого и происходит "застревание".
Команду можно использовать, например, так:
а). Мы прописываем команду move_outside_solid внутрь события столкновения - тогда всё будет нормально
б). Мы прописываем команду где-то в степе, но при этом не создаём событие (то есть все проверки на столкновения также делаем самостоятельно в коде).
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
agasi22
Пользователь
***

Репутация: 5
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 82


+Black Metal Fan+


« Ответ #31 : Январь 18, 2012, 16:30:59 »

Решил перечитать все уроки с самого начала. Так что если замечу ошибки, буду писать их сюда.
Вот первая: "Поскольку в комнате 2 врага, то данная конструкция указывает на 2 экземпляра и смещение выполнится 2 раза". Ведь так?
Есть несколько пожеланий и вопросов:
Цитировать
"Движение влево-вправо я думаю, вы сможете осуществить. Теперь прыжок: прыжок у нас происходит вверх. Применим для этого vspeed. vspeed-=10"
Как сделать чтобы персонаж прыгал 1 раз, а не 100? Если нажимать несколько раз на кнопку прыжка, то он прагает столько-же раз. В уроке я не нашел ответа на этот вопрос. Было бы не плохо его туда добавить.
Цитировать
Функция имитирует перемещение, но на самом деле объект не сдвигается ни на пискель. Применим её к нашей проблеме.

if(place_free(x, y+1))//если прямо под нами нет земли (блока) то...
{
gravity=1//...включаем гравитацию...
}
else//...иначе...
{
gravity=0//...выключаем
}
Не указано что это событие надо поместить в Шаг. Да, до этого в принципе и додуматься не сложно. =) Но все таки можно было и написать про это.
Записан
Chuvachok
Новичок
*

Репутация: 2
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 10


Я просто очень добрый человек


« Ответ #32 : Июнь 16, 2012, 17:43:08 »

Урок непонятен, я сделал всё что было сказано, у меня ничего не получилось, скачл исходник того что должно быть - там вообще всё по другому!
Записан
Kalbasen
Участник
****

Репутация: 5
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 201



« Ответ #33 : Ноябрь 25, 2014, 10:24:40 »

Здравствуйте, почитал уроки, перемещение описано для клавиатуры, расскажите как сделать перемещение по щелчку мыши, как в рпг =(
Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 821
Offline Offline

Пол: Мужской
Награды:
За постоянность! [500 дней на форуме]За лояльность! [+750 репутации]5000 сообщений!За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316



« Ответ #34 : Ноябрь 25, 2014, 15:21:06 »

Здравствуйте, почитал уроки, перемещение описано для клавиатуры, расскажите как сделать перемещение по щелчку мыши, как в рпг =(
И для этого вы написали свое сообщение в тему Школы гмл? Воспользуйтесь поиском и найдите ответ.
Записан
DiFiS
Новичок
*

Репутация: 0
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 2


« Ответ #35 : Октябрь 23, 2018, 21:15:55 »

При создании спрайтов, объектов и т.д. а так же, при добавлении объекта в комнату ему присваивается айди. А можно ли сделать так, что бы мой персонаж был всегда 1000001?
Записан
timmy
Пользователь
***

Репутация: 3
Offline Offline

API: GameMaker Studio Standard
Сообщений: 76


« Ответ #36 : Октябрь 23, 2018, 21:21:13 »

Нет, айди присваивается автоматически в порядке создания, и изменить его нельзя.
Функция создания объекта возвращает айди, правильно будет присвоить его в переменную и работать с ней.
Код:
car1 = instance_create(0, 0, o_car))
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.101 секунд. Запросов: 33.