particles test
This commit is contained in:
parent
e3e6770957
commit
ab9efe5a95
|
@ -45,5 +45,5 @@ void main()
|
|||
}
|
||||
sum = sin(ticks/500.0)*sum;
|
||||
|
||||
gl_FragColor = pixel * color * opacity + sum;
|
||||
gl_FragColor = pixel * color * opacity;
|
||||
}
|
||||
|
|
|
@ -1,27 +1,87 @@
|
|||
ParticleSystem
|
||||
AttractionAffector
|
||||
delay: 0
|
||||
duration: 999
|
||||
position: 200 200
|
||||
acceleration: 64
|
||||
velocity-reduction-percent: 0
|
||||
|
||||
// Fire
|
||||
Emitter
|
||||
position: 200 264
|
||||
duration: 2
|
||||
burstRate: 3
|
||||
burstCount: 1
|
||||
position: 295 180
|
||||
duration: 0.5
|
||||
burstRate: 0.0166
|
||||
burstCount: 6
|
||||
delay: 0
|
||||
|
||||
particle-ignore-physics-after: 999
|
||||
particle-min-duration: 0.3
|
||||
particle-max-duration: 0.5
|
||||
|
||||
particle-duration: 12
|
||||
particle-position-radius: 0
|
||||
particle-velocity: 32
|
||||
particle-velocity-angle: 0
|
||||
|
||||
particle-min-velocity: 200
|
||||
particle-max-velocity: 240
|
||||
particle-min-velocity-angle: -5
|
||||
particle-max-velocity-angle: 10
|
||||
|
||||
particle-acceleration: 0
|
||||
particle-start-size: 4 4
|
||||
particle-final-size: 48 48
|
||||
particle-colors: #00ff00ff #ff0000ff #0000ffff #00ff00ff #00ff0000
|
||||
particle-colors-stops: 3 6 9 12
|
||||
|
||||
particle-start-size: 8 8
|
||||
particle-final-size: 64 64
|
||||
|
||||
particle-colors: #ff8c00ff #e6660080 #1e1e1e00
|
||||
particle-colors-stops: 0 0.15 0.3
|
||||
|
||||
particle-texture: circle2.png
|
||||
|
||||
|
||||
// Fire ball
|
||||
Emitter
|
||||
position: 200 200
|
||||
duration: 0.7
|
||||
burstRate: 0.0166
|
||||
burstCount: 3
|
||||
delay: 0
|
||||
|
||||
particle-min-duration: 0.5
|
||||
particle-max-duration: 0.9
|
||||
|
||||
particle-position-radius: 0
|
||||
|
||||
particle-min-velocity: 80
|
||||
particle-max-velocity: 110
|
||||
particle-min-velocity-angle: -30
|
||||
particle-max-velocity-angle: 30
|
||||
|
||||
particle-acceleration: 0
|
||||
|
||||
particle-start-size: 16 16
|
||||
particle-final-size: 64 64
|
||||
|
||||
particle-colors: #19191980 #0f0f0f80 #00000000
|
||||
particle-colors-stops: 0 0.45 0.9
|
||||
|
||||
particle-texture: circle2.png
|
||||
|
||||
// Smoke
|
||||
Emitter
|
||||
position: 200 200
|
||||
duration: 0.1
|
||||
burstRate: 0.0166
|
||||
burstCount: 3
|
||||
delay: 0
|
||||
|
||||
particle-min-duration: 0.1
|
||||
particle-max-duration: 0.45
|
||||
|
||||
particle-position-radius: 0
|
||||
|
||||
particle-min-velocity: 60
|
||||
particle-max-velocity: 80
|
||||
particle-min-velocity-angle: -5
|
||||
particle-max-velocity-angle: 10
|
||||
|
||||
particle-acceleration: 0
|
||||
|
||||
particle-start-size: 8 8
|
||||
particle-final-size: 64 64
|
||||
|
||||
particle-colors: #555555ff #55555580 #55555500
|
||||
particle-colors-stops: 0 0.225 0.45
|
||||
|
||||
particle-texture: circle2.png
|
||||
|
||||
|
|
|
@ -111,11 +111,8 @@ void Application::init(const std::vector<std::string>& args, int appFlags)
|
|||
|
||||
if(m_appFlags & Fw::AppEnableModules)
|
||||
g_modules.discoverModulesPath();
|
||||
|
||||
g_particleManager.load("particle.otpa");
|
||||
}
|
||||
|
||||
|
||||
void Application::terminate()
|
||||
{
|
||||
// hide the window because there is no render anymore
|
||||
|
|
|
@ -49,9 +49,9 @@ void Particle::render()
|
|||
if(!m_texture)
|
||||
g_painter.drawFilledRect(m_rect);
|
||||
else {
|
||||
//g_painter.setCompositionMode(Painter::CompositionMode_AdditiveSource);
|
||||
g_painter.setCompositionMode(Painter::CompositionMode_AdditiveSource);
|
||||
g_painter.drawTexturedRect(m_rect, m_texture);
|
||||
//g_painter.setCompositionMode(Painter::CompositionMode_SourceOver);
|
||||
g_painter.setCompositionMode(Painter::CompositionMode_SourceOver);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -163,7 +163,8 @@ bool ParticleEmitter::load(const OTMLNodePtr& node)
|
|||
|
||||
if(m_pColors.empty())
|
||||
m_pColors.push_back(Color(255, 255, 255, 128));
|
||||
m_pColorsStops.insert(m_pColorsStops.begin(), 0);
|
||||
if(m_pColorsStops.empty())
|
||||
m_pColorsStops.push_back(0);
|
||||
|
||||
if(m_pColors.size() != m_pColorsStops.size()) {
|
||||
logError("particle colors must be equal to colorstops-1");
|
||||
|
|
|
@ -530,7 +530,7 @@ void ProtocolGame::parseMagicEffect(InputMessage& msg)
|
|||
tile->addEffect(effect);
|
||||
|
||||
// TODO: check if particles effect exists, if not, play standard sprite effect.
|
||||
g_particleManager.load("particle.otpa");
|
||||
//g_particleManager.load("particle.otpa");
|
||||
}
|
||||
|
||||
void ProtocolGame::parseAnimatedText(InputMessage& msg)
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "uigame.h"
|
||||
#include <otclient/core/game.h>
|
||||
#include <framework/ui/uilineedit.h>
|
||||
#include <framework/graphics/particlemanager.h>
|
||||
|
||||
bool UIGame::onKeyPress(uchar keyCode, std::string keyText, int keyboardModifiers)
|
||||
{
|
||||
|
@ -82,6 +83,7 @@ bool UIGame::onKeyPress(uchar keyCode, std::string keyText, int keyboardModifier
|
|||
return true;
|
||||
} else if(keyCode == Fw::KeyRight || keyCode == Fw::KeyNumpad6) {
|
||||
g_game.turn(Otc::East);
|
||||
g_particleManager.load("particle.otpa");
|
||||
return true;
|
||||
} else if(keyCode == Fw::KeyDown || keyCode == Fw::KeyNumpad2) {
|
||||
g_game.turn(Otc::South);
|
||||
|
|
Loading…
Reference in New Issue