2014-09-09 5 views
0

J'ai un problème avec le passage d'une variable par référence. J'essaie de dessiner quelque chose dans une fenêtre SFML dans une classe mais ça ne dessine pas. Si je décommente les lignes commentées cela fonctionne. Qu'est-ce que je fais mal?C++ passant variable par référence (fenêtre 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); 
} 

Répondre

3

Pourquoi assignez-vous à ceux qui eux-mêmes? C'est faux

ball::ball(sf::Vector2f position, float size) { 
    position = position; 
    size = size; 
} 
+0

Pff, c'est une très bonne question et la bonne réponse. Regarder à la mauvaise chose .. merci – ZxCvBnM

Questions connexes