Today we will be upgrading version 1_01 with the 1_02_patch. You should be working now in your ~/public_html/reality directory. Assuming you already have version 1_01, you should download
/afs/acpub.duke.edu/project/web/egr54/src/1_02_patch
which contains the demos from Tuesday's class, the improved ReBox with "wrap" and attenuation, and various other improvements deep within the bowels of Reality.java (hey, I'm in BME).
You shouldn't need to update your directory ~/public_html/reality/std_graphics since we haven't added any graphics. Compile and run the three new demos:
DemoOrbit DemoShoot DemoTargetand look over the code to review Tuesday's lecture.
In an effort to veer away from uniform assignments towards individual projects, I'm going to try something new and set desired benchmarks: features that would be nice for certain demos or for Reality.java as a whole. I'll divide these benchmarks into two sections, for the introductory (EGR54) and advanced (EGR184) courses, although EGR54 students are welcome to work on the EGR184 benchmarks. Further suggestions for benchmarks are welcome. Don't forget to use our newsgroup:
duke.courses.egr054
INTRODUCTORY BENCHMARKS
(1) Make a constructor for ReBullet that takes ReVector as its argument, and simplify DemoShoot and DemoTarget, correspondingly. This is a fundatmental direction for developing libraries such as Reality.java: Reduce the number of lines in the user application by adding functionality to the library.
(2) Modify DemoTarget so that bullets are destroyed when they disappear from the screen. This will make the game more fun, by avoiding the eventual slowdown that occurs with the buildup of distant bullets. But it will introduce a computational load of its own. An elegant way to do this is to build an enforcer for the ReBox object. If you want help, check out what Ashish has done.
ADVANCED BENCHMARKS
(1) Import the new graphical sprites from the Macintosh game, Maestrom, which I have as Macintosh resource files, turn them into .gif files, and write objects to use them (2) Make a separate Instructions scrollable window, to replace typing the '?' to get instructions. This raises the question: can we have multiple windows on the browser?
(3) Make Reality load faster on the browser.
(4) Make Reality work properly on Macintosh with Netscape. Sometimes it won't work at all and other times the blue ship disappears when it rotates.