Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
#1

Не исчезают сердца при потере жизни в игре - C++

23.10.2013, 13:08. Просмотров 1331. Ответов 46
Метки нет (Все метки)

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

Структура со счетчиком жизни и методами для работы с ним
// file1.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct DrawScene {    
      DrawScene() : livesOfPlayer(MAXIMUM_LIVES) {}
 
        int getLivesOfPlayer()
        { return livesOfPlayer; }
 
    void livesOfPlayerMinuse()
        { livesOfPlayer--; }
 
    void setLivesOfPlayerToMax()
        { livesOfPlayer = MAXIMUM_LIVES; }
  private:
      int livesOfPlayer;
          enum { MAXIMUM_LIVES = 3 };
}
Проверка количесова жизней и отрисовка сердец
// file1.cpp
C++
1
2
3
4
5
6
7
8
9
10
someFunc1() {
        if (livesOfPlayer == 3)  // Выполняется только это условие
        // Отображение трех сердец
 
    else if (livesOfPlayer == 2)  // До сюда компилятор не доходит
        // Отображение двух сердец
 
    else if (livesOfPlayer == 1)
        // Отображение одного сердца
}
// file2.cpp
C++
1
2
3
4
5
6
7
void someFunc2() {
        if (isButtonPressed == false)  // Если на кнопку не нажали, одна жизнь пропадает
        o_DrawScene.livesOfPlayerMinuse();
 
    if (o_DrawScene.getLivesOfPlayer() <= 0)    // Если жизни закончились
        o_DrawScene.setLivesOfPlayerToMax();
}
Если в констукторе вручную задать 1,2,3 то столько сердец и отображается, тут все нормально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 13:08     Не исчезают сердца при потере жизни в игре
Посмотрите здесь:

Почему исчезают вкладки при нажатии на Esc? - C++
Здравствуйте! Создаю вкладки с использованием Tab Control'а в VC6. Все нормально, но вот только при нажатии на Esc (или Enter) ...

Запрограммировать простейшую цепь генератора сердца - C++
Доброго времени суток! Помогите, пожалуйста! Не пойму, как можно запрограммировать простейшую цепь генератора сердца rlc. Выводы...

Падает FPS в игре на Ubuntu при зажатии клавиши - C++
Падает FPS в игре на Ubuntu при зажатии клавиши, даже если клавиша не описана в коде . Просто у меня там прыгает шарик отличный fps(все...

Учет очков, набранных каждой командой при игре в баскетбол - C++
буду благодарен! Составить программу, которая ведет учет очков, набранных каждой командой при игре в баскетбол. Количество очков,...

Программа, суммирующая штрафное время команд при игре в хоккей - C++
Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд после...

Составить программу, подсчитывающую число удалений в каждой команде при игре в хоккей - C++
Составить программу, подсчитывающую число удалений в каждой команде при игре в хоккей. После каждого удаления выводить на экран фамилию...

Калькулятор жизни С++ - C++
Есть ли у кого исходник данного калькулятора?(консольное приложение) Все никак не получается написать, если кого интерисует могу скинуть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
25.10.2013, 08:24  [ТС]     Не исчезают сердца при потере жизни в игре #41
Цитата Сообщение от Cra3y Посмотреть сообщение
но я нуб в программировании...
Как и все мы
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
25.10.2013, 11:15     Не исчезают сердца при потере жизни в игре #42
ты походу сцену не перерисовываешь вообще, залей перед рисованием все каким то цветом сначала (SDL_FillRect)
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
25.10.2013, 11:17  [ТС]     Не исчезают сердца при потере жизни в игре #43
Цитата Сообщение от Raali Посмотреть сообщение
ты походу сцену не перерисовываешь вообще, залей перед рисованием все каким то цветом сначала
Да все, уже разобрались, надо было указатели использовать
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2013, 13:40     Не исчезают сердца при потере жизни в игре #44
Цитата Сообщение от dimakozyr Посмотреть сообщение
Да все, уже разобрались, надо было указатели использовать
Дело там не в указателях, а в невнимательности и непродуманности кода.
Цитата Сообщение от dimakozyr Посмотреть сообщение
А что не так с кодом? Не считая двух вышеописанный замечаний.
Правда интересно, просто как по мне - это хороший код, но
может, я не замечаю чего-либо?
По-моему мнению, отвратительный код. Только и остаётся, что периодически костыли подставлять. Я когда-то уже предлагал его заново переписать.

Не по теме:

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

Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
25.10.2013, 13:45     Не исчезают сердца при потере жизни в игре #45
Цитата Сообщение от alsav22 Посмотреть сообщение
непродуманности кода.
в DrawScene уж точно не нужно держать жизни игрока
и вообще нужно разграничивать Update и Render
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2013, 14:04     Не исчезают сердца при потере жизни в игре #46
dimakozyr, зачем вам в SceneElements объект o_DrawScene, если в коде используется o_DrawScene из класса GameCicle (из-за этого, + невнимательность, и не работало)?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 17:27     Не исчезают сердца при потере жизни в игре
Еще ссылки по теме:

Из жизни студента C++ - C++
требуться ли начинающему программисту C++ самому писать сортировку массивов(полностью понимать чтобы аж с закрытыми глазами писать) или же...

Матан в жизни программиста - C++
Добрый день уважаемые коллеги. Поделитесь опытом, на сколько вам реально пригодилась матем из вышки. Как часто сталкиваетесь с...

Время жизни объектов - C++
Вроде простая вещь, а не могу понять почему так. #include &lt;iostream&gt; using namespace std; int* f() { int a = 7; int...

C++11 время жизни переменных - C++
После долгого перерыва в программирование вновь спохватился и тут наткнулся на такую не ожиданность #include &lt;iostream&gt; using...

Вопрос жизни и смерти.. - C++
Парни помогите кто хорошо знает С++ просто если я к понидельнику не сдам ету програму мне прийдет писец... Вот собственно задание: ...


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

Или воспользуйтесь поиском по форуму:
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
25.10.2013, 17:27  [ТС]     Не исчезают сердца при потере жизни в игре #47
Цитата Сообщение от alsav22 Посмотреть сообщение
Я когда-то уже предлагал его заново переписать.
Не по теме:
И таймер жалко... Такой хороший был, и столько времени на его запуск было потрачено...
Да я-же не против, только знать-бы как и чем код плох.
А к таймеру я еще вернусь, я его ненадолго отложил

Цитата Сообщение от alsav22 Посмотреть сообщение
зачем вам в SceneElements объект o_DrawScene, если в коде используется o_DrawScene из класса GameCicle (из-за этого, + невнимательность, и не работало)?
Да, тут уже невнимательность

Приложил UML, можете посоветовать, что тут можно сделать лучше и проще?
И вообще интересно узнать все, что может сделать код лучше: синтаксис, структуру классов, в общем, все
Миниатюры
Не исчезают сердца при потере жизни в игре  
Yandex
Объявления
25.10.2013, 17:27     Не исчезают сердца при потере жизни в игре
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru