SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Не отображается персонаж
Помечено: sfml
В этой теме 6 ответов, 3 участника, последнее обновление aztecError 7 года/лет, 7 мес. назад.
Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
-
АвторСообщения
-
Нее отображается персонаж, всё компилирует, но не отображает его. В чём дело? Помогите
C++1234567891011121314151617181920212223242526272829303132333435#include <SFML/Graphics.hpp>#include "Player.cpp"using namespace sf;int main(){RenderWindow window(VideoMode(1280, 720), "GAMESFML I");Player p("player.png", 2, 2, 22, 28);float CurrentFrame = 0;Clock clock;while (window.isOpen()){float time = clock.getElapsedTime().asMicroseconds();clock.restart();time = time/800;Event event;while (window.pollEvent(event)){if (event.type == Event::Closed)window.close();}p.update(time);window.clear();window.draw(p.sprite);window.display();}return 0;}C++1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include <SFML/Graphics.hpp>using namespace sf;class Player{public: float x, y, w, h, dx, dy, speed;String File;Image image;Texture texture;Sprite sprite;enum stateObject { left, right, up, down, stay};stateObject state;Player(String F, int X, int Y, float W, float H){y = 0;speed = 0;state = stay;File = F;w = W; h = H;image.loadFromFile("Images/" + File);texture.loadFromImage(image);sprite.setTexture(texture);x = X; y = Y;sprite.setTextureRect(IntRect(2, 2, w, h));}void control(){if (Keyboard::isKeyPressed(Keyboard::Left)){state = left;speed = 0.1;}if (Keyboard::isKeyPressed(Keyboard::Right)){state = right;speed = 0.1;}if (Keyboard::isKeyPressed(Keyboard::Up)){state = up;speed = 0.1;}if (Keyboard::isKeyPressed(Keyboard::Down)){state = down;speed = 0.1;}}void update(float time){control();switch (state){case right: dx = speed; dy = 0; break;case left: dx = -speed; dy = 0; break;case down: dx = 0; dy = speed; break;case up: dx = 0; dy = -speed; break;}x += dx*time;y += dy*time;speed = 0;sprite.setPosition(x, y);}};В конструкторе Player отсутствует метод sprite.setPosition(x,y);
Написал, не работает
Напиши ниже инициализации координат;
x = X;
y = Y;
sprite.setPosition(sf::Vector2f(x,y));Всё равно, так же чёрный экран в окне. Персонажа не видно.
dx и dy обнули в конструкторе
Всё заработало, спасибо!
-
АвторСообщения
Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
Для ответа в этой теме необходимо авторизоваться.