0 / 0 / 0
Регистрация: 03.04.2019
Сообщений: 33
1

В SDL2 мне нужно создать окно и туда вставить предметы, но только создается окно а предметы не додаются

04.06.2019, 13:40. Показов 659. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И я не знаю что не так. Взял код с туториала.
Нужна ваша помощь
Мой код:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "pch.h"
#include "SDL.h"
#include <stdio.h>
#include "Common.h"
 
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
 
SDL_Window* window = nullptr;
SDL_Renderer* renderer = nullptr;
 
SDL_Texture* LoadImage(std::string file) 
{
    SDL_Surface *loadedImage = nullptr;
    SDL_Texture *texture = nullptr;
    loadedImage = SDL_LoadBMP(file.c_str());
    if (loadedImage != nullptr) {
        texture = SDL_CreateTextureFromSurface(renderer, loadedImage);
        SDL_FreeSurface(loadedImage);
    }
    else
        std::cout << SDL_GetError() << std::endl;
    return texture;
}
 
void ApplySurface(int x, int y, SDL_Texture* tex, SDL_Renderer* rend) 
{
    SDL_Rect pos;
    pos.x = x;
    pos.y = y;
    SDL_QueryTexture(tex, NULL, NULL, &pos.w, &pos.h);
    SDL_RenderCopy(rend, tex, NULL, &pos);
}
 
int main(int argc, char* argv[]) 
{
    if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {
        std::cout << SDL_GetError() << std::endl;
        return 1;
    }
    window = SDL_CreateWindow("PM", SDL_WINDOWPOS_CENTERED,
        SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (window == nullptr) {
        std::cout << SDL_GetError() << std::endl;
        return 2;
    }
    renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED
        | SDL_RENDERER_PRESENTVSYNC);
    if (renderer == nullptr) {
        std::cout << SDL_GetError() << std::endl;
        return 3;
    }
 
    SDL_Texture* player = LoadImage("Resources\Images\player.jpg");
    SDL_Texture* enemy = LoadImage("Resources\Images\enemy.jpg");
    SDL_Texture* puck = LoadImage("Resources\Images\puck.jpg");
 
    SDL_RenderClear(renderer);
 
    int bW, bH;
    SDL_QueryTexture(player, NULL, NULL, &bW, &bH);
    ApplySurface(0, 0, player, renderer);
    ApplySurface(bW, 0, player, renderer);
    ApplySurface(0, bH, player, renderer);
    ApplySurface(bW, bH, player, renderer);
    
    SDL_RenderPresent(renderer);
    SDL_Delay(2000);
    
    SDL_DestroyTexture(player);
    SDL_DestroyTexture(enemy);
    SDL_DestroyTexture(puck);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2019, 13:40
Ответы с готовыми решениями:

Любимые предметы школьников: какие предметы были названы и сколько учеников назвали каждый из них
Помогите пожалуйста написать код. Задание: Каждый из N школьников старших классов назвал свой...

Создать окно произвольного размера, скрыть окно, показать окно, удалить окно.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Для создания окна...

Создается окно и тут же закрывается. Как заставить окно оставаться рабочим открытым?
Как заставить окно оставаться рабочим открытым? Скопировал с одного исходника код (с++ WinApi) для...

Как создать окно и вывести туда картинку?
Добрый день. 1)Подскажите пожалуйста простым рабочим примером с пояснением,как создать простое...

1
87 / 107 / 6
Регистрация: 16.04.2019
Сообщений: 444
Записей в блоге: 4
04.06.2019, 14:31 2
Цитата Сообщение от vovamakarovych Посмотреть сообщение
loadedImage = SDL_LoadBMP(file.c_str());
Use this function to load a surface from a BMP file.
Цитата Сообщение от vovamakarovych Посмотреть сообщение
Resources\Images\player.jpg
Вам нужно использовать это. Или написать свою собственную функцию для загрузки JPG формата.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2019, 14:31
Помогаю со студенческими работами здесь

Задача о ранце. Как узнать какие предметы нужно положить?
Как можна узнать какие предмети входять в ранец ? #include &lt;iostream&gt; #include &lt;vector&gt;...

Какие предметы нужно сдавать на гиа и егэ, чтобы поступить на программиста?
Добрый вечер пользователи,я бы хотел узнать какие предметы нужно сдавать на гиа и на егэ кроме...

Нужно чтоб програма находила на видео элипсы(любые предметы этой формы)
только начал изучать java, на питоне это выглядит так: import sys import numpy as np import cv2...

Нужно, чтобы обе кнопки мыши работали с функцией Push но откидывали предметы в разные стороны
Мне понадобилось сделать что-то на подобии кликера, для этого у меня всё есть. Но мне нужно что бы...

Какие предметы нужно изучать в ВУЗе для того чтобы стать специалистом по информационной безопасности ?
Какие предметы нужно изучать в ВУЗе для того чтобы стать специалистом по информационной...

Нужно закрыть модальное окно и сделать активным вызвавшее его окно
Мне нада средствами Win API закрыть модальное окно и сделать активным вызвавшее его окно. Кто знает...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru