Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2019, 13:38   #1
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 16
По умолчанию В SDL2 мне нужно создать окно и туда вставить предметы, но только создается окно а предметы не додаются

И я не знаю что не так. Взял код с туториала.
Нужна ваша помощь
Мой код:
Код:
#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;
}
vovamakarovych вне форума Ответить с цитированием
Старый 04.06.2019, 22:45   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Самоудалено
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выбрать cпециальность, только в том случае, если сданы предметы, необходимые для этой специальности Elsveir Microsoft Office Access 5 10.03.2013 13:22
Обучить каскад Хаара находить сложные предметы ZelenuiBeret Visual C++ 0 13.02.2013 06:04
Как вставить текущее время в окно программы? toxid13 Помощь студентам 4 17.06.2011 18:59
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28