Изменение здоровья и жизней при столкновении с врагом
|
|
tifaso | Дата: Суббота, 22 Февраля 2014, 14:15 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Система жизней в этой игре используется стандартная, а система здоровья была сделана в виде сердечек на экране. Вот исходник: medvejonok_kit.rar obj_kit это игрок там есть событие столкновение с объектом противника obj_emix1 так вот там что то не хочет работать. Вернее работает неправильно. Короче нужно сделать так что бы при столкновении с врагом отнималось одно сердечко система здоровья хранится в переменной global.kit. Но как по логике, когда остаётся последнее сердечко тогда отнимаем жизнь. В принципе там так и сделано, но в чём моя ошибка я так и не понял.
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
Сообщение отредактировал tifaso - Воскресенье, 23 Февраля 2014, 08:15 |
|
| |
HSP | Дата: Суббота, 22 Февраля 2014, 14:40 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Воу, Воу, чувак, я тут ничего не понял, но я знаю в чем проблема:
У тебя проверка столкновения с obj_emix1 идет 30 раз в секунду (скорость комнаты) и если персонаж с ним сталкивается, то у него отнимается 1 сердечко, но так как за 1/30 секунды персонаж не успевает выйти из столкновения, то сердечко отнимается еще раз
Добавлено (22.02.2014, 14:40) --------------------------------------------- Тебе нужно сделать, чтобы после получения урона игрок какое-то время не мог получать урон (а то он получает его очень быстро)
Сообщение отредактировал HSP - Суббота, 22 Февраля 2014, 14:40 |
|
| |
tifaso | Дата: Суббота, 22 Февраля 2014, 15:15 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Цитата HSP ( ) Тебе нужно сделать, чтобы после получения урона игрок какое-то время не мог получать урон А как это можно сделать?
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
|
|
| |
Quad69 | Дата: Суббота, 22 Февраля 2014, 15:22 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Создай в Create переменную attacktime=true И при столкновении с объектом пиши следующий код: Код if attacktime=true { //Действие при столкновении(например уменьшение жизней) alarm[2]=8 attacktime=false } В событии alarm 2 пиши
|
|
| |
LunarPixel | Дата: Суббота, 22 Февраля 2014, 15:39 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| maksim1221232, при такой конструкции не обязательно создавать переменную.
Можно сделать так:
Код if alarm[2]=-1 { //Действие при столкновении(например уменьшение жизней) alarm[2]=8 }
Ну и в Alarm 2 просто поставить комментарий //
|
|
| |
tifaso | Дата: Воскресенье, 23 Февраля 2014, 07:40 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Сделал с переменной этот способ мне больше нравится, но всё по прежнему никаких изменений. Так же попробовал написать и без переменной и опять же ничего не получилось. Вот результат: medvejonok_kit.rar
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
Сообщение отредактировал tifaso - Воскресенье, 23 Февраля 2014, 08:13 |
|
| |
Quad69 | Дата: Воскресенье, 23 Февраля 2014, 09:53 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Если вообще убрать в событии столкновения с emix1 отнятие жизней, то когда сталкиваешься с emix1 то здоровье все ровно уменьшается
|
|
| |
tifaso | Дата: Воскресенье, 23 Февраля 2014, 12:15 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Цитата maksim1221232 ( ) Если вообще убрать в событии столкновения с emix1 отнятие жизней, то когда сталкиваешься с emix1 то здоровье все ровно уменьшается Это да здоровье всё по прежнему уменьшается. Ну ясное дело что тут нужно как то замораживать событие столкновения с объектом emix1, но почему оно не работает я так и могу этого понять?
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
|
|
| |
Quad69 | Дата: Воскресенье, 23 Февраля 2014, 12:28 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| Пробуй в столкновение с emix1 поставить на первое место событие exit; Тогда код не должен выполнятся. Если при столкновении жизни все ровно уменьшаются, то тогда отнятие жизней происходит в другом событии
|
|
| |
tifaso | Дата: Воскресенье, 23 Февраля 2014, 12:38 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Попробовал, но я и без этого знал что жизни отнимаются только в этом событии. То есть при отключении события ничего не происходит.
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
|
|
| |
OpenGOO | Дата: Воскресенье, 23 Февраля 2014, 14:01 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| Как только ты в своём коде разбираешься -)
object: obj_kit
Collision Event with object obj_emix1:
из этого фрагмента
Код if global.kit is larger than 1 set variable global.kit relative to -1 if move is equal to 1 set the sprite to spr_kit_no_heatch_right with subimage 0 and speed 0.5 if move is equal to 0 set the sprite to spr_kit_no_heatch_left with subimage 0 and speed 0.5 exit this event
нужно удалить
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
tifaso | Дата: Воскресенье, 23 Февраля 2014, 15:19 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| Спасибо всё понял в чём была моя ошибка.
Мой сайт: http://tifaso.narod.ru/ Мои проекты: Cерия игр Hyougo; Медвежонок Кит; Argo Player; Text Manager
|
|
| |