Вопрос - Ответ (Game Maker)
| |
Stron | Дата: Воскресенье, 19 Июля 2015, 15:35 | Сообщение # 5441 |
был не раз
Сейчас нет на сайте
| помогите пожалуйста с выводом очков жизни в комнату. команда
Код draw_self (); /*рисуется сам игрок*/ draw_text (10,10, string (bonus) ); /*вывод текста в самом игроке.*/
Проблема в том, что в редакторе сточка draw_self (); почему-то красная и ошибочная. Эти две строчки пишутся в категории "Объекты". В 1 объекте создал событие Draw. В нем пишут этот код.
Туториал по которому учусь https://www.youtube.com/watch?v=792nm00MAxU
Все получилось кроме вывода очков жизни и бонуса.
Сообщение отредактировал Stron - Воскресенье, 19 Июля 2015, 15:41 |
|
| |
YellowAfterlife | Дата: Воскресенье, 19 Июля 2015, 15:43 | Сообщение # 5442 |
Сейчас нет на сайте
| Цитата Stron ( ) Проблема в том, что в редакторе сточка draw_self (); почему-то красная и ошибочная. draw_self() есть лишь в версии 8.1 и выше. В более старых версиях его можно заменить draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha); (можно создать script с названием "draw_self" и вставить код туда для удобства)
|
|
| |
Stron | Дата: Воскресенье, 19 Июля 2015, 15:47 | Сообщение # 5443 |
был не раз
Сейчас нет на сайте
| Спасибо, заработало. Стоит ли искать где скачать 8.1 версию или пока в 8.0 pro оставаться? Где можно скачать исходные примерчики готовых игр в формате Geme meker 8.0 ? Или готовые макро блоки кода?
Сообщение отредактировал Stron - Воскресенье, 19 Июля 2015, 15:48 |
|
| |
YellowAfterlife | Дата: Воскресенье, 19 Июля 2015, 16:02 | Сообщение # 5444 |
Сейчас нет на сайте
| Цитата Stron ( ) Спасибо, заработало. Стоит ли искать где скачать 8.1 версию или пока в 8.0 pro оставаться? Где можно скачать исходные примерчики готовых игр в формате Geme meker 8.0 ? Или готовые макро блоки кода? Вообще стоит перебираться на GameMaker: Studio - его регулярно обновляют, и бесплатная (выдаваемая по адресу почты) версия по функционалу превосходит 8.0\8.1. О примерах - сайтов с ними полным-полно. Стоит искать что-то конкретное. Для GM:S еще есть раздел на marketplace с готовыми проектами. Платность зачастую подразумевает более высокое качество кода чем в примерах "в открытом доступе" и можно смотреть по отзывам.
|
|
| |
Stron | Дата: Воскресенье, 19 Июля 2015, 16:05 | Сообщение # 5445 |
был не раз
Сейчас нет на сайте
| В соседней ветке с поста №2 скачал примерчики. Там машина едет, а задний фон как бы двигается . Как такое делается? http://gcup.ru/go?http://narod.ru/disk/13562424001/PACK1.rar.html
|
|
| |
YellowAfterlife | Дата: Воскресенье, 19 Июля 2015, 16:15 | Сообщение # 5446 |
Сейчас нет на сайте
| Цитата Stron ( ) В соседней ветке с поста №2 скачал примерчики. Там машина едет, а задний фон как бы двигается . Как такое делается? http://gcup.ru/go?http://narod.ru/disk/13562424001/PACK1.rar.html Вкладка "виды" (views) в комнате (room) [ перевод справки]
|
|
| |
Stron | Дата: Воскресенье, 19 Июля 2015, 18:26 | Сообщение # 5447 |
был не раз
Сейчас нет на сайте
| Спс, хорошая статья про то окно.
Как можно аксонометрическую проекцию сделать, потом ставить например куб на поле из мелких аксонометрических ромбиков. То есть сетка в аксонометрии например 200х200. Куб 10х10. Если поставить второй куб, за первым, то они должны соединятся только основаниями. То есть ближний куб перекрывает дальний.
Элемент игры- Нужно брать из некоторого окна разблокированное здание и ставить на аксонометрическое поле.
Добавлено (19 июля 2015, 18:26) --------------------------------------------- Возник вопрос: строчка не работает дебагер ругается на z
Код d3d_set_projection(x+25,y+100,z+50, x,y,z, 0,0,1)
на эту строчку не ругается
Код d3d_set_projection(x,y-100,50, x,y,0, 0,0,1)
Дебагер пишет ERROR in action number 1 of Draw Event for object obj_plaer:
Error in code at line 1: d3d_set_projection(x+25,y+100,z+10, x,y,z, 0,0,1) // 2 урок ^ at position 31: Unknown variable z
вообщем весь код такой:
в Creat
Код
d3d_start();
//источник света внутри нас, подсветка. d3d_set_lighting(true)
d3d_light_enable(1,true)
x = 0 // 2 урок zspeed = 0 // 2 урок jump = 0 // 2 урок
// d3d_light_define_point(1,x,y-100,50, 9999, c_white) // 1 урок
d3d_light_define_point(1,x,y,z, 9999, c_white) // 2 урок
Step
Код //навигация if keyboard_check(vk_up) then y += 5 if keyboard_check(vk_down) then y -= 5 if keyboard_check(vk_left) then x += 5 if keyboard_check(vk_right) then x -= 5 // 2 урок начало if keyboard_check_pressed (vk_space) && jump = 0 then { jump = 1 zspeed = 8}
if jump = 1 then { z += zspeed zspeed -= 0.5 if z <= 0 then {z=0 zspeed=0 jump=0} }
// 2 урок конец // d3d_light_define_point(1,x,y-100,50, 9999, c_white) //исочник света внутри нас 1 урок d3d_light_define_point(1,x,y,z, 9999, c_white) //исочник света внутри нас 2 урок
Draw
Код d3d_set_projection(x+25,y+100,z+50, x,y,z, 0,0,1) // 2 урок
// d3d_set_projection(x,y-100,50, x,y,0, 0,0,1) // 1 урок
draw_set_color(c_white)
d3d_draw_ellipsoid(x-5,y-5,0, x+5,y+5,10, -1,1,1,20) // 1 урок
d3d_set_lighting(false) d3d_draw_floor(0,0,0, room_width, room_height,0, background_get_texture(tex),5,5) d3d_set_lighting(true)
И вот на эту версию кода ругается дебагер так:
Код ERROR in action number 1 of Create Event for object obj_plaer:
Error in code at line 16: d3d_light_define_point(1,x,y,z, 9999, c_white) // 2 урок ^ at position 31: Unknown variable z
Если закоменнировать 3 сточки 2 урока и разкомментировать 1 урок, то все работает.
Сообщение отредактировал Stron - Воскресенье, 19 Июля 2015, 18:54 |
|
| |
King | Дата: Воскресенье, 19 Июля 2015, 19:29 | Сообщение # 5448 |
участник
Сейчас нет на сайте
| Stron, смею предположить, что нужно объявить переменную "z" в событии создания
Nothing is true, everything is permitted. Shadows Games
|
|
| |
Stron | Дата: Понедельник, 20 Июля 2015, 04:45 | Сообщение # 5449 |
был не раз
Сейчас нет на сайте
| Спс, заработало. Я не понимаю логику скрипта. переменная "y" не объявлена, но ошибки не появляется. Почему так?
Создаю меню, что бы когда игра на паузе и показывается комната меню, что бы прогресс сохранялся.
Пользуюсь прогаммой action decoder. В ней создал две строчки: Код game_save(gamesave.prod)
game_load(gamesave.prod)
Но в видеоуроке не показывается где эта программа должна лежать. У меня она не в корневом каталоге Гейм Меркер.
Поэтому не работает промежуточное сохранение в отдельный файл.
Подробности:
При нажатии Escape должен выполнится код Код game_save(gamesave.prod)
А при нажатии спрайта в комнате "меню" должен выполнится код Код game_load(gamesave.prod)
Если в самом Геме Мейкере пользоваться этой функцией Save и Load, то все работает. Вопрос- зачем пользоваться этой программой в видеоуроке?
Сообщение отредактировал Stron - Понедельник, 20 Июля 2015, 08:02 |
|
| |
skypo | Дата: Понедельник, 20 Июля 2015, 07:53 | Сообщение # 5450 |
участник
Сейчас нет на сайте
| Цитата Stron ( ) Я не понимаю логику скрипта. переменная "y" не объявлена, но ошибки не появляется. Почему так? есть предопределенный набор переменных, которые создаются с объектом всегда. х и у в т.ч.. скрипт берет их из объекта, откуда вызываешь
Последний готовый проект: флэппиберд с яйцами "Rescue Bird"(скачать с GooglePlay) В разработке: 3-в-ряд "Корабельная команда", рогалик "Живой Мир", квест "Экипаж "Солнечной" (ждите на КРИЛ-15!)
|
|
| |
LunarPixel | Дата: Понедельник, 20 Июля 2015, 08:52 | Сообщение # 5451 |
старожил
Сейчас нет на сайте
| Stron, не имеет значения, где лежит action decoder, он просто преобразует иконки в код, для тех, кто код не может написать самостоятельно. Полученный в программе код потом копируется и вставляется в Game Maker в нужное тебе событие, вместо тех самых иконок. Думаю, стоит тебе отказаться от таких видеоуроков.
Если тебе нужно сохранять прогресс непосредственно на время паузы, при этом пауза - это переход в другую комнату. То просто сделай игровую комнату постоянной (достаточно поставить одну галочку в настройках комнаты, гугли game maker room persistent). После этого, когда ты покинешь комнату, а затем вновь в нее вернешься, в ней все сохранится так, как было до момента ухода.
|
|
| |
Stron | Дата: Четверг, 23 Июля 2015, 09:38 | Сообщение # 5452 |
был не раз
Сейчас нет на сайте
| кто-нибудь пользуется GM: S ? Добавлено (23 июля 2015, 09:38) --------------------------------------------- Подскажите, пожалуйста, как создать вылетающий снаряд из вращающейся башни.
Башня уже есть, вращается плавно. Как я понял надо как-то сделать что бы снаряд появлялся и начинал двигаться из края спрайта то есть из края дула, причем определялись текущие координаты именно края спрайта(дуло) пушки.
Сообщение отредактировал Stron - Понедельник, 20 Июля 2015, 14:48 |
|
| |
Somaha | Дата: Четверг, 23 Июля 2015, 14:38 | Сообщение # 5453 |
частый гость
Сейчас нет на сайте
| Удалено..
Сообщение отредактировал Somaha - Вторник, 28 Июля 2015, 14:22 |
|
| |
Transced | Дата: Среда, 29 Июля 2015, 13:08 | Сообщение # 5454 |
TransceD = Game Maker
Сейчас нет на сайте
| Вот почему когда я делаю один объект физическим то когда он сталкивается с не физическими объектами ничего не происходит, даже переменная своего значения не меняет.
|
|
| |
YellowAfterlife | Дата: Среда, 29 Июля 2015, 13:19 | Сообщение # 5455 |
Сейчас нет на сайте
| Цитата Transced ( ) Вот почему когда я делаю один объект физическим то когда он сталкивается с не физическими объектами ничего не происходит, даже переменная своего значения не меняет. Физические объекты выбрасывают события столкновения лишь при столкновении с другими физическими объектами. Заменить можно проверкой в шаге, так (если сущность сталкивающегося объекта не интересует): if (place_meeting(x, y, obj_some)) { // ... } или так (если интересует но одна за раз): var inst; inst = instace_place(x, y, obj_some); if (inst) { // (в inst хранится id другого объекта) } или так (если интересуют и все): with (obj_some) if (place_meeting(x, y, other)) { // переменные вызывающего код объекта находятся в other }
Сообщение отредактировал YellowAfterlife - Среда, 29 Июля 2015, 13:19 |
|
| |
Transced | Дата: Среда, 29 Июля 2015, 16:12 | Сообщение # 5456 |
TransceD = Game Maker
Сейчас нет на сайте
| YellowAfterlife, спасибо, понял. Добавлено (29 июля 2015, 13:56) --------------------------------------------- есть еще вопрос вот я на физический объект посылаю импульс в движение как сделать на проверку что ипульс уже закончил свое воздействие. Использую physics_apply_impulse Добавлено (29 июля 2015, 16:12) --------------------------------------------- и еще вопрос как изменить физическую маску столкновений
|
|
| |
Rs11 | Дата: Четверг, 30 Июля 2015, 19:31 | Сообщение # 5457 |
был не раз
Сейчас нет на сайте
| люди подскажите гм может как нибудь узнать количество свободной памяти на диске?
Сообщение отредактировал Rs11 - Четверг, 30 Июля 2015, 19:51 |
|
| |
YellowAfterlife | Дата: Четверг, 30 Июля 2015, 20:58 | Сообщение # 5458 |
Сейчас нет на сайте
| Цитата Transced ( ) есть еще вопрос вот я на физический объект посылаю импульс в движение как сделать на проверку что ипульс уже закончил свое воздействие. Использую physics_apply_impulse Можно следить за самой физической скоростью (phy_speed_x\y).
Цитата Transced ( ) и еще вопрос как изменить физическую маску столкновений Окно настройки маски столкновений вызывается по нажатию кнопки "Modify Collision Shape" в секции настроек физических переменных объекта.
Цитата Rs11 ( ) люди подскажите гм может как нибудь узнать количество свободной памяти на диске? Существует DLL-ка для этого. Для записи файлов есть отдельный трюк, что сейчас пользуется во многих программах (включая Steam) - создать пустой файл указанного размера. Если операция прошла успешно, после содержимое заменяется на "настоящее". Это так же избавляет от потенциальных проблем в случае исчерпания пространства на диске другим ПО во время записи.
Сообщение отредактировал YellowAfterlife - Четверг, 30 Июля 2015, 20:59 |
|
| |
Rs11 | Дата: Четверг, 30 Июля 2015, 21:16 | Сообщение # 5459 |
был не раз
Сейчас нет на сайте
| спасибо я так понимаю встроенного нету ничего подобного...
Сообщение отредактировал Rs11 - Четверг, 30 Июля 2015, 22:13 |
|
| |
Transced | Дата: Четверг, 30 Июля 2015, 22:44 | Сообщение # 5460 |
TransceD = Game Maker
Сейчас нет на сайте
| Цитата YellowAfterlife ( ) Цитата Transced () и еще вопрос как изменить физическую маску столкновений
Окно настройки маски столкновений вызывается по нажатию кнопки "Modify Collision Shape" в секции настроек физических переменных объекта. YellowAfterlife, нет изменить маску во время самой игры.
|
|
| |
|