Среда, 18 Декабря 2024, 13:22

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (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, нет изменить маску во время самой игры.
Поиск:

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