Сохранен 6
https://2ch.hk/gd/res/459005.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

SFML C++

 Ошибочка 29/11/17 Срд 00:34:34 #1 №459005 
image.png
main
#include <SFML/Graphics.hpp>
#include <iostream>
#include "Map.h"
using namespace sf;

class castle { //крепость
private:
float x, y;
public:
float w, h; //высота и ширина
int health; //количество здоровья
String file;
Image image;
Texture texture;
Sprite sprite;
castle(String FILE, float X, float Y, float W, float H) {
health = 100;
file = FILE;
w = W; h = H;
image.loadFromFile("images/"+FILE);
texture.loadFromImage(image);
sprite.setTexture(texture);
x = X; y = Y;
sprite.setTextureRect(IntRect(0, 0, w, h));
sprite.setPosition(x, y);
}
};


int main()
{
RenderWindow window(sf::VideoMode(480, 640), "TD_GAME"); //окно игры

Image map_image; //карта
map_image.loadFromFile("images/map.png");
Texture map;
map.loadFromImage(map_image);
Sprite s_map;
s_map.setTexture(map);

castle cast("hero.png", 350, 600, 96.0, 96.0);

while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed) window.close();
}

window.clear();

for (int i = 0; i < heightMap; i++)
for (int j = 0; j < widthMap; j++) {
if (tileMap[j] == ' ') s_map.setTextureRect(IntRect(0, 0, 32, 32));
else if (
tileMap[j] == '0') s_map.setTextureRect(IntRect(64, 0, 32, 32));

s_map.setPosition(j 32, i 32);

window.draw(s_map);
}



window.display();
}

return 0;
}

Map.h:

#include <SFML/Graphics.hpp>
const int heightMap = 20;//размер карты высота
const int widthMap = 15; //размер карты ширина

char* tileMap[widthMap][heightMap] =
{
"000000000000000",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"0 0",
"000000000000000"
};
Предполагаю, что ошибка в создании карты
Памагити
Аноним 29/11/17 Срд 01:30:26 #2 №459007 
Твой двумерный массив строк выглядит странно, быть может ты хотел одномерный список строк?
Аноним 29/11/17 Срд 06:04:11 #3 №459025 
Может сначала плюсы поучишь хотя бы немного? А то явно видно, что у тебя проблемы с ними. А дальше только хуже будет.
Так что лучше поучи язык и возвращайся к sfml позже
Аноним 30/11/17 Чтв 19:42:12 #4 №459225 
>>459005 (OP)
Ну да, говнокод, и че?
Аноним 01/12/17 Птн 20:39:39 #5 №459361 
Давай ты выложишь код на какой-нибудь pastebin для начала, а то совсем ничего не хочется читать когда ты его плейн текстом пишешь тут.
Аноним 01/12/17 Птн 21:13:08 #6 №459372 
> s_map.setTextureRect(IntRect(64, 0, 32, 32));
ты уверен в этих значениях?

как выглядит "images/map.png" ?

> char* tileMap[widthMap][heightMap]
Ты создаёшь указатель на двумерный массив

> tileMap[j]
но используешь его вообще как простой одномерный массив, к тому же ты не используешь координату i при получении тайла
comments powered by Disqus

Отзывы и предложения