Пятница, 19 Апреля 2024, 08:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Изменение спрайта у объекта (При нажатии мышкой)
Изменение спрайта у объекта
MikhaeliДата: Четверг, 12 Июня 2014, 13:56 | Сообщение # 1
был не раз
Сейчас нет на сайте
Извиняюсь за возможно нубский вопрос, но с моим знанием английского в справке трудно копаться.
Так вот мне нужно что бы при нажатии на объект мышкой его спрайт менялся на другой, а так же нужна команда которая бы узнавала какой спрайт у объекта в данный момент.
Заранее благодарен)
KaramBinoДата: Четверг, 12 Июня 2014, 14:06 | Сообщение # 2
Karam Грозный
Сейчас нет на сайте
Вкладка main1, функция Sprite Change.
Если не ищешь легких путей, используй код:
Код
{sprite=твой спрайт}


SpeRdKeaRДата: Четверг, 12 Июня 2014, 14:12 | Сообщение # 3
KillerReborn
Сейчас нет на сайте
Цитата KaramBino ()
Вкладка main1, функция Sprite Change.
Если не ищешь легких путей, используй код:

Кнопки - путь идиота, а не легкий путь.
И еще: код, который дал великий плагиатер игр не будет работать корректно. Пиши так:
Код
sprite_index=спрайт

И ни в коем случае плюс KaramBino не ставь!


А звезды, будто мириады стрел,
Ловя на мушку силуэты снов.
Смеется и злорадствует любовь,
И мы с тобой попали в их прицел...
MikhaeliДата: Четверг, 12 Июня 2014, 14:20 | Сообщение # 4
был не раз
Сейчас нет на сайте
Цитата SpeRdKeaR ()
sprite_index=спрайт

то есть если я например делаю так, при нажатии на объект выполняется код, в коде написанно
Код
sprite_index = (спрайт на который я меняю)

то у меня получится что картинка заменится. Если я правильно понял.

А как узнать через код, какой спрайт в данный момент у объекта?
KaramBinoДата: Четверг, 12 Июня 2014, 14:22 | Сообщение # 5
Karam Грозный
Сейчас нет на сайте
Mikhaeli, никак. Сразу ставь объекту спрайт.

MikhaeliДата: Четверг, 12 Июня 2014, 14:35 | Сообщение # 6
был не раз
Сейчас нет на сайте
Цитата KaramBino ()
никак. Сразу ставь объекту спрайт.

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

Добавлено (12.06.2014, 14:35)
---------------------------------------------
Или есть такой вариант, сделать переменную, и так как я знаю что есть только два варианта спрайта у объекта, и что у объекта в любом случае изначально спрайт 1. То я изначально этой переменной задам число 0. При взаимодействии с объектом меняется как спрайт, так и значение этой переменной на единицу. При повторном взаимодействии идёт проверка чему равна переменная и в зависимости от того чему она равна она меняется на другое значение и спрайт тоже.

LunarPixelДата: Четверг, 12 Июня 2014, 14:36 | Сообщение # 7
старожил
Сейчас нет на сайте
Mikhaeli, аналогично через sprite_index.

Код
if sprite_index=спрайт1
sprite_index=спрайт2
else
sprite_index=спрайт1


MikhaeliДата: Четверг, 12 Июня 2014, 14:39 | Сообщение # 8
был не раз
Сейчас нет на сайте
Цитата LunarPixel ()
Mikhaeli, аналогично через sprite_index.

if sprite_index=спрайт1
sprite_index=спрайт2
else
sprite_index=спрайт1


Спасибо большое, и можно тогда ещё один вопрос, могу ли я узнавать Sprite_index первого объекта, из кода другого объекта?
SpeRdKeaRДата: Четверг, 12 Июня 2014, 14:39 | Сообщение # 9
KillerReborn
Сейчас нет на сайте
Mikhaeli, тогда пиши:
Код
if sprite_index=спрайт
{sprite_index=спрайт, на который меняешь}


А звезды, будто мириады стрел,
Ловя на мушку силуэты снов.
Смеется и злорадствует любовь,
И мы с тобой попали в их прицел...
KaramBinoДата: Четверг, 12 Июня 2014, 14:39 | Сообщение # 10
Karam Грозный
Сейчас нет на сайте
Mikhaeli, это же очевидно. Два раза действие проделай.

SpeRdKeaRДата: Четверг, 12 Июня 2014, 14:41 | Сообщение # 11
KillerReborn
Сейчас нет на сайте
Цитата Mikhaeli ()
Спасибо большое, и можно тогда ещё один вопрос, могу ли я узнавать Sprite_index первого объекта, из кода другого объекта?

Если правильно понял, тогда пиши в draw объекта, который проверяет:
Код
draw_text(0,0,''+string(объект, который проверяешь.sprite_index))


А звезды, будто мириады стрел,
Ловя на мушку силуэты снов.
Смеется и злорадствует любовь,
И мы с тобой попали в их прицел...
MikhaeliДата: Четверг, 12 Июня 2014, 14:51 | Сообщение # 12
был не раз
Сейчас нет на сайте
SpeRdKeaR, я хочу сделать радио кнопки, то есть если одна радио кнопка нажата, то другая должна стать отжатой.
SpeRdKeaRДата: Четверг, 12 Июня 2014, 14:53 | Сообщение # 13
KillerReborn
Сейчас нет на сайте
Mikhaeli, тогда:
[code]if объект, который проверяешь.sprite_index=спрайт
{и т.д.}


А звезды, будто мириады стрел,
Ловя на мушку силуэты снов.
Смеется и злорадствует любовь,
И мы с тобой попали в их прицел...
rgs_hakerДата: Четверг, 12 Июня 2014, 14:55 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Цитата Mikhaeli ()
у объекта есть спрайт, затем я его меняю при нажатии, а при повторном нажатии надо что бы он вернулся к старому спрайту


Создаеш спрайт с 2 кадрами вкл\выкл и в обьекте пишеш в Create
Код
global.chets = 0
image_speed=0
if global.chets = 0 {image_index=0}
if global.chets = 1 {image_index=1}


в Mouse Left Pressed

Код
if image_index=0
{
global.chets = 1;
image_index=1;
}
else
{
global.chets = 0;
image_index=0;
}


вот и все, очень простой код


_____
MikhaeliДата: Четверг, 12 Июня 2014, 15:19 | Сообщение # 15
был не раз
Сейчас нет на сайте
Цитата SpeRdKeaR ()
Mikhaeli, тогда:
[code]if объект, который проверяешь.sprite_index=спрайт
{и т.д.}

Спасибо, думаю теперь смогу реализовать что хочу, с меня плюсики всем кто реально помог smile

Добавлено (12.06.2014, 14:59)
---------------------------------------------

Цитата rgs_haker ()
Создаеш спрайт с 2 кадрами вкл\выкл и в обьекте пишеш в Create
Код
global.chets = 0
image_speed=0
if global.chets = 0 {image_index=0}
if global.chets = 1 {image_index=1}

в Mouse Left Pressed

Код
if image_index=0
{
global.chets = 1;
image_index=1;
}
else
{
global.chets = 0;
image_index=0;
}

вот и все, очень простой код


Спасибо, тоже неплохой вариант, но мне больше по душе тот, который предложили ранее smile

Добавлено (12.06.2014, 15:19)
---------------------------------------------
Никак не пойму где я напортачил, но когда пытаюсь запустить, он говорит что после If должен быть оператор присваивания(если я правильно понял ошибку).

Код
If obj_RadioBatton2.sprite_index = spr_RadioBattonOn
{
obj_RadioBatton2.sprite_index = spr_RadioBattonOff;
}
If obj_RadioBatton3.sprite_index = spr_RadioBattonOn
{
obj_RadioBatton3.sprite_index = spr_RadioBattonOff;
}
FоzzieДата: Четверг, 12 Июня 2014, 15:22 | Сообщение # 16
Король Гопов
Сейчас нет на сайте
Mikhaeli, Кинь ошибку. smile

MikhaeliДата: Четверг, 12 Июня 2014, 15:24 | Сообщение # 17
был не раз
Сейчас нет на сайте
и причём если я там поставлю = то он работает!

Добавлено (12.06.2014, 15:24)
---------------------------------------------
Fоzzie, at line 1 pos 4: Assignment operator expected

KaramBinoДата: Четверг, 12 Июня 2014, 16:20 | Сообщение # 18
Karam Грозный
Сейчас нет на сайте
Mikhaeli, наверно там и нужно =.

rgs_hakerДата: Четверг, 12 Июня 2014, 16:27 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
а где собстно else

Цитата Mikhaeli ()
Код
If obj_RadioBatton2.sprite_index = spr_RadioBattonOn
{
obj_RadioBatton2.sprite_index = spr_RadioBattonOff;
}
If obj_RadioBatton3.sprite_index = spr_RadioBattonOn
{
obj_RadioBatton3.sprite_index = spr_RadioBattonOff;
}


_____
MikhaeliДата: Четверг, 12 Июня 2014, 17:03 | Сообщение # 20
был не раз
Сейчас нет на сайте
Цитата rgs_haker ()
а где собстно else

чуток решил по другому сделать, теперь else не нужен. Меня просто удивило, что после if почему то вдруг надо ставить равно.

Добавлено (12.06.2014, 17:03)
---------------------------------------------
если кому интересно, то нашёл почему он там запрашивал значок присваивания, я написал If с большой буквы, а команда с маленькой, поэтому он решил что это переменная и не считал это функцией.
Так что будьте всегда осторожны с заглавными буквами biggrin

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Изменение спрайта у объекта (При нажатии мышкой)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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