Forums Register Login

How do I code a scalable game (graphic wise, SVG) in Java

+Pie Number of slices to send: Send
Hi - think I have tried all in order to merge in SVG scalable graphics into a small test app i Eclipse now, but without luck.
JSR 226 (Java Micro Edition), Batik and Salamander are all roads I have gone down through. Right now I am also watching this: http://www.youtube.com/watch?v=F_sbusEUz5w

Most recently I came close with Salamander (but if somebody knows a better apporach, please reply)

Here is the latest Salamander topic/issue I have been struggling with:

In the following link an SVG image is created by code before getting rendered. At http://svgsalamander.java.net/docs/exampleCode/SVGIODemo.html this compiles flawless:

class IconPanel extends JPanel { public static final long serialVersionUID = 0;

final SVGIcon icon;

public IconPanel()
{
StringReader reader = new StringReader(makeDynamicSVG());
URI uri = SVGCache.getSVGUniverse().loadSVG(reader, "myImage");
icon = new SVGIcon();
icon.setSvgURI(uri);

setPreferredSize(new Dimension(400, 400));
}

public void paintComponent(Graphics g)
{
final int width = getWidth();
final int height = getHeight();

g.setColor(getBackground());
g.fillRect(0, 0, width, height);

icon.paintIcon(this, g, 0, 0);
}

private String makeDynamicSVG()
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);

pw.println("<svg width=\"400\" height=\"400\" style=\"fill:none;stroke-width:4\">");
pw.println(" <circle cx=\"200\" cy=\"200\" r=\"200\" style=\"stroke:blue\"/>");
pw.println(" <circle cx=\"140\" cy=\"140\" r=\"40\" style=\"stroke:red\"/>");
pw.println(" <circle cx=\"260\" cy=\"140\" r=\"40\" style=\"stroke:red\"/>");
pw.println(" <polyline points=\"100 300 150 340 250 240 300 300\" style=\"stroke:red\"/>");
pw.println("</svg>");

pw.close();
return sw.toString();
}

}

But I want to render an SVG image that is not being created on the fly. An SVG Image I have already made on beforehand. So instead of referring to "myImage" (as in above) I want to do something like this:

class IconPanel extends JPanel { public static final long serialVersionUID = 0;

final SVGIcon icon;

public IconPanel()
{

SVGUniverse svgUni = new SVGUniverse();
StringReader reader = new StringReader(null);
URI pw = svgUni.loadSVG(reader, "C:/Users/TD_DS_IS/workspaceJuno/svgSalamander/res/SVG_til_Tattoo.svg");
icon = new SVGIcon();
icon.setSvgURI(pw);

setPreferredSize(new Dimension(400, 400));
}

public void paintComponent(Graphics g)
{
final int width = getWidth();
final int height = getHeight();

g.setColor(getBackground());
g.fillRect(0, 0, width, height);

icon.paintIcon(this, g, 0, 0);
}

private String makeDynamicSVG()
{
SVGUniverse svgUni = new SVGUniverse();
StringReader reader = new StringReader(null);
URI pw = svgUni.loadSVG(reader, "/svgSalamander/res/SVG_til_Tattoo.svg");
return pw.toString();
}

}

I want to render my own premade SVG - so which methods under SVGUniverse (or just universe as the link claims) can be used to do this?
Yeah, but how did the squirrel get in there? Was it because of the tiny ad?
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 1585 times.
Similar Threads
Practical SVG: where goest the styles?
WHY DONT APPLETS EXECUTE???
Line chart
Shapes with slider
Display text over an icon in Jlabel
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 18:43:33.