[SFML] sterowanie, pliki, vertex/sprite
Ostatnio zmodyfikowano 2020-03-26 21:48
R0ut4 Temat założony przez niniejszego użytkownika |
[SFML] sterowanie, pliki, vertex/sprite » 2020-03-26 14:24:04 Problem krótki: Postać się nie rusza kody: main.cpp #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include "gracz.hpp" #include "sterowanie.hpp"
enum Stan { Menu, Gra, Esc }; void setPosition( int x, int y ); int main() { sf::RenderWindow aplikacja( sf::VideoMode( 840, 720 ), "Ogrod" ); aplikacja.setFramerateLimit( 60 ); Stan stan = Menu; Gracz player; player.setPosition( 200, 200 ); sf::Texture tekstura_menu; tekstura_menu.loadFromFile( "Menu.png" ); sf::Texture tekstura_start; tekstura_start.loadFromFile( "przycisk_start.png" ); sf::Sprite tlo_menu; tlo_menu.setTexture( tekstura_menu ); sf::Sprite sp_start; sp_start.setTexture( tekstura_start ); while( aplikacja.isOpen() ) { sf::Event event; while( aplikacja.pollEvent( event ) ) { if( event.type == sf::Event::Closed ) { aplikacja.close(); } } switch( stan ) { case Menu: Ruch_postaci( player ); break; case Gra: break; case Esc: break; } aplikacja.clear(); switch( stan ) { case Menu: aplikacja.draw( tlo_menu ); aplikacja.draw( sp_start ); aplikacja.draw( player ); break; case Gra: break; case Esc: break; } aplikacja.display(); } return 0; }
sterowanie.hpp #ifndef sterowanie_hpp #define sterowanie_hpp #include "gracz.hpp" void Ruch_postaci( Gracz & hero ); #endif
sterowanie.cpp #include <SFML/Graphics.hpp> #include <SFML/Window.hpp> #include "sterowanie.hpp" #include "gracz.hpp"
void Ruch_postaci( Gracz & hero ) { void move(); if( sf::Keyboard::isKeyPressed( sf::Keyboard::W ) ) { hero.move( 0, - 3 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::S ) ) { hero.move( 0, 3 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) ) { hero.move( - 3, 0 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) ) { hero.move( 3, 0 ); } }
|
|
pekfos |
» 2020-03-26 18:47:20 Podaj kod rysujący gracza. |
|
R0ut4 Temat założony przez niniejszego użytkownika |
» 2020-03-26 19:28:29 .hpp i .cpp #ifndef gracz_hpp #define gracz_hpp
class Gracz : public sf::Drawable , public sf::Transformable { private: virtual void draw( sf::RenderTarget & target, sf::RenderStates states ) const; }; #endif
#include <SFML/Graphics.hpp> #include <SFML/Window.hpp> #include "gracz.hpp"
void Gracz::draw( sf::RenderTarget & target, sf::RenderStates states ) const { sf::VertexArray P( sf::Quads, 4 ); P[ 0 ].position = sf::Vector2f( 200, 200 ); P[ 1 ].position = sf::Vector2f( 400, 200 ); P[ 2 ].position = sf::Vector2f( 400, 400 ); P[ 3 ].position = sf::Vector2f( 200, 400 ); sf::Texture textura; textura.loadFromFile( "gracz.png" ); P[ 0 ].texCoords = sf::Vector2f( 0, 0 ); P[ 1 ].texCoords = sf::Vector2f( 50, 0 ); P[ 2 ].texCoords = sf::Vector2f( 50, 50 ); P[ 3 ].texCoords = sf::Vector2f( 0, 50 ); states.texture = & textura; target.draw( P, states ); }
Edit: Jak mogę sprawdzić pozcyję myszy względem sprite'a, który jest przyciskiem? |
|
pekfos |
» 2020-03-26 21:45:03 |
|
R0ut4 Temat założony przez niniejszego użytkownika |
» 2020-03-26 21:48:33 Siedziałem i rozkiminiałem gdzie leży problem mniej więcej godzinę przed dodaniem pytania DZIĘKI WIELKIE
|
|
« 1 » |