Advertisement

[java] Still more graphical problems.

Started by February 21, 2000 04:58 PM
0 comments, last by Smoo 24 years, 9 months ago
Well I''m back.. and with the same problem as last time. I''ve been checking up for info and haven''t found much to say the least so I''ll repost my problem in more depth and hopefully it''s just a small little detail that I''m missing. Ok here''s the scoop: I''ve got a class that I''m running called MapScroller which is obviously what it says; that''s where my guy is running around the map. So when I''m calling the function to display the user-made window that holds text (the window looks very similar to the ones in final fantasy) I have this: public class MapScroller extends Canvas implements Runnable { public MapScroller (TheGame g1) { game = g1; } ... ... public boolean keyDown(Event evt, int key) { ... case Event.ENTER: game.dialog.setDialogText("Healing Potion Found"); game.dialog.setBkground(snapShot); game.loadDialog(); } } ok, now in every class constructor I have game = g1 which is where I load and unload all my classes from which is shown here: public class TheGame extends Frame { charDialog dialog; MapScroller m1; public void init() { dialog = new charDialog(this); m1 = new MapScroller(this); } public void loadDialog() { remove(m1); add(dialog); resize(648, 505); dialog.init(); } } I load up all the other classes (that extend cavas) in similar manners to simulate switching from window to window. This is fine up until now though where I get the problem with the charDialog. Here''s a snippet from that: public class charDialog extends Canvas { charDialog(TheGame g1) { setSize(648,506); game = g1; } public void init() { offscreenImage = createImage(getSize().width, getSize().height); offscreen = offscreenImage.getGraphics(); ... repaint(); } public void paint(Graphics g) { requestFocus(); offscreen.setFont(font); offscreen.drawImage(bkgroundImage, 0, 0, this); createDialog(); ... g.drawImage(offscreenImage, 0, 0, this); } public void update(Graphics g) { paint(g); } public void setDialogText(String text) { dialogText = text; } public void setBkground(Image image) { bkgroundImage = image; } } ok phew, I think that about covers the code part. So here''s where the "flicker" takes place. What I believe to be the problem is in TheGame class where I remove(m1) then add(dialog), it removes the mapscroller so it has to draw something (a blank screen) then it adds the chardialog, then it repaints it. Now what I''m thinking is that I need to place the add, remove, init commands in a certain order that will make it not draw the blank screen. Now from the possible solutions that I had received before (making an invisible background) which sounded like a very sweet idea (and I''d still like to learn how), I checked out the web site that had the info on it but it was about as helpful and the MSDN that comes with VJ++. What I need to understand something is code and that''s why the help for java really bites So I still don''t know if the invisible/transparent background thing would work or not. So I''m hoping you folks out there will be able to help me out again Thanks. Smoo


Edited by - Jim_Ross on 2/21/00 5:15:42 PM

This topic is closed to new replies.

Advertisement