diff --git a/java/examples/Topics/File IO/LoadingXMLObjects/Bubble.pde b/java/examples/Topics/File IO/LoadingXMLObjects/Bubble.pde new file mode 100644 index 000000000..0f7605ebb --- /dev/null +++ b/java/examples/Topics/File IO/LoadingXMLObjects/Bubble.pde @@ -0,0 +1,34 @@ +// Learning Processing +// Daniel Shiffman +// http://www.learningprocessing.com + +// Example 18-9: Using Processing's XML library + +// A Bubble class +class Bubble { + + float x,y; + float diameter; +color c; + Bubble(float r,float g, float b, float d) { + x = width/2; + y = height/2; + c = color(r,g,b,150); + diameter = d; + } + + // Display Bubble + void display() { + stroke(0); + fill(c); + ellipse(x,y,diameter,diameter); + } + + // Bubble drifts upwards + void drift() { + x += random(-1,1); + y += random(-1,1); + x = constrain(x,0,width); + y = constrain(y,0,height); + } +} diff --git a/java/examples/Topics/File IO/LoadingXMLObjects/LoadingXMLObjects.pde b/java/examples/Topics/File IO/LoadingXMLObjects/LoadingXMLObjects.pde new file mode 100644 index 000000000..b1be5d564 --- /dev/null +++ b/java/examples/Topics/File IO/LoadingXMLObjects/LoadingXMLObjects.pde @@ -0,0 +1,62 @@ +/** + * Loading XML Data + * by Daniel Shiffman. + * + * This example demonstrates how to use loadXML() + * to retrieve data from an XML document and make + * objects from that data + * + * Here is what the XML looks like: + * + * + + 40 + + + + */ + +// An array of Bubble objects +Bubble[] bubbles; + +void setup() { + size(640, 360); + smooth(); + // Load an XML document + XML xml = loadXML("bubbles.xml"); + + // Get all the child elements + XML[] children = xml.getChildren("bubble"); + + // Make an array of objects the same size + bubbles = new Bubble[children.length]; + + for (int i = 0; i < children.length; i ++ ) { + + // The diameter is the content of the child named "Diamater" + XML diameterElement = children[i].getChild("diameter"); + int diameter = int(diameterElement.getContent()); + + // The color element has three attributes + XML colorElement = children[i].getChild("color"); + // An int for r g and b + int r = colorElement.getInt("red"); + int g = colorElement.getInt("green"); + int b = colorElement.getInt("blue"); + + // Make a new Bubble object with values from XML document + bubbles[i] = new Bubble(r, g, b, diameter); + } +} + + +void draw() { + background(255); + + // Display and move all bubbles + for (int i = 0; i < bubbles.length; i++ ) { + bubbles[i].display(); + bubbles[i].drift(); + } +} + diff --git a/java/examples/Topics/File IO/LoadingXMLObjects/data/bubbles.xml b/java/examples/Topics/File IO/LoadingXMLObjects/data/bubbles.xml new file mode 100644 index 000000000..fc79fb9a7 --- /dev/null +++ b/java/examples/Topics/File IO/LoadingXMLObjects/data/bubbles.xml @@ -0,0 +1 @@ + 40 20 80 \ No newline at end of file diff --git a/java/examples/Topics/File IO/LoadingXMLObjects/sketch.properties b/java/examples/Topics/File IO/LoadingXMLObjects/sketch.properties new file mode 100644 index 000000000..28faa5897 --- /dev/null +++ b/java/examples/Topics/File IO/LoadingXMLObjects/sketch.properties @@ -0,0 +1 @@ +mode=Standard