Fletcher Temat założony przez niniejszego użytkownika |
[SFML] Problem z Funkcją » 2011-07-30 20:37:13
int checkbutton() { if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Left ) ) { Sprite.SetPosition( 100, 100 ); return 1; } if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Right ) ) { Sprite.SetPosition( 50, 200 ); return 2; } else return 0; }
I jeszcze jedną dlaczego nie mogę wysłać klasy jako argument funkcji? wszystko wali się po próbie wywołania funkcji. int checkbutton( sf::RenderWindow Window ) checkbutton( Window ); {(...) } iles (x86)\microsoft visual studio 10.0\vc\include\sfml\window\window.hpp(321): error C2248: 'sf::NonCopyable::NonCopyable' : cannot access private member declared in class 'sf::NonCopyable' 1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\sfml\system\noncopyable.hpp(57) : see declaration of 'sf::NonCopyable::NonCopyable' 1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\sfml\system\noncopyable.hpp(41) : see declaration of 'sf::NonCopyable' 1> This diagnostic occurred in the compiler generated function 'sf::Window::Window(const sf::Window &)' |
|
malan |
» 2011-07-30 21:00:32 W jakim miejscu dokładnie wywołujesz tą funkcję? I jeszcze jedną dlaczego nie mogę wysłać klasy jako argument funkcji? |
Możesz, ale niech tym argumentem będzie referencja lub wskaźnik na obiekt klasy sf::RenderWindow . |
|
Fletcher Temat założony przez niniejszego użytkownika |
» 2011-07-30 22:01:27 Przed narysowaniem różnych śmieci na ekranie, normalnie jak wstawiam tam warunek z funkcji to wszystko działa i jest jeszcze ostrzeżenie tego typu. warning C4482: nonstandard extension used: enum 'sf::Mouse::Button' used in qualified name Dobra Pierwszy problem został rozwiązany,wielkie dzięki ale został jeszcze ten pierwszy problem ;D |
|
jaupl |
» 2011-07-31 22:17:19 Dobra Pierwszy problem został rozwiązany,wielkie dzięki ale został jeszcze ten pierwszy problem ;D |
hmmm ... What ?? //Trochę Offtop ale nie mogłem się powstrzymać :) |
|
Fletcher Temat założony przez niniejszego użytkownika |
» 2011-07-31 23:44:47 Eh, skutki szybkiego pisania ;p. Właściwie powiną być Dobra drugi problem został rozwiązany,wielkie dzięki ale został jeszcze ten pierwszy problem ;D
|
|
malan |
» 2011-07-31 23:46:40 Chodzi o funkcję checkbutton ? Wklej aktualny kod. |
|
Fletcher Temat założony przez niniejszego użytkownika |
» 2011-08-01 22:09:30 int checkbutton() { if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Left ) ) { Swerewolf.SetPosition( Window.GetInput().GetMouseX(), Window.GetInput().GetMouseY() ); return 1; } if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Right ) ) { Swerewolf.SetPosition( 50, 200 ); return 2; } else return 0; }
#include "Header.h"
int main() { sf::Event Event; sf::RenderWindow Window( sf::VideoMode( 800, 600, 32 ), "123:" ); sf::String tekst; sf::String mouse; sf::Image werewolf; sf::Sprite Swerewolf; werewolf.LoadFromFile( "stop.png" ); Swerewolf.SetImage( werewolf ); background.LoadFromFile( "background.png" ); Sbackground.SetImage( background ); std::string view_mouse; std::ostringstream ss; float a = 0; tekst.SetSize( 14 ); mouse.SetSize( 14 ); while( Window.IsOpened() ) { view_mouse = "Mouse: " + inscription( Window.GetInput().GetMouseX() ) + " " + inscription( Window.GetInput().GetMouseY() ); mouse.SetText( view_mouse ); while( Window.GetEvent( Event ) ) { if( Event.Type == sf::Event::Closed ) { Window.Close(); } } checkbutton(); Window.Draw( Sbackground ); Window.Draw( Swerewolf ); Window.Draw( mouse ); Window.Display(); } return EXIT_SUCCESS; }
A tak przy okazji, robię sobie funkcje gdzie jako argument podaję wskaźnik do klasy. I niestety problem pojawi się przy próbie odwołania do któregoś z elementów ;/. int checkbutton( sf::RenderWindow * Window ) { if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Left ) ) { Swerewolf.SetPosition( Window.GetInput().GetMouseX(), Window.GetInput().GetMouseY() ); return 1; } if( Window.GetInput().IsMouseButtonDown( sf::Mouse::Button::Right ) ) { Swerewolf.SetPosition( 50, 200 ); return 2; } else return 0; } |
|
malan |
» 2011-08-01 22:38:17 Jakim cudem to Ci się kompiluje? int checkbutton( sf::Sprite * sprite, sf::RenderWindow * window ) { if( window->GetInput().IsMouseButtonDown( sf::Mouse::Button::Left ) ) { sprite->SetPosition( window->GetInput().GetMouseX(), window->GetInput().GetMouseY() ); return 1; } if( window->GetInput().IsMouseButtonDown( sf::Mouse::Button::Right ) ) { sprite->SetPosition( 50, 200 ); return 2; } return 0; } Wywołanie: checkbutton( & Swerewolf, & Window ); |
|
« 1 » |