Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/103: Рейтинг темы: голосов - 103, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 5
1

Как сделать смерть персонажа в 2D платформере?

13.05.2017, 22:11. Показов 20378. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В моём платформере есть отдельно канвас с панелью жизней. Всё работает хорошо, сердечки уменьшаются при попадании в персонажа снаряда, но когда сердечки исчезают полностью, то персонаж не умирает, а продолжает движение... Как сделать так что бы при наличии 0 сердечек, выходила менюшка что то вроде "End game"? Я не очень хорошо разбираюсь в C#, но что то понимаю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2017, 22:11
Ответы с готовыми решениями:

Смерть в 2D платформере
"Пишу" 2D платформер по одной статье 2014 года. Столкнулся с проблемой смерти персонажа при...

Прыжок персонажа в 2D платформере
Здравствуйте, пишу 2D платформер на C#, про XNA и MonoGame знаю, интересует именно WinForms. В...

Ищу человека для разработки физики персонажа в 2д платформере
Здравствуйте! Долго делаю проект и уходит надежда закончить его. Трудно признать, но моих знаний не...

Как сделать плавный прыжок в 2d платформере?
Я создал персонажа на основе этого урока и при прыжке он резко перемещается в верхнюю точку. ...

10
458 / 402 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
14.05.2017, 08:47 2
Покажите код. Так легче помочь будет.
0
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 5
14.05.2017, 11:04  [ТС] 3
Там много разных скриптов... Может просто подскажете, какую переменную написать, и как описать так (если сердечки=0, то, загружается сцена конец игры). По сути должно быть так, но я не знаю как это написать. Подскажите если это возможно.
0
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
14.05.2017, 17:48 4
Лучший ответ Сообщение было отмечено Алексей_20 как решение

Решение

Цитата Сообщение от Алексей_20 Посмотреть сообщение
Я не очень хорошо разбираюсь в C#, но что то понимаю.
Если коротко -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private int live = 3;
 
private void OnTriggerEnter2D(Collider2D other)
{
    LiveMove--;
}
 
public Update()
{
    if (Live <= 0/*кол-во сердечек < 0*/)
    {
        //загружаем меню
    }
}
1
0 / 0 / 0
Регистрация: 17.01.2017
Сообщений: 5
14.05.2017, 18:37  [ТС] 5
Цитата Сообщение от Serj190492 Посмотреть сообщение
Если коротко -
Огромнейшее вам спасибо, вы не представляете на сколько вы меня спасли и мою курсовую работу... Оказывается всё проще чем я думал. Спасибо!
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
14.05.2017, 20:12 6
Serj190492, и будет в Update каждый фрейм выводить окно.
0
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
14.05.2017, 20:24 7
Цитата Сообщение от ASDFD12 Посмотреть сообщение
каждый фрейм выводить окно
C#
1
2
3
4
5
6
7
public Update()
{
    if (Live <= 0)
    {
        SceneManager.LoadScene(0);
    }
}
Какое?

Добавлено через 2 минуты
Цитата Сообщение от ASDFD12 Посмотреть сообщение
и будет в Update каждый фрейм выводить окно
Можно конечно и не так, как я написал организовать... Я ж написал - ЕСЛИ КОРОТКО.
Думаю, общий ход мысли понятен, дальше под себя подстроить можно)
Я ж не знаю, как у человека устроено это самое "менюшка что то вроде "End game""
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
14.05.2017, 20:40 8
Serj190492, согласен) учитывая ЕСЛИ КОРОТКО +
Цитата Сообщение от Алексей_20 Посмотреть сообщение
Я не очень хорошо разбираюсь в C#, но что то понимаю.
0
458 / 402 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
14.05.2017, 20:48 9
Запихните if в ontriggerenter
0
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
14.05.2017, 20:52 10
Цитата Сообщение от Prog_maker Посмотреть сообщение
Запихните if в ontriggerenter
Или
C#
1
2
3
4
5
6
7
8
public Update()
{
    if (Live <= 0 && menuEnd.enabled == false)
    {
        Time.timeScale = 0;
        menuEnd.enabled = true; 
    }
}
Можно же так активировать UI?
0
458 / 402 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
14.05.2017, 21:24 11
Да не надо проверку в Update запихивать. ))))

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void OnTriggerEnter2D(Collider2D other)
{
    
    If (other.gameObject.tag == "Enemy")      // допустим
    {
        LiveMove--;
        if (Live <= 0)
        { 
            Die();
        }
   }
}
 
private void Die()
{
    if (menuEnd.enabled == false)
    {
       menuEnd.enabled = true;
    }
     .......
}
2
14.05.2017, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2017, 21:24
Помогаю со студенческими работами здесь

В упор не понимаю как сделать столкновение персонажа с объектами. Как мне это сделать?
//Source.cpp #include &lt;SFML/Graphics.hpp&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include...

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

Как сделать меню со снаряжением персонажа
как это вообще реализовать?? вот примеры ...

Как сделать так, чтобы в 2d платформере, когда игрок "напрыгивает" на объект - происходили какие-либо действия
Здравствуйте! Только начал погружаться в мир Unity и возникли некоторые трудности. При помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru