Пятница, 29 Марта 2024, 09:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Передвижение персонажа
Передвижение персонажа
nekroo98Дата: Среда, 07 Марта 2012, 02:40 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Как сделать передвижение обьекта на 100 пикселей вверх, по нажатию кнопки? Тоесть, тыкнул 1 раз кнопку, отпустил её, а обьект движется и останавливается через 100 пикселей. И не прыжок, а плавно?
GameMixДата: Среда, 07 Марта 2012, 09:12 | Сообщение # 2
старожил
Сейчас нет на сайте
nekroo98, пример. Думаю, там и без комментов можно разобраться.

Steel Standoff - 2D аркада.
Мои статьи
nekroo98Дата: Среда, 07 Марта 2012, 22:33 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Благодарствую.

Добавлено (07.03.2012, 22:33)
---------------------------------------------
ещё такой момент.
есть обьект, в обьекте событие "клик ЛКМ" в клике кусок кода v:=1; при клике переменная v не изменяет значения.
переменная v прописывается при создании обьекта, со значением 0. Где косяк?


Сообщение отредактировал nekroo98 - Среда, 07 Марта 2012, 22:34
LunarPixelДата: Среда, 07 Марта 2012, 22:40 | Сообщение # 4
старожил
Сейчас нет на сайте
nekroo98, а кликаешь то на объект в котором событие мыши используешь? happy

stingerДата: Среда, 07 Марта 2012, 22:44 | Сообщение # 5
участник
Сейчас нет на сайте
Поставь глобальное событие мыши
nekroo98Дата: Четверг, 08 Марта 2012, 03:59 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Quote
nekroo98, а кликаешь то на объект в котором событие мыши используешь?

именно

С глобальной вроде работает как надо

Добавлено (08.03.2012, 03:59)
---------------------------------------------
Еще вопрос:

Сделал я в событии Draw прорисовку хелсбара(здоровье), теперь не отображаются спрайты, ни при дввижении(анимация, включается при нажатии кнопки) ни простой, стоячий. Простой спрайт сделал так же в событии draw, но так не катит. Как вернуть анимацию при движении?

И ещё, можете обьяснить, почему глобальное нажатие мышки работает в моем случае, а простое - нет? На будущее. И разница в чем? Ато мало - ли баги всплывут, или ещё чего...

Сообщение отредактировал nekroo98 - Среда, 07 Марта 2012, 23:22
GameMixДата: Четверг, 08 Марта 2012, 05:28 | Сообщение # 7
старожил
Сейчас нет на сайте
Quote (nekroo98)
Сделал я в событии Draw прорисовку хелсбара(здоровье), теперь не отображаются спрайты, ни при дввижении(анимация, включается при нажатии кнопки) ни простой, стоячий. Простой спрайт сделал так же в событии draw, но так не катит. Как вернуть анимацию при движении?

В событии draw:
Code
draw_sprite(спрайт,-1,x,y);

Второй аргумент функции обозначает номер кадра спрайта.
-1 показывает, что будет отображаться не конкретный кадр спрайта, а все кадры по очереди, если скорость анимации > 0. Значит, анимация будет воспроизводиться.
Можно менять скорость анимации:
Code
image_speed = вещественное_число_от_0_до_1


Quote (nekroo98)
И ещё, можете обьяснить, почему глобальное нажатие мышки работает в моем случае, а простое - нет? На будущее. И разница в чем? Ато мало - ли баги всплывут, или ещё чего...

Глобальное нажатие кнопки мыши срабатывает при клике мышью в любом месте окна игры, а простое нажатие - только при клике по спрайту объекта, в котором стоит это событие.


Steel Standoff - 2D аркада.
Мои статьи
nekroo98Дата: Четверг, 08 Марта 2012, 05:45 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Ясненько, разобрался.

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

Вот исходник


Сообщение отредактировал nekroo98 - Четверг, 08 Марта 2012, 05:49
GameMixДата: Четверг, 08 Марта 2012, 07:08 | Сообщение # 9
старожил
Сейчас нет на сайте
nekroo98, не смущает, что в create Orc_Berserk'а хотелось присвоить vibor значение "99", а при рисовании показывает значение "0"?
GML - не Pascal и не Delphi.
vibor = 99; - так нужно присваивать значение переменной. Ошибка присвоения везде, поэтому чтобы не мучаться, можно воспользоваться кнопкой "Search for a string" вверху редактора кода. Работа с поиском и заменой.
А как правильно присваивать значение переменной здесь хорошо расписано.



Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал GameMix - Четверг, 08 Марта 2012, 07:23
nekroo98Дата: Четверг, 08 Марта 2012, 14:14 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Да я запомнил суть кода, не переживай happy

На счет присваивания - я просто проверял, вроде и так и так работает, но вам виднее, исправлюсь.

vibor:=99; при рисовании показывает именно 99, потому я и подумал что разницы нет.

Добавлено (08.03.2012, 14:14)
---------------------------------------------
Ну ок, подправил я код. Но проблема то не решена. Почему не срабатывает нажатие ЛКМ по спрайту?

LunarPixelДата: Четверг, 08 Марта 2012, 14:30 | Сообщение # 11
старожил
Сейчас нет на сайте
Присваивать переменные можно и так и так, поддерживаются оба синтаксиса. smile

nekroo98, попробуй включить виды в комнате, должно помочь. В настройках комнаты, перейди на вкладку ВИДЫ, там поставь две галочки и выбери объект за которым вид будет следить (можно сделать объект курсор, который следует за мышкой всегда, и прикрепить вид к нему) smile


nekroo98Дата: Среда, 14 Марта 2012, 15:54 | Сообщение # 12
почетный гость
Сейчас нет на сайте
-

Как сделать запрешение на нажатие клавиш, пока не закончится исполнение кода?

В данном случае, пока обьект не передвинется на 50 пикселей

Добавлено (14.03.2012, 13:05)
---------------------------------------------
Еще проблемка есть много обьектов, у каждого есть параметр hp, по нажатию ЛКМ у первого считываются все параметры и записываются в обьект rar, потом выбираем кого атаковать, жмакаем alt, по альту записываются параметры второго обьекта и запускается скрипт расчета урона. Все отлично. только не меняется здоровье обьектов. rar.mob1.hp или mob1.hp не обрабатывается. (hp не записывается в rar, оно остается в самих обьектах). что можно сделать? или как сделать запись hp из rar обратно обьекту, именно тому из которого взяли? есть идентефикаторы обьектов какие-то может?

Добавлено (14.03.2012, 15:54)
---------------------------------------------
Вот исходник, посмотрите пожалуста, мне нужна ваша помощь. Там не очень много кода но он без комментариев. Если что спрашивайте, заодно может покритикуете.

Сообщение отредактировал nekroo98 - Среда, 14 Марта 2012, 15:52
stingerДата: Среда, 14 Марта 2012, 18:05 | Сообщение # 13
участник
Сейчас нет на сайте
Поставь
Code
if vspeed = 0

и дальше пиши что хочешь
nekroo98Дата: Среда, 14 Марта 2012, 18:17 | Сообщение # 14
почетный гость
Сейчас нет на сайте
это ты вообще к чему? Если про запрещение нажатия клавиш, то скажи лучше какая команда ЗАПРЕЩАЕТ их, или кусок кода там. Куда впихнуть то я уж придумаю happy

Сообщение отредактировал nekroo98 - Среда, 14 Марта 2012, 18:23
stingerДата: Среда, 14 Марта 2012, 18:33 | Сообщение # 15
участник
Сейчас нет на сайте
попробуй использовать триггеры
GameMixДата: Среда, 14 Марта 2012, 18:41 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (nekroo98)
Как сделать запрешение на нажатие клавиш, пока не закончится исполнение кода?

Пусть сначала клавиша будет заблокирована:
Code
mozno=false; // нельзя нажать клавишу

В конце выполнения кода:
Code
mozno=true; // можно нажать клавишу

В событии нажатия на клавишу проверяем:
Code
if mozno
   {
   // действия при срабатывании нажатия клавиши
   }


Steel Standoff - 2D аркада.
Мои статьи
nekroo98Дата: Среда, 14 Марта 2012, 18:52 | Сообщение # 17
почетный гость
Сейчас нет на сайте
да уж, все проще оказывается smile

А по вычитанию поинтов здоровья что посоветуете?

Например rar.mob.health считывается нормально, но ко многим обьектам его не сделаешь(
stingerДата: Среда, 14 Марта 2012, 19:03 | Сообщение # 18
участник
Сейчас нет на сайте
ты бы кинул исходник(мне казалось,что нельзя две точки ставить)
nekroo98Дата: Четверг, 15 Марта 2012, 20:17 | Сообщение # 19
почетный гость
Сейчас нет на сайте
дык а ссылка выше для чего?

Добавлено (14.03.2012, 19:34)
---------------------------------------------
Ну нет, там просто mob1.hp , точка одна. Просто health это такая глобальная чтоли переменая, цветом выделяется в коде. В rar.mob1 записывается название обьекта, по задумке, но на самом деле ничего туда не записывается, при выводе показывает что mob1 = 0. Как быть, шоделоть?

Добавлено (15.03.2012, 20:17)
---------------------------------------------
как вообще во всяких играх считывается здоровье у разных обьектов? хоть на том же ГМмэйкере? Например есть игра наемники карлслина, как то так называется. Может кто видел её исходники?

stingerДата: Четверг, 15 Марта 2012, 21:33 | Сообщение # 20
участник
Сейчас нет на сайте
в объект rar попробуй поставить событие press alt не знаю,может сработает(я не очень понял,как твоя система работает)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Передвижение персонажа
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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