Пятница, 27 Декабря 2024, 06:16

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Изменение здоровья и жизней при столкновении с врагом
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 пиши
Код
attacktime=true
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


нужно удалить
Код
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
  • Страница 1 из 1
  • 1
Поиск:

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