View difference between Paste ID: xs9NCRwB and ycy8wbmF
SHOW: | | - or go back to the newest paste.
1
///////////////////////////////////////////////////////
2-
/////               main.cpp                          ///////
2+
/////               main.cpp                    ///////
3
///////////////////////////////////////////////////////
4
#include <SFML/Graphics.hpp>
5
#include "Player.h"
6
int main(){
7
	sf::RenderWindow Wnd(sf::VideoMode(800,600,32), "Particle Test");
8
9
	Player player;
10
	while(Wnd.isOpen()){
11
		sf::Event e;
12
		while(Wnd.pollEvent(e)){
13
			if(e.type == sf::Event::Closed){
14
				Wnd.close();
15
			}
16
		}
17
	
18
		player.update();
19
		Wnd.clear();
20
		player.draw(Wnd);
21
		Wnd.display();
22
	}
23
	return 0;
24
}
25
26
///////////////////////////////////////////////////////
27-
/////               player.h                           ///////
27+
/////               player.h                    ///////
28
///////////////////////////////////////////////////////
29
#pragma once
30
#include <SFML\Graphics.hpp>
31
#include "Particle.h"
32
class Player
33
{
34
public:
35
	Player();
36
	~Player(void);
37
	sf::Texture texture;
38
	sf::Sprite sprite;
39
	void update();
40
	void draw(sf::RenderWindow& w);
41
	Particle particle;
42
43
};
44
45
///////////////////////////////////////////////////////
46-
/////              player.cpp                        ///////
46+
/////              player.cpp                   ///////
47
//////////////////////////////////////////////////////
48
#include "Player.h"
49
Player::Player()
50
{
51
	texture.loadFromFile("player2.png");
52
	sprite.setTextureRect(sf::IntRect(0,0,30,45));
53
	sprite.setTexture(texture);
54
	sprite.setPosition(200,200);
55
56
}
57
58
Player::~Player(void)
59
{
60
}
61
62
void Player::update()
63
{
64
    /* ... */
65
	particle.update();
66
}
67
68
void Player::draw(sf::RenderWindow& w)
69
{
70
	particle.draw(w);
71
	w.draw(sprite);
72
}
73
74
///////////////////////////////////////////////////////
75-
/////              particle.h                          ///////
75+
/////              particle.h                   ///////
76
//////////////////////////////////////////////////////
77
#pragma once
78
#include <Thor/Particles.hpp>
79
#include <Thor/Animation.hpp>
80
#include <SFML/Graphics.hpp>
81
class Particle
82
{
83
public:
84
	Particle(void);
85
	~Particle(void);
86
private:
87
	std::shared_ptr<sf::Texture> texture;
88
	thor::ParticleSystem System;
89
	thor::UniversalEmitter::Ptr Emitter;
90
	thor::FadeAnimation fader;
91
	sf::Clock clock;
92
public:
93
	void update();
94
	void draw(sf::RenderWindow& w);
95
};
96
97
98
///////////////////////////////////////////////////////
99-
/////              particle.cpp                      ///////
99+
/////              particle.cpp                ///////
100
//////////////////////////////////////////////////////
101
#include "Particle.h"
102
Particle::Particle(): Emitter(thor::UniversalEmitter::create()),
103
    texture(new sf::Texture),
104
	System(texture),
105
	fader(0.1f,0.1f)
106
{
107
		System.addEmitter(Emitter);
108
		Emitter->setParticlePosition(sf::Vector2f(100,100));
109
		texture->loadFromFile("particle.png");
110
}
111
112
Particle::~Particle(void)
113
{
114
}
115
116
void Particle::update()
117
{
118
	System.update(clock.restart());
119
}
120
121
void Particle::draw(sf::RenderWindow& w)
122
{
123
	w.draw(System);
124
}