我有一个通过引用传递变量的问题。我尝试在类中的SFML窗口中绘制一些内容,但它不会绘制。如果我取消注释它的注释行。我做错了什么?
#pragma once
#include "stdafx.h"
#include <SFML/Graphics.hpp>
#include "ball.h"
int _tmain(int argc, _TCHAR* argv[])
{
sf::RenderWindow window = sf::RenderWindow( sf::VideoMode( 640, 480 ), "SFML window" );
ball my_ball = ball ( sf::Vector2f( 320.0, 240.0 ) );
window.clear();
my_ball.draw(window);
//sf::CircleShape circle;
//circle.setRadius( 30 );
//circle.setPosition( sf::Vector2f( 320.0, 240.0 ) );
//window.draw( circle );
window.display();
while(window.isOpen()) {
sf::Event event;
while( window.pollEvent(event) ){
if( event.type == sf::Event::Closed ){
window.close();
}
}
sf::sleep( sf::milliseconds( 20 ) );
}
return 0;
}
ball.h
#include <SFML/Graphics.hpp>
class ball
{
public:
ball( sf::Vector2f position, float size = 30.0 );
void draw( sf::RenderWindow & window ) const;
private:
sf::Vector2f position;
float size;
};
ball.cpp
#include "StdAfx.h"
#include "ball.h"
ball::ball( sf::Vector2f position, float size ) {
position = position;
size = size;
}
void ball::draw( sf::RenderWindow & window ) const {
sf::CircleShape circle;
circle.setRadius( size );
circle.setPosition( position );
window.draw( circle );
}
答案 0 :(得分:3)
你为什么要把这些分配给自己?那是错的
ball::ball( sf::Vector2f position, float size ) {
position = position;
size = size;
}