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

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

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

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

22.09.2013, 23:22. Просмотров 1419. Ответов 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;
                }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 23:22     SDL ошибка на событии обработки нажатия кнопки мыши
Посмотрите здесь:

SDL + C++ = Тормозит событие нажатия кнопки - C++
С помощью SDL создается поверхность. При нажатии на нее левой кнопкой мыши должно изменяться название окна программы, но оно изменяется...

Эмуляция нажатия клавиш для SDL - C++
Столкнулся с такой проблемой что на эмуляцию нажатия клавиш, SDL не реагирует. Точнее DOSBox. Пробовал 2 метода (WINAPI), оба не подходят....

Координаты точки нажатия мыши. - C++
С помощью OpenGL создаю окно. Нужно определить координаты куда я в этом окне кликнул мышкой.

Эмуляция нажатия мыши в свёрнутом окне - C++
Всем доброго времения суток. Задача следующая, необходимо сэмулировать нажитие мыши в свёрнутом окне. Обычным способом вроде бы это...

Ошибка в приложении sdl - C++
Начинаю разбираться в sdl. Написал фреймворк с графикой. Вижуал студия ошибок не показывает, но при компиляции выдает много ошибок,...

Обработка события нажатия клавиши мыши в консоли - C++
Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный исходник в консольном приложении когда нажимается левая кнопка он...

SDL, surface, font непонятная ошибка - C++
Почему-то при вызове следующих функций программа просто вылетает. Вопрос - почему? Без них утекает ~10-15 мб оперативки ежесекундно. Это...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2013, 23:08     SDL ошибка на событии обработки нажатия кнопки мыши #21
Оказался там ещё один screen (в C_DrawScene) и второй C_LoadImages (в C_DrawScene).
http://rusfolder.com/38148057
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
23.09.2013, 23:20  [ТС]     SDL ошибка на событии обработки нажатия кнопки мыши #22
Урааа, заработало. Спасибо, теперь можно наконец-то двигаться дальше

Добавлено через 44 секунды
Все, надо срочно закоммититься в гит
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2013, 23:53     SDL ошибка на событии обработки нажатия кнопки мыши #23
Цитата Сообщение от dimakozyr Посмотреть сообщение
теперь можно наконец-то двигаться дальше
Может наоборот? Вернуться и написать всё заново?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 23:56     SDL ошибка на событии обработки нажатия кнопки мыши
Еще ссылки по теме:

Имитация нажатия кнопки - C++
как программно сымитировать нажатие кнопки в программе нужно нажать кнопку PgUp а на клавиатуре ее нет как это можно сделать

Ожидание нажатия определенной кнопки - C++
Нужно чтобы при нажатии кнопки &quot;Enter&quot; происходило определенное действие. Подскажите как реализовать ожидание нажатия нужных кнопок,...

Создание формы после нажатия кнопки - C++
Мне нужно сделать так, чтобы форма создавалась только после нажатия кнопки (именно создавалась, то есть у меня уже есть готовая форма,...

Обработка нажатия/отжатия кнопки на WinApi! - C++
Подскажите хоть каким образом отловить команду нажатия или отжатия клавиши! Как например с клавиатурой WM_KEYDOWN/WM_KEYUP! ...

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


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

Или воспользуйтесь поиском по форуму:
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
23.09.2013, 23:56  [ТС]     SDL ошибка на событии обработки нажатия кнопки мыши #24
Цитата Сообщение от alsav22 Посмотреть сообщение
Может наоборот? Вернуться и написать всё заново?
Да ну, я и так уже второй раз переписываю
Тем более, я пока что не так уж и много смогу улучшить, нужно подучиться
Yandex
Объявления
23.09.2013, 23:56     SDL ошибка на событии обработки нажатия кнопки мыши
Ответ Создать тему
Опции темы

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