java - AffineTransform doesn't move image on key presses -


i'm having bit of trouble developing first java game using images instead of vector graphics. i'm experimenting moving image on key press affinetransform object. won't move. doing wrong? haven't tried using threads yet, not sure how this. if think help, please include in answer.

here code:

import java.awt.*; import java.net.*; import java.awt.event.*; import java.awt.geom.*; import java.applet.*; public class displayimage extends applet implements keylistener{     affinetransform identity = new affinetransform();     boolean left = false;     boolean right = false;     public url geturl(string filename)     {         url url = null;         try         {             url = this.getclass().getresource(filename);         }         catch(exception e){e.printstacktrace();}         return url;     }     private image image;     public void init()     {         image = getimage(geturl("spaceship.png"));         addkeylistener(this);     }     public void update(graphics g){paint(g);}     public void paint(graphics g)     {         affinetransform trans = new affinetransform();         trans.settransform(identity);          graphics2d g2d = (graphics2d)g;         g2d.setcolor(color.black);         g2d.fillrect(0,0,getsize().width,getsize().height);          if(left==true)         {             trans.translate(-10,0);             left = false;             repaint();         }         if(right==true)         {             trans.translate(10,0);             right = false;             repaint();         }         g2d.drawimage(image,0,0,this);     }     public void keypressed(keyevent e)     {         int keycode = e.getkeycode();         switch(keycode)         {         case keyevent.vk_right:             right = true;             repaint();         case keyevent.vk_left:             left = true;             repaint();         }     }     public void keytyped(keyevent e){}     public void keyreleased(keyevent e){}  } 

can please comment or answer? feel "tumbleweed" badge heading way.

overall, approach you're learning book far ideal games touched code anyway.

import java.awt.*; import java.net.*; import java.awt.event.*; import java.awt.geom.*; import java.applet.*; public class displayimage extends applet implements keylistener{   int coordx=0;//ship x axis position  int coordy=0;//ship y axis position  /*   0-------------------------x  0|   |   |   |   |   |   y  */ public url geturl(string filename) {     url url = null;     try     {         url = this.getclass().getresource(filename);     }     catch(exception e){e.printstacktrace();}     return url; } private image image; public void init() {     image = getimage(geturl("spaceship.png"));     addkeylistener(this); } public void update(){repaint();}//let update control calls repaint public void paint(graphics g) {      graphics2d g2d = (graphics2d)g;     g2d.setcolor(color.black);     g2d.fillrect(0,0,getsize().width,getsize().height);      g2d.drawimage(image,coordx,coordy,this);//paint spaceship updated coordinates } public void keypressed(keyevent e) {     int keycode = e.getkeycode();     //37=left arrow. 39=right arrow. 38=up & 40=down     if(keycode==37){coordx-=1;}else if(keycode==39){coordx+=1;}     if(keycode==38){coordy-=1;}else if(keycode==40){coordy+=1;}  update();//request repaint when logic has updated } public void keytyped(keyevent e){} public void keyreleased(keyevent e){}  } 

cheers

edit:: basic concept want work on.

private void maingameloop(){  while(pause==false){   updatelogic();//process movement, detect collisions etc   rendergraphics();//draw new frame   try{thread.sleep(25);}catch(interruptedexception e){e.printstacktrace();}//sleep thread control frame rate. (there more efficient ways sleep thread simplistic)  } } 

Comments