Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (495)
Games in Android Showcase (114)
games submitted by our members
Games in WIP (563)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  applet and player movement help  (Read 1792 times)
0 Members and 1 Guest are viewing this topic.
Offline SunshineKiller

Junior Member





« Posted 2009-04-17 02:05:42 »

So im just trying to do an applet, where this @ moves around, but when i press up it jumps. well it incremenets how its supposed to but does it so rapidly. If i slow the thread down, of course that slows the game engine down. I also noticed that if i hit up then down then up then down several times the gap between the two get bigger and bigger. Can anyone suggest anything, thanks Wink

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
import java.applet.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Game extends Applet
implements Runnable, KeyListener {
   int x = 0;
   Thread t;
   Image buffer;
   Graphics bufferg;
   int player_y = 100;
   public void init() {
      // Start thread
     t = new Thread(this);
      t.start();
      // Create buffer
     Dimension d = getSize();
      buffer = createImage(d.width, d.height);
      addKeyListener(this);
   }
   public void run() {
      try {
         while(true) {
            //Request a repaint
           repaint();
            // Sleep before update
           Thread.sleep(50);
         }
      }
      catch(Exception e) {
      }
   }
   public void update(Graphics g) {
      paint(g);
   }
   public void paint(Graphics g) {
      //Get graphics object for buffer
     if (bufferg == null)
         bufferg = buffer.getGraphics();
      //Draw to buffer
     Dimension d = getSize();
      bufferg.setColor(Color.white);
      bufferg.fillRect(0, 0, d.width, d.height);
      bufferg.setColor(Color.black);
      bufferg.drawString("@", x, player_y);
      //Update screen
     g.drawImage(buffer, 0, 0, this);
     
      addKeyListener(this);
   }
   public void keyPressed(KeyEvent e) {
      if(e.getKeyCode()==(KeyEvent.VK_UP))
      {
         System.out.println(player_y);
         player_y-= 1;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_DOWN))
      {
         player_y+=1;
      }


   }
   public void keyReleased(KeyEvent e) {
      // TODO Auto-generated method stub

   }
   public void keyTyped(KeyEvent e) {
      // TODO Auto-generated method stub

   }
}


Output from pressing up once:
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75


<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Offline Xyle
« Reply #1 - Posted 2009-04-17 02:26:55 »

Just a quick peek...
 
Declare the playerY as a float and try incrementing by .25? or even lower?

Why +=? or -=? why not ++ or --? I just haven't used that syntax (yet). I did see it's used alot in for loops for incrementing a variable by a certain amount...

from http://www.freejavaguide.com/increment_decrement_operators.htm
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
class CountToTwenty  {

  public static void main (String args[]) {
    int i;
    for (i=0; i <=20; i += 2) {  //Note Increment Operator by 2
     System.out.println(i);
    }
   
 } //main ends here

}

Life is just a game, learn to play!
------------------------------------------
╬-YellzBellz Games!-╬ Cheesy
Offline SunshineKiller

Junior Member





« Reply #2 - Posted 2009-04-17 02:47:39 »

Just a quick peek...
 
Declare the playerY as a float and try incrementing by .25? or even lower?

Why +=? or -=? why not ++ or --? I just haven't used that syntax (yet). I did see it's used alot in for loops for incrementing a variable by a certain amount...

from http://www.freejavaguide.com/increment_decrement_operators.htm
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
class CountToTwenty  {

  public static void main (String args[]) {
    int i;
    for (i=0; i <=20; i += 2) {  //Note Increment Operator by 2
     System.out.println(i);
    }
   
 } //main ends here

}


thanks for the peek, i tried the floats, it decreases the "jumps" but after the up and downs the gap still gets bigger. I think my algorithm is just wrong. even used --; and ++; which makes more sense to use. Its really weird that im getting this gap to happen.

<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Hsaka
« Reply #3 - Posted 2009-04-17 04:04:20 »

Hi,

Remove the
1  
addKeyListener(this);
call from the paint method.

If you want smoother motion, try this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
import java.applet.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Game extends Applet
implements Runnable, KeyListener {
   int x = 0;
   Thread t;
   Image buffer;
   Graphics bufferg;
   boolean upPressed=false;
   boolean downPressed=false;
   int player_y = 100;
   public void init() {
      // Start thread
     t = new Thread(this);
      t.start();
      // Create buffer
     Dimension d = getSize();
      buffer = createImage(d.width, d.height);
      addKeyListener(this);
   }
   public void run() {
      try {
         while(true) {
            //Request a repaint
           repaint();
            // Sleep before update
           Thread.sleep(50);
         }
      }
      catch(Exception e) {
      }
   }
   public void update(Graphics g) {
      paint(g);
   }
   public void paint(Graphics g) {
      //Get graphics object for buffer
     if (bufferg == null)
         bufferg = buffer.getGraphics();
      //Draw to buffer
     Dimension d = getSize();
      bufferg.setColor(Color.white);
      bufferg.fillRect(0, 0, d.width, d.height);
      bufferg.setColor(Color.black);
      bufferg.drawString("@", x, player_y);
      //Update screen
     g.drawImage(buffer, 0, 0, this);
      inputHandler();
   }
   
   private void inputHandler()
   {
      if (upPressed)
      {
         upPressed=false;
         player_y-= 1;
      }
     
      if (downPressed)
      {
         downPressed=false;
         player_y+= 1;
      }
   }
   
   public void keyPressed(KeyEvent e) {
      if(e.getKeyCode()==(KeyEvent.VK_UP))
      {
//         System.out.println(player_y);
//         player_y-= 1;
        upPressed=true;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_DOWN))
      {
//         player_y+=1;
        downPressed=true;
      }


   }
   public void keyReleased(KeyEvent e) {
      // TODO Auto-generated method stub

   }
   public void keyTyped(KeyEvent e) {
      // TODO Auto-generated method stub

   }
}
Offline SunshineKiller

Junior Member





« Reply #4 - Posted 2009-04-17 04:23:36 »

Hi,

Remove the
1  
addKeyListener(this);
call from the paint method.

If you want smoother motion, try this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
import java.applet.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Game extends Applet
implements Runnable, KeyListener {
   int x = 0;
   Thread t;
   Image buffer;
   Graphics bufferg;
   boolean upPressed=false;
   boolean downPressed=false;
   int player_y = 100;
   public void init() {
      // Start thread
     t = new Thread(this);
      t.start();
      // Create buffer
     Dimension d = getSize();
      buffer = createImage(d.width, d.height);
      addKeyListener(this);
   }
   public void run() {
      try {
         while(true) {
            //Request a repaint
           repaint();
            // Sleep before update
           Thread.sleep(50);
         }
      }
      catch(Exception e) {
      }
   }
   public void update(Graphics g) {
      paint(g);
   }
   public void paint(Graphics g) {
      //Get graphics object for buffer
     if (bufferg == null)
         bufferg = buffer.getGraphics();
      //Draw to buffer
     Dimension d = getSize();
      bufferg.setColor(Color.white);
      bufferg.fillRect(0, 0, d.width, d.height);
      bufferg.setColor(Color.black);
      bufferg.drawString("@", x, player_y);
      //Update screen
     g.drawImage(buffer, 0, 0, this);
      inputHandler();
   }
   
   private void inputHandler()
   {
      if (upPressed)
      {
         upPressed=false;
         player_y-= 1;
      }
     
      if (downPressed)
      {
         downPressed=false;
         player_y+= 1;
      }
   }
   
   public void keyPressed(KeyEvent e) {
      if(e.getKeyCode()==(KeyEvent.VK_UP))
      {
//         System.out.println(player_y);
//         player_y-= 1;
        upPressed=true;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_DOWN))
      {
//         player_y+=1;
        downPressed=true;
      }


   }
   public void keyReleased(KeyEvent e) {
      // TODO Auto-generated method stub

   }
   public void keyTyped(KeyEvent e) {
      // TODO Auto-generated method stub

   }
}


duh im so retarded sometimes, thanks that did it Smiley

<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Offline SunshineKiller

Junior Member





« Reply #5 - Posted 2009-04-20 00:37:57 »

Ok i've ran into a problem i think its either my buffering or my tile algorithm, if anyone could please take a look and help out that would be awesome.
When i run it off my computer its fine, http://www.scottscreations.com/rpg/index.html run it in a browser off my server it lags like heck.

here is the code
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  
132  
133  
134  
135  
136  
137  
138  
139  
140  
141  
142  
143  
144  
145  
146  
147  
148  
149  
150  
151  
152  
153  
154  
155  
156  
157  
158  
159  
160  
161  
162  
163  
164  
165  
166  
167  
168  
169  
170  
171  
172  
173  
174  
175  
176  
177  
178  
179  
180  
181  
182  
183  
184  
185  
186  
187  
188  
189  
190  
191  
192  
193  
194  
195  
196  
197  
198  
199  
200  
201  
202  
203  
204  
205  
206  
207  
208  
209  
210  
211  
import java.applet.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import java.net.URL;

import javax.imageio.ImageIO;

public class Game extends Applet
implements Runnable, KeyListener {
   int player_x = 0;
   Thread t;
   Image buffer;
   Graphics bufferg;
   boolean upPressed=false;
   boolean downPressed=false;
   boolean leftPressed=false;
   boolean rightPressed=false;
   boolean jumped=false;
   int player_y = 100;
   Image heart;
   Image heart2;
   Image heart3;
   Rectangle playerbound;
   Image ladder;
   Image playerleft;
   Image playerright;
   Image plattile;
   Rectangle ladderbound;
   Rectangle platbound;
   boolean blocked = false;
   
   public void init() {
      // Start thread
     t = new Thread(this);
      t.start();
      // Create buffer
     Dimension d = getSize();
      buffer = createImage(d.width, d.height);
      playerleft = getImage(getURL("player_left.png"));
      playerright = getImage(getURL("player_right.png"));
      ladder = getImage(getURL("ladder.png"));
     
     
      heart = getImage(getURL("heart.png"));
      heart2 = getImage(getURL("heart.png"));
      heart3 = getImage(getURL("heart.png"));
     
      addKeyListener(this);
   }
   public void run() {
      try {
         while(true) {
            //Request a repaint
           repaint();
            // Sleep before update
           Thread.sleep(50);
         }
      }
      catch(Exception e) {
      }
   }
   public void update(Graphics g) {
      paint(g);
   }
   public void paint(Graphics g) {
      //Get graphics object for buffer
     if (bufferg == null)
         bufferg = buffer.getGraphics();
      //Draw to buffer
     Dimension d = getSize();
     
      playerbound = new Rectangle(player_x, player_y, playerright.getHeight(this), playerright.getWidth(this));
      ladderbound = new Rectangle(50, 350, ladder.getWidth(this) - 15, ladder.getHeight(this) -10);
      bufferg.setColor(Color.white);
      bufferg.fillRect(0, 0, d.width, d.height);
      bufferg.setColor(Color.black);
      Platform(-5, 450, 605, 25, bufferg);
      bufferg.drawImage(ladder, 40, 350, this);
      if(leftPressed)
      {
         bufferg.drawImage(playerleft, player_x, player_y, this);
      }
      else
      {
         bufferg.drawImage(playerright, player_x, player_y, this);
      }
      bufferg.drawString("Health: ", 5, 17);
      bufferg.drawImage(heart, 50, 5, this);
      bufferg.drawImage(heart2, 70, 5, this);
      bufferg.drawImage(heart3, 90, 5, this);
      //Update screen
     if(!playerbound.intersects(platbound))
      {
         player_y += 3;
         blocked = false;
      }
      blocked = true;
      g.drawImage(buffer, 0, 0, this);

      inputHandler();
   }
   
   private URL getURL(String string) {
      URL url = null;
      try {
         url = this.getClass().getResource(string);
      }
      catch(Exception e)
      {
         
      }
      return url;
   }
   private void Platform(int x, int y, int w, int h, Graphics g)
   {
      platbound = new Rectangle(x,y,w,h);
      plattile = getImage(getURL("platform.png"));
      int t = 0;
      for(int i = (int) platbound.getMinX(); i <= (int)platbound.getMaxX(); i++)
      {
         g.drawImage(plattile, t, (int) platbound.getMinY(), this);
         t+= 25;
      }
     
   }
   private void inputHandler()
   {
     
      if (leftPressed)
      {
         rightPressed=false;
         player_x-=2;
         player_y-=1;
      }
      if (rightPressed)
      {
         leftPressed=false;
         player_x+=2;
         player_y-=1;
      }
      if (jumped && !blocked)
      {
         int pjumpstart = player_y;
         while(jumped)
         {
            player_y -= 1;
            if(pjumpstart - player_y == 20)
            {
               jumped=false;
            }
         }
      }
      if( upPressed && playerbound.intersects(ladderbound))
      {
         player_y -= 5;
      }
   }
   
   public void keyPressed(KeyEvent e) {
      if(e.getKeyCode()==(KeyEvent.VK_UP))
      {
         upPressed=true;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_DOWN))
      {
         downPressed=true;
      }
      if(e.getKeyCode()==(KeyEvent.VK_LEFT))
      {
         leftPressed=true;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_RIGHT))
      {
         rightPressed=true;
      }
      if(e.getKeyCode()==KeyEvent.VK_SPACE)
      {
         jumped=true;
      }

   }
   public void keyReleased(KeyEvent e) {
      if(e.getKeyCode()==(KeyEvent.VK_UP))
      {
         upPressed=false;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_DOWN))
      {
         downPressed=false;
      }
      if(e.getKeyCode()==(KeyEvent.VK_LEFT))
      {
         leftPressed=false;
      }
      else if(e.getKeyCode()==(KeyEvent.VK_RIGHT))
      {
         rightPressed=false;
      }
      if(e.getKeyCode()==KeyEvent.VK_SPACE)
      {
         jumped=false;
      }

   }
   public void keyTyped(KeyEvent e) {
      // TODO Auto-generated method stub

   }
}


pretty basic, it has to render the tile though each update and that i think is what is causing it, its cool cause if i want to say make this platform here and make it this long it does it. But maybe i'm way off on the idea and there is a better way.

Thanks Smiley

<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Offline Hsaka
« Reply #6 - Posted 2009-04-20 01:29:47 »

1  
2  
playerbound = new Rectangle(player_x, player_y, playerright.getHeight(this), playerright.getWidth(this));
ladderbound = new Rectangle(50, 350, ladder.getWidth(this) - 15, ladder.getHeight(this) -10);


Creating new objects each time the render code is executed makes the garbage collector work overtime.

Another way is to do this in your init() method:

1  
2  
playerbound = new Rectangle();
ladderbound = new Rectangle();


Then in the paint() method:

1  
2  
playerbound.setBounds(player_x, player_y, playerright.getHeight(this), playerright.getWidth(this));
ladderbound.setBounds(50, 350, ladder.getWidth(this) - 15, ladder.getHeight(this) -10);


Also, the same thing goes for your Platform method:

In init():
1  
platbound = new Rectangle();


Then in Platform():
1  
platbound.setBounds(x,y,w,h);


Hope that helps.
Offline SunshineKiller

Junior Member





« Reply #7 - Posted 2009-04-20 01:33:46 »

1  
2  
playerbound = new Rectangle(player_x, player_y, playerright.getHeight(this), playerright.getWidth(this));
ladderbound = new Rectangle(50, 350, ladder.getWidth(this) - 15, ladder.getHeight(this) -10);


Creating new objects each time the render code is executed makes the garbage collector work overtime.

Another way is to do this in your init() method:

1  
2  
playerbound = new Rectangle();
ladderbound = new Rectangle();


Then in the paint() method:

1  
2  
playerbound.setBounds(player_x, player_y, playerright.getHeight(this), playerright.getWidth(this));
ladderbound.setBounds(50, 350, ladder.getWidth(this) - 15, ladder.getHeight(this) -10);


Also, the same thing goes for your Platform method:

In init():
1  
platbound = new Rectangle();


Then in Platform():
1  
platbound.setBounds(x,y,w,h);


Hope that helps.

thanks ill give it a shot, sometimes you stare at code so long you miss things Wink

<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Offline Hsaka
« Reply #8 - Posted 2009-04-20 01:37:46 »

Another thing you can try is to preload all images before your loop starts. Specifically, remove the
1  
plattile = getImage(getURL("platform.png"));

from Platform() and see if that makes any difference.
Offline SunshineKiller

Junior Member





« Reply #9 - Posted 2009-04-20 02:12:08 »

Another thing you can try is to preload all images before your loop starts. Specifically, remove the
1  
plattile = getImage(getURL("platform.png"));

from Platform() and see if that makes any difference.

ya, i just updated it, then found that tile was being "reloaded" over and over again and fixed that also, its now cleaned up and lag free, thankyou again.

<b>Check out my Development Blog:</b> <a href="http://www.scottscreations.com">Scotts Creations</a> | <b>Games in Development: </b> <a href="http://mechwarfare.scottscreations.com">Mech Warfare</a> | Mech Warfare: Facebook Edition | Game Master
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline MisterDre

Junior Newbie





« Reply #10 - Posted 2009-04-23 17:33:18 »

It's good that your movement is working out nicely, but there's another issue.
The while loop you're using for updating graphics?  Be rid of it.
What you want to do is use a Timer ( javax.swing.Timer ) and have your updates contained within an ActionLIstener class.
Like so :
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
class UpdateListener implements ActionListener 
         {
            public void actionPerformed(ActionEvent event)
            {
            repaint();
            }
         }
UpdateListener Update = new UpdateListener();
Timer t = new Timer(50, Update);
t.start();


Why you should do this : Timers can have multiple ActionListeners added to them and removed from them.  This is especially important when you have multiple things to refresh that will act in different ways, such as NPCs moving around according to their surroundings or the player's position.  You can also stop and start Timers, which is useful if you want to pause the game or only have some things being refreshed under certain conditions.
Other points include that you can remove ActionListeners from a timer (IE - removing the ActionListener from the timer when a component is removed from the screen).
Offline Gudradain
« Reply #11 - Posted 2009-04-23 18:01:29 »

I tried timer before and I wouldn't recommend it. Sure the a Timer with a calling to repaint() is the easiest way to get started for a begginer but I found out it had some issue. For example, the Timer was always like 2 milliseconds off the speed I want him to be... (Sometime like 10 millisec for fast timer).
Offline MisterDre

Junior Newbie





« Reply #12 - Posted 2009-04-23 20:16:07 »

I tried timer before and I wouldn't recommend it. Sure the a Timer with a calling to repaint() is the easiest way to get started for a begginer but I found out it had some issue. For example, the Timer was always like 2 milliseconds off the speed I want him to be... (Sometime like 10 millisec for fast timer).

However, you can still add multiple ActionListeners to a timer.  This is especially important when you have multiple objects in multiple classes all checking and reacting to certain conditions (Such as a ball changing direction when it touches a wall, or a turtle turning around when it approaches a cliff).
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

BurntPizza (14 views)
2014-09-19 03:14:18

Dwinin (31 views)
2014-09-12 09:08:26

Norakomi (58 views)
2014-09-10 13:57:51

TehJavaDev (79 views)
2014-09-10 06:39:09

Tekkerue (40 views)
2014-09-09 02:24:56

mitcheeb (62 views)
2014-09-08 06:06:29

BurntPizza (45 views)
2014-09-07 01:13:42

Longarmx (30 views)
2014-09-07 01:12:14

Longarmx (36 views)
2014-09-07 01:11:22

Longarmx (36 views)
2014-09-07 01:10:19
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!