public class OurMovie { public static void main(String [] args) { Branch sceneRoot = new Branch(); Picture tree = new Picture(FileChooser.getMediaPath("tree-blue.jpg")); /// A village: // Make the village Picture house = new Picture(FileChooser.getMediaPath("house-blue.jpg")); MoveBranch village = new MoveBranch(150,450); // on bottom HBranch hhouses = new HBranch(40); // 40 pixels apart BlueScreenNode house1 = new BlueScreenNode(house.scale(0.25)); BlueScreenNode house2 = new BlueScreenNode(house.scale(0.25)); BlueScreenNode house3 = new BlueScreenNode(house.scale(0.25)); VBranch vhouses = new VBranch(-50); // move UP 50 pixels BlueScreenNode house4 = new BlueScreenNode(house.scale(0.25)); BlueScreenNode house5 = new BlueScreenNode(house.scale(0.25)); BlueScreenNode house6 = new BlueScreenNode(house.scale(0.25)); hhouses.addChild(house1); hhouses.addChild(house2); hhouses.addChild(house3); vhouses.addChild(house4); vhouses.addChild(house5); vhouses.addChild(hhouses); // a VBranch can be a child vhouses.addChild(house6); village.addChild(vhouses); MoveBranch mb = new MoveBranch(0,0); VBranch vb = new VBranch(80); BlueScreenNode treenode = new BlueScreenNode(tree.scale(0.5)); BlueScreenNode treenode1 = new BlueScreenNode(tree.scale(0.5)); BlueScreenNode treenode2 = new BlueScreenNode(tree.scale(0.5)); BlueScreenNode treenode3 = new BlueScreenNode(tree.scale(0.5)); BlueScreenNode treenode4 = new BlueScreenNode(tree.scale(0.5)); vb.addChild(treenode); vb.addChild(treenode1); vb.addChild(treenode2); vb.addChild(treenode3); vb.addChild(treenode4); mb.addChild(vb); sceneRoot.addChild(village); sceneRoot.addChild( mb ); FrameSequencer frames = new FrameSequencer("/tmp/"); frames.show(); Picture bg; for (int i = 0; i < 15; i++) { bg = new Picture(500,500); // Render the frame sceneRoot.drawOn(bg); frames.addFrame(bg); mb.moveTo( mb.getXPos() + 10 , mb.getYPos() ); } } // end main }