SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › При запуске кода из 7го урока выдает ошибку в CodeBlocks.
В этой теме 2 ответа, 2 участника, последнее обновление Temur Charaya 3 года/лет назад.
-
АвторСообщения
-
Господа, помогите, кто может. Писал код по урокам. Сначала работал в VS 13. Там возникла проблема: не работала анимация. Персонаж двигался, но без анимации. Сто раз просмотрел код, но ошибку найти не смог. На всякий случай попробовал перенести проект на CodeBlocks. Теперь новая проблема: нажимаю на Build and run, CodeBlocks выдает вот такую ошибку: undefined reference to `sf::Texture::loadFromFile(std::string const&, sf::Rect<int> const&)’ и подсвечивает 13 строку.
И так две проблемы: не работает анимация и ошибка в CodeBlocks
C++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include <SFML/Graphics.hpp>#include <iostream>using namespace sf;int main(){RenderWindow window(VideoMode(640, 480), "Game");Texture HeroTexture;HeroTexture.loadFromFile("hero.png");Sprite HeroSprite;HeroSprite.setTexture(HeroTexture);HeroSprite.setTextureRect(IntRect(0,192,96,96));HeroSprite.setPosition(250,250);Clock clock;while (window.isOpen()){float currentFrame = 0;float time = clock.getElapsedTime().asMicroseconds();clock.restart();time = time / 800;Event event;while (window.pollEvent(event)){if (event.type == Event::Closed)window.close();}if (Keyboard::isKeyPressed(Keyboard::Left)){currentFrame += 0.005*time;if (currentFrame > 3) currentFrame -=3;HeroSprite.setTextureRect(IntRect(96 * int(currentFrame), 96, 96, 96));HeroSprite.move(-0.1*time, 0);}if (Keyboard::isKeyPressed(Keyboard::Right)){currentFrame += 0.005*time;if (currentFrame > 3) currentFrame -= 3;HeroSprite.setTextureRect(IntRect(96 * int(currentFrame) + 96, 96, -96, 96));HeroSprite.move(0.1*time, 0);}if (Keyboard::isKeyPressed(Keyboard::Up)){currentFrame += 0.005*time;if (currentFrame > 3) currentFrame -= 3;HeroSprite.setTextureRect(IntRect(96 * int(currentFrame), 288, 96, 96));HeroSprite.move(0, -0.1*time);}if (Keyboard::isKeyPressed(Keyboard::Down)){currentFrame += 0.005*time;if (currentFrame > 3) currentFrame -= 3;HeroSprite.setTextureRect(IntRect(96 * int(currentFrame), 0, 96, 96));HeroSprite.move(0, 0.1*time);}window.clear();window.draw(HeroSprite);window.display();}return 0;}Все проблемы решил. Можно закрывать тему
ceasar13m, объясни мне плиз как решить эту проблему
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.