SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Ошибки при переносе файлов на другой pc
В этой теме 2 ответа, 2 участника, последнее обновление ratatyq 8 года/лет, 3 мес. назад.
Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
-
АвторСообщения
-
Перенес я все свои работы на другой компьютер(обновлял комплектующие) и в среде Qt Creator перестала запускатся программа, при компиляции выдает следующие ошибки(см.рисунок 1):
Код программы:
C++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124#include <SFML/Graphics.hpp>#include <iostream>#include "map.h"// 80 ширина 1 квадратаusing namespace sf;class Player{public:float x, y, w, h; // Его данные при создания персонажа.float dx = 0;float dy = 0;float speed = 0;int dir = 0; // направление игрокаString File;Image image;Texture texture;Sprite sprite;Player(String F, float X, float Y, float W, float H) // Отвечает за конструктор класса тоесть что вписывать когда мы создаем объект{File = F;w = W;h = H;image.loadFromFile("image/" + File);texture.loadFromImage(image);sprite.setTexture(texture);x = X;y = Y;sprite.setTextureRect(IntRect(170,0,w,h));}void update(float time){switch (dir){case 0: dx = speed; dy = 0; break;case 1: dx = -speed; dy = 0; break;case 2: dx = 0; dy = speed; break;case 3: dx = 0; dy = -speed; break;}x += dx*time;y += dy*time;speed = 0;sprite.setPosition(x,y);}};int main(){RenderWindow form1(VideoMode(1024,768), "Game1");Image i_map;i_map.loadFromFile("image/map.png");Texture t_map;t_map.loadFromImage(i_map);Sprite s_map;s_map.setTexture(t_map);Player p("players.png", 0, 0, 83, 72);Clock clocks;float Animation = 0;while (form1.isOpen()){float time = clocks.getElapsedTime().asMicroseconds();clocks.restart();time = time/800;sf::Event event;while (form1.pollEvent(event)){if (event.type == sf::Event::Closed)form1.close();}if ((Keyboard::isKeyPressed(Keyboard::Left) || (Keyboard::isKeyPressed(Keyboard::A)))) {p.dir = 1; p.speed = 0.1;//dir =1 - направление вверх, speed =0.1 - скорость движения. Заметьте - время мы уже здесь ни на что не умножаем и нигде не используем каждый разAnimation += 0.005*time;if (Animation > 5) Animation -= 5;p.sprite.setTextureRect(IntRect(83 * int(Animation), 100, 83, 72)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)}if ((Keyboard::isKeyPressed(Keyboard::Right) || (Keyboard::isKeyPressed(Keyboard::D)))) {p.dir = 0; p.speed = 0.1;//направление вправо, см вышеAnimation += 0.005*time;if (Animation > 5) Animation -= 5;p.sprite.setTextureRect(IntRect(83 * int(Animation), 0, 83, 72)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)}if ((Keyboard::isKeyPressed(Keyboard::Up) || (Keyboard::isKeyPressed(Keyboard::W)))) {p.dir = 3; p.speed = 0.1;//направление вниз, см вышеAnimation += 0.005*time;if (Animation > 5) Animation -= 5;p.sprite.setTextureRect(IntRect(83 * int(Animation), 210, 83, 72)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)}if ((Keyboard::isKeyPressed(Keyboard::Down) || (Keyboard::isKeyPressed(Keyboard::S)))) { //если нажата клавиша стрелка влево или англ буква Аp.dir = 2; p.speed = 0.1;//направление вверх, см вышеAnimation += 0.005*time; //служит для прохождения по "кадрам". переменная доходит до трех суммируя произведение времени и скорости. изменив 0.005 можно изменить скорость анимацииif (Animation > 5) Animation -= 5; //проходимся по кадрам с первого по третий включительно. если пришли к третьему кадру - откидываемся назад.p.sprite.setTextureRect(IntRect(83 * int(Animation), 310, 83, 72)); //проходимся по координатам Х. получается 96,96*2,96*3 и опять 96}p.update(time);form1.clear();for(int i = 0; i < W_MAP; i++)for(int d = 0; d < H_MAP; d++){if ((Map[i][d] == '0')) s_map.setTextureRect(IntRect(0, 0, 80, 60));if ((Map[i][d] == ' ')) s_map.setTextureRect(IntRect(80, 0 , 160, 60));s_map.setPosition(d * 80, i * 80);form1.draw(s_map);}form1.draw(p.sprite);form1.display();}return 0;}map.h:
C++1234567891011121314151617#include <SFML/Graphics.hpp>const int H_MAP = 9;const int W_MAP = 20;sf::String Map[H_MAP]{"00000000000000000000","0 0","0 0","0 0","0 0","0 0","0 0","0 0","00000000000000000000",};Вложения:
You must be logged in to view attached files.там может теневые сборки играли какую то роль? ты релиз вынес?
Пытался создать новый проект с тестовым кодом, после компилирования программа падала, теневая сборка отключена
-
АвторСообщения
Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
Для ответа в этой теме необходимо авторизоваться.