Example usage for com.badlogic.gdx.graphics.g2d ParticleEmitter setImagePath

List of usage examples for com.badlogic.gdx.graphics.g2d ParticleEmitter setImagePath

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g2d ParticleEmitter setImagePath.

Prototype

public void setImagePath(String imagePath) 

Source Link

Usage

From source file:com.lynk.gdx.tool.particleeditor.EffectPanel.java

License:Apache License

public ParticleEmitter newEmitter(String name, boolean select) {
    final ParticleEmitter emitter = new ParticleEmitter();

    emitter.getDuration().setLow(1000);/*w w w .j a va2  s .  c  o m*/
    emitter.getEmission().setHigh(50);
    emitter.getLife().setHigh(500);
    emitter.getScale().setHigh(32, 32);

    emitter.getTint().setColors(new float[] { 1, 0.12156863f, 0.047058824f });
    emitter.getTransparency().setHigh(1);

    emitter.setMaxParticleCount(25);
    emitter.setImagePath(ParticleEditor.DEFAULT_PARTICLE);

    addEmitter(name, select, emitter);
    return emitter;
}

From source file:com.lynk.gdx.tool.particleeditor.EffectPanel.java

License:Apache License

public ParticleEmitter newExampleEmitter(String name, boolean select) {
    final ParticleEmitter emitter = new ParticleEmitter();

    emitter.getDuration().setLow(3000);/*w  w  w  .  j  av a  2  s.  com*/

    emitter.getEmission().setHigh(250);

    emitter.getLife().setHigh(500, 1000);
    emitter.getLife().setTimeline(new float[] { 0, 0.66f, 1 });
    emitter.getLife().setScaling(new float[] { 1, 1, 0.3f });

    emitter.getScale().setHigh(32, 32);

    emitter.getRotation().setLow(1, 360);
    emitter.getRotation().setHigh(180, 180);
    emitter.getRotation().setTimeline(new float[] { 0, 1 });
    emitter.getRotation().setScaling(new float[] { 0, 1 });
    emitter.getRotation().setRelative(true);

    emitter.getAngle().setHigh(45, 135);
    emitter.getAngle().setLow(90);
    emitter.getAngle().setTimeline(new float[] { 0, 0.5f, 1 });
    emitter.getAngle().setScaling(new float[] { 1, 0, 0 });
    emitter.getAngle().setActive(true);

    emitter.getVelocity().setHigh(30, 300);
    emitter.getVelocity().setActive(true);

    emitter.getTint().setColors(new float[] { 1, 0.12156863f, 0.047058824f });

    emitter.getTransparency().setHigh(1, 1);
    emitter.getTransparency().setTimeline(new float[] { 0, 0.2f, 0.8f, 1 });
    emitter.getTransparency().setScaling(new float[] { 0, 1, 0.75f, 0 });

    emitter.setMaxParticleCount(200);
    emitter.setImagePath(ParticleEditor.DEFAULT_PARTICLE);

    addEmitter(name, select, emitter);
    return emitter;
}

From source file:com.lynk.gdx.tool.particleeditor.EffectPanel.java

License:Apache License

void saveEffect() {
    FileDialog dialog = new FileDialog(editor, "Save Effect", FileDialog.SAVE);
    if (lastDir != null)
        dialog.setDirectory(lastDir);/*  w  w w. ja  va  2s .co m*/
    dialog.setVisible(true);
    String file = dialog.getFile();
    String dir = dialog.getDirectory();
    if (dir == null || file == null || file.trim().length() == 0)
        return;
    lastDir = dir;
    int index = 0;
    File effectFile = new File(dir, file);

    // save each image path as relative path to effect file directory
    URI effectDirUri = effectFile.getParentFile().toURI();
    for (ParticleEmitter emitter : editor.effect.getEmitters()) {
        emitter.setName((String) emitterTableModel.getValueAt(index++, 0));
        String imagePath = emitter.getImagePath();
        if ((imagePath.contains("/") || imagePath.contains("\\")) && !imagePath.contains("..")) {
            // it's absolute, make it relative:
            URI imageUri = new File(emitter.getImagePath()).toURI();
            emitter.setImagePath(effectDirUri.relativize(imageUri).getPath());
        }
    }

    File outputFile = new File(dir, file);
    Writer fileWriter = null;
    try {
        fileWriter = new FileWriter(outputFile);
        editor.effect.save(fileWriter);
    } catch (Exception ex) {
        System.out.println("Error saving effect: " + outputFile.getAbsolutePath());
        ex.printStackTrace();
        JOptionPane.showMessageDialog(editor, "Error saving effect.");
    } finally {
        StreamUtils.closeQuietly(fileWriter);
    }
}

From source file:com.lynk.gdx.tool.particleeditor.ImagePanel.java

License:Apache License

public ImagePanel(final ParticleEditor editor, String name, String description) {
    super(null, name, description);
    JPanel contentPanel = getContentPanel();
    {/*w  w  w. ja  va 2 s  . c  o  m*/
        JButton openButton = new JButton("Open");
        contentPanel.add(openButton, new GridBagConstraints(2, 1, 1, 1, 0, 0, GridBagConstraints.NORTHWEST,
                GridBagConstraints.NONE, new Insets(0, 0, 0, 6), 0, 0));
        openButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                FileDialog dialog = new FileDialog(editor, "Open Image", FileDialog.LOAD);
                if (lastDir != null)
                    dialog.setDirectory(lastDir);
                dialog.setVisible(true);
                final String file = dialog.getFile();
                final String dir = dialog.getDirectory();
                if (dir == null || file == null || file.trim().length() == 0)
                    return;
                lastDir = dir;
                try {
                    ImageIcon icon = new ImageIcon(new File(dir, file).toURI().toURL());
                    final ParticleEmitter emitter = editor.getEmitter();
                    editor.setIcon(emitter, icon);
                    updateIconInfo(icon);
                    emitter.setImagePath(new File(dir, file).getAbsolutePath());
                    emitter.setSprite(null);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });
    }
    {
        JButton defaultButton = new JButton("Default");
        contentPanel.add(defaultButton, new GridBagConstraints(2, 2, 1, 1, 0, 0, GridBagConstraints.NORTHWEST,
                GridBagConstraints.NONE, new Insets(0, 0, 0, 6), 0, 0));
        defaultButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                final ParticleEmitter emitter = editor.getEmitter();
                emitter.setImagePath(ParticleEditor.DEFAULT_PARTICLE);
                emitter.setSprite(null);

                editor.setIcon(emitter, null);
                updateIconInfo(null);
            }
        });
        JButton defaultPremultButton = new JButton("Default (Premultiplied Alpha)");
        contentPanel.add(defaultPremultButton, new GridBagConstraints(3, 2, 1, 1, 0, 0,
                GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 6), 0, 0));
        defaultPremultButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                final ParticleEmitter emitter = editor.getEmitter();
                emitter.setImagePath(ParticleEditor.DEFAULT_PREMULT_PARTICLE);
                emitter.setSprite(null);
                editor.setIcon(emitter, null);
                updateIconInfo(null);
            }
        });
    }
    {
        widthLabel = new JLabel();
        contentPanel.add(widthLabel, new GridBagConstraints(2, 3, 1, 1, 0, 0, GridBagConstraints.NORTHWEST,
                GridBagConstraints.NONE, new Insets(0, 0, 6, 6), 0, 0));
    }
    {
        heightLabel = new JLabel();
        contentPanel.add(heightLabel, new GridBagConstraints(2, 4, 1, 1, 0, 1, GridBagConstraints.NORTHWEST,
                GridBagConstraints.NONE, new Insets(0, 0, 0, 6), 0, 0));
    }
    {
        imageLabel = new JLabel();
        contentPanel.add(imageLabel, new GridBagConstraints(3, 1, 1, 3, 1, 0, GridBagConstraints.NORTHWEST,
                GridBagConstraints.NONE, new Insets(0, 6, 0, 0), 0, 0));
    }
    updateIconInfo(editor.getIcon(editor.getEmitter()));
}

From source file:com.westernarc.easterrun.gdx.graphics.g2d.ParticleEffect.java

License:Apache License

public void loadEmitters(FileHandle effectFile) {
    InputStream input = effectFile.read();
    emitters.clear();//from ww  w  . j  av  a 2  s .co m
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new InputStreamReader(input), 512);
        while (true) {
            ParticleEmitter emitter = new ParticleEmitter(reader);
            reader.readLine();
            emitter.setImagePath(reader.readLine());
            emitters.add(emitter);
            if (reader.readLine() == null)
                break;
            if (reader.readLine() == null)
                break;
        }
    } catch (IOException ex) {
        throw new GdxRuntimeException("Error loading effect: " + effectFile, ex);
    } finally {
        try {
            if (reader != null)
                reader.close();
        } catch (IOException ex) {
        }
    }
}