Форум программистов, компьютерный форум, киберфорум
Наши страницы

SDL ошибка на событии обработки нажатия кнопки мыши - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прекращена работа программы http://www.cyberforum.ru/cpp-beginners/thread960085.html
Здравствуйте)) У меня возникла такая вот проблема: мне задали написать программу,которая определяет количество дней от текущей даты до нового года и до дня рождения. В программе нужно использовать...
C++ Задача с использованием файловых потоков Создайте текстовый файл, содержащий сведения о пациентах глазной клиники: фамилия пациента, пол, возраст место проживания (город) диагноз. Напишите программу которая формирует двоичный файл каждый... http://www.cyberforum.ru/cpp-beginners/thread960082.html
C++ Класс прямоугольник исправить код
я написал код, не могу сделать один шаг в нем :( писал в Code Blocks нужно еще сравнить площади двух прямоугольников, и если равны - вывести соответствующее сообщение, и если не равны тоже ...
C++ Перенос цифр из одного текста в другой
Суть задачи: с клавиатуры вводится текст(я вставил только малую часть ибо он огромен) class Object0 { type = "UralWreck"; position = {4865.14, 2394.81, 0}; direction = 69; onFire =...
C++ Проверить сколько открывающихся скобок, и сколько закрывающихся http://www.cyberforum.ru/cpp-beginners/thread960069.html
Добрый вечер, в с++ рублю слабо, нужна помощь, как проверить количество скобок в выражении. т.е. вводится пример, и в нем скобки, проверить совпадает ли число "открывающихся" скобок с...
C++ Ступор в программе Сложение сделал, а вот как умножение и деление сделать не знаю... Можете так же подсказать, как выделить целую часть из полученного результата #include <iostream> using namespace std; class... подробнее

Показать сообщение отдельно
dimakozyr
158 / 25 / 1
Регистрация: 17.08.2013
Сообщений: 467

SDL ошибка на событии обработки нажатия кнопки мыши - C++

22.09.2013, 23:22. Просмотров 1524. Ответов 23
Метки (Все метки)

Не могу третий день разобраться. Использовал функцию SDL для обработки события нажатия левой кнопки мыши,
но как только компилятор доходит до строки с этой функцией (отметил комментарием), программа почему-то "вылетает"

Файл 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
#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_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);
    void scene_1_events();
    void scene_2_events();
    void scene_3_events();
    void scene_4_events();
  protected:
    SDL_Event o_SDL_Event_C_SceneElements;
  private:
    SDL_Rect o_rect_C_Events;
    int x, y, w, h;
};
Файл 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
#include "C_Events.h"
void C_Events::buttonEvents(SDL_Event* o_event_C_Events, int numberOfButton) {
    int x = o_event_C_Events -> button.x;
    int y = o_event_C_Events -> button.y;       
        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 0: // button "play"
                        SDL_WM_SetCaption("Play", NULL);                        
                        break;
                    case 1: // button "sound"
                        SDL_WM_SetCaption("Sound", NULL);                       
                        break;
                    case 2: // button "facebook"
                        ShellExecute(NULL, "open", "http://facebook.com",
                                     NULL, NULL, SW_SHOWNORMAL);
                        break;
                    case 3: // button "twitter"
                        ShellExecute(NULL, "open", "http://twitter.com",
                                     NULL, NULL, SW_SHOWNORMAL);
                        break;
                }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru