svn: r3638

This commit is contained in:
Kathy Gray 2006-07-06 22:30:02 +00:00
parent c3c98ebd6c
commit f537365c27
5 changed files with 34 additions and 58 deletions

View File

@ -16,13 +16,13 @@ public abstract class GameWorld extends World {
return this;
}
World nextWorld = this;
World nextWorld = this;
void oneStepPrivate(World oldWorld, World newWorld) {
((GameWorld) newWorld).timer = ((GameWorld) oldWorld).timer;
newWorld.display = oldWorld.display;
display.allowImage(false);
oldWorld.erase();
// oldWorld.erase();
newWorld.draw();
display.allowImage(true);
}
@ -56,39 +56,3 @@ public abstract class GameWorld extends World {
}
}
/* class TimerCallBack {
private World nextWorld;
TimerCallBack( World w) {
nextWorld = w;
}
public void callBack() {
rename.printer(nextWorld.toString());
nextWorld.erase();
nextWorld = nextWorld.onTick();
rename.printer(nextWorld.toString());
nextWorld.draw();
}
void updateNextWorld(World w) {
rename.printer("Calling update "+this.toString());
nextWorld = w;
}
}
class KeyCallBack {
private World nextWorld;
private TimerCallBack t;
KeyCallBack( World w, TimerCallBack t) {
nextWorld = w;
this.t = t;
}
public void callBack(dynamic key) {
rename.printer(key);
nextWorld = nextWorld.onKey(key);
rename.printer("Should call updateNextWorld next"+nextWorld.toString());
t.updateNextWorld(this.nextWorld);
}
}
*/

View File

@ -28,7 +28,7 @@ public class Image {
}
public Image overlayXY( Image i, Posn p) {
return new Image( rename.overlayXY( theImage, i.theImage, p.x, p.y));
return new Image( rename.overlayXY( theImage, p.x, p.y, i.theImage));
}
public Posn getPinhole() {

View File

@ -11,28 +11,35 @@ public class PictureFactory {
this.pinholeInCenter = pinholeInCenter;
}
Image setPinhole(Image i ) {
if (pinholeInCenter)
return i;
else
return i.putPinhole(new Posn(0,0));
}
public Image makeCircle( int r, String mode, Color c) {
return new Image( image.circle( r, rename.toSymbol(mode), c.toString() ) );
return setPinhole(new Image( image.circle( r, rename.toSymbol(mode), c.toString() ) ));
}
public Image makeRectangle( int width, int height, String mode, Color c) {
return new Image( image.rectangle( width, height, rename.toSymbol(mode), c.toString() ));
return setPinhole(new Image( image.rectangle( width, height, rename.toSymbol(mode), c.toString() )));
}
public Image makeEllipse( int width, int height, String mode, Color c) {
return new Image( image.ellipse( width, height, rename.toSymbol(mode), c.toString() ));
return setPinhole(new Image( image.ellipse( width, height, rename.toSymbol(mode), c.toString() )));
}
public Image makeTriangle( int edge, String mode, Color c) {
return new Image( image.triangle( edge, rename.toSymbol(mode), c.toString() ));
return setPinhole(new Image( image.triangle( edge, rename.toSymbol(mode), c.toString() )));
}
public Image makeLine( Posn to, Color c) {
return new Image( image.line(to.x,to.y,c.toString()));
return setPinhole(new Image( image.line(to.x,to.y,c.toString())));
}
public Image makeText( String text, int ptSize, Color c) {
return new Image( image.text( text, ptSize, c.toString() ) );
return setPinhole(new Image( image.text( text, ptSize, c.toString() ) ));
}
}

View File

@ -73,11 +73,11 @@ public class View {
//The Image is again an equality testable version of the canvas after applying all commands
//Issues the commands in reverse order
// public Image drawSequence( CommandSequence commands ) {
// commands.drawAll(this);
// dc.drawBitmap(buffer.getBitmap(), 0 ,0);
// return getBufferCopy();
// }
public Image drawSequence( CommandSequence commands ) {
commands.drawAll(this);
dc.drawBitmap(buffer.getBitmap(), 0 ,0);
return getBufferCopy();
}
//Methods not seen by students
@ -121,4 +121,9 @@ public class View {
//c.issue(buffer);
}
}
void drawToCanvas( Command c) {
if (!visible)
throw new RuntimeException("View must be displayed in order to draw in it");
c.issue(buffer);
}
}

View File

@ -24,14 +24,14 @@
(javac "Red.java")
(javac "White.java")
(javac "Yellow.java")
;(javac "Command.djava")
;(javac "DrawLine.djava")
;(javac "DrawRectangle.djava")
;(javac "DrawImage.djava")
(javac "Command.djava")
(javac "DrawLine.djava")
(javac "DrawRectangle.djava")
(javac "DrawImage.djava")
(javac "View.djava")
;(javac "CommandSequence.java")
;(javac "LargerSeq.java")
;(javac "EmptySeq.java")
(javac "CommandSequence.java")
(javac "LargerSeq.java")
(javac "EmptySeq.java")
(javac "World.java")
(javac "GameWorld.djava")
)))