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

Крестики нолики на SDL - не выводится крестик - C++

Восстановить пароль Регистрация
 
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
27.09.2013, 18:11     Крестики нолики на SDL - не выводится крестик #1
Программа выводит игровое поле на экран и реагирует на нажатия каждого и 9 квадратов.
Но при нажатии должен выводиться крестик, а он почему-то не выводится
Может, кто знает, в чем дело?

// Определение функции обработки событий нажатия
C_Events.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "C_Events.h"
#include "C_MainCicle.h"
 
void C_Events::buttonEvents(SDL_Event* o_event_C_Events, int numberOfButton, bool isItPlayer, C_InitSurfaces *p) {
    int x = o_event_C_Events -> button.x;
    int y = o_event_C_Events -> button.y;
        
    C_GameCicle o_mainCicle_C_Events;
 
        if(o_event_C_Events -> type == SDL_MOUSEBUTTONDOWN)
           if(o_event_C_Events -> button.button == SDL_BUTTON_LEFT)
                if((x > o_rect_C_Events.x) && (x < o_rect_C_Events.x + o_rect_C_Events.w) &&
                   (y > o_rect_C_Events.y) && (y < o_rect_C_Events.y + o_rect_C_Events.h))
                    switch(numberOfButton) {
 
                    case 1: SDL_WM_SetCaption("1", NULL);   // Тестирование события нажатия первого квадрата
                        if(isItPlayer == true) {
                            o_drawScene_C_Events.drawScene
                                (o_mainCicle_C_Events.get_o_InitSurfaces(),
                                 &o_mainCicle_C_Events.o_loadImages_C_GameCicle,
                                 _button_00_X);             // Здесь должен выводиться ..
                            SDL_Flip(p -> getScreen());     // .. крестик
                        }
                        else {
                            o_drawScene_C_Events.drawScene
                                (o_mainCicle_C_Events.get_o_InitSurfaces(),
                                 &o_mainCicle_C_Events.o_loadImages_C_GameCicle,
                                 _button_00_Y);
                            SDL_Flip(p -> getScreen());
                        }
                        break; }
C_Events.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#pragma once
 
#include "C_LoadImages.h"
#include "C_DrawScene.h"
#include "C_InitSurfaces.h"
#include "SDL.h"
#include <Windows.h>
 
class C_Events {
 
  public:
 
      C_DrawScene o_drawScene_C_Events;
      
      C_Events() : x(0), y(0), w(0), h(0) {}
      C_Events(int xParam, int yParam, int wParam, int hParam)
                 : x(xParam), y(yParam), w(wParam), h(hParam) {
        o_rect_C_Events.x = x;
        o_rect_C_Events.y = y;
        o_rect_C_Events.w = w;
        o_rect_C_Events.h = h;
      }
 
    void buttonEvents(SDL_Event*, int, bool, C_InitSurfaces*);   // Объявление функции обработки событий нажатия
    SDL_Event* getEvent() { return &o_SDL_Event_C_SceneElements; }
 
  private:
 
    SDL_Event o_SDL_Event_C_SceneElements;
    SDL_Rect o_rect_C_Events;
    int x, y, w, h;
 
    enum {_button_00_X, _button_01_X, _button_02_X,
          _button_10_X, _button_11_X, _button_12_X,
          _button_20_X, _button_21_X, _button_22_X,
 
          _button_00_Y, _button_01_Y, _button_02_Y,
          _button_10_Y, _button_11_Y, _button_12_Y,
          _button_20_Y, _button_21_Y, _button_22_Y };
};

Вызов функции обработки событий нажатия
C++
1
o_button_1.buttonEvents(getEvent(), 1, isItPlayer, p);
Миниатюры
Крестики нолики на SDL - не выводится крестик  
Вложения
Тип файла: 7z XO.7z (964.8 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 18:11     Крестики нолики на SDL - не выводится крестик
Посмотрите здесь:

Крестики-нолики C++
C++ Крестики нолики
C++ Крестики-нолики
C++ Крестики-нолики
C++ Крестики нолики
Крестики нолики C++
Крестики нолики C++
C++ Крестики-нолики

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru