Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
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 [2]
  ignore  |  Print  
  Buttons  (Read 9519 times)
0 Members and 1 Guest are viewing this topic.
Offline Vinicius

Junior Newbie





« Reply #30 - Posted 2008-09-26 14:49:34 »

fletchergames gave a very good sugestion.

You should not use Swing components for the buttons of your game.

Use image instead. A Sprite.   
You could create a class button that basically contains the x,y axis of the button in the screen, it's size. 
You can twist the class adding a list of images this button can have, methods for positioning, etc... 

Create a png file for the button ( bitmap, jpg, gif, whatever ). Use a BufferedImage to save that png on memory and then draw it on the screen using the drawImage method of your Graphics object in the x,y position. 

Using mouse action listeners, you can get x,y output of a mousePressed event and then check if the button X postion plus its Width intersects X you got from mousePressed, same thing to Y axis of the button and its Height.
And do whatever action you need.

 

Offline fletchergames

Senior Member





« Reply #31 - Posted 2008-09-26 15:49:16 »

If you want to use Swing buttons, you can still give them images.  Just override the paintComponent method of JButton.  Or, since he seems to be using AWT, I think he would have to override the paint method of Button.

I went completely overboard and created my own "widgets" that are equivalent to components in most ways.  The reason I went to all that trouble was because I wanted to make image buttons that stretched appropriately when the window was resized.  This wasn't too hard, but the layout I had created didn't work too well with normal Swing components.  So I wound up doing a couple more widgets.

By that point, it was always as easy to do "one more thing" as it was to go back.  And then my 6-month project took over a year to complete (just finishing up now).

I like the result, but it probably wasn't worth that much effort.  Plain AWT/Swing image buttons are much easier to implement.

I plan to eventually make my widget library (such as it is) available on my website.  Some people might find it useful.  It runs on top of Swing, but my widgets generally have a much smaller memory footprint than Swing components.  On the other hand, they aren't as configurable.  And I've only implemented so many different kinds of widgets.

ok all goes well.  now im creating a character select screen.  the characters i draw here i would like to implement in game play and other panels.   what would be the best way to create these?   put them in their own classs?   method?     maybe put each character on a transparent panel? 

any thoughts? suggestions?


also why is actionlistener a parameter?
Read http://fivedots.coe.psu.ac.th/~ad/jg/.  Also, purchase the whole book, Killer Game Programming in Java.  Also, purchase Developing Games in Java.  These two books will teach you all about sprites.  They have nothing to do with Awt or Swing.

ActionListener is a parameter just so that you can get it from your main class into the TitlePanel class.  You have to send some kind of information from one class to the other.
Offline neoskunk

Junior Member





« Reply #32 - Posted 2008-09-26 17:05:44 »

so in effect you can make anything act as a button?   create my sprite and then when the mouse is over its coordinates and clicked the applet takes action?   in terms of animation it would be better to draw my characters rather than make them a png file right? 
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline neoskunk

Junior Member





« Reply #33 - Posted 2008-09-26 22:02:48 »

ok how about this.   the only animations the character will need is to move arms and legs.   so could i create a gif image of the character minus say his arm and then when i needed to move the arm i could just draw it?    or would that look funny?   
Offline CaptainJester

JGO Knight


Medals: 12
Projects: 2
Exp: 14 years


Make it work; make it better.


« Reply #34 - Posted 2008-09-27 00:13:28 »

ok how about this.   the only animations the character will need is to move arms and legs.   so could i create a gif image of the character minus say his arm and then when i needed to move the arm i could just draw it?    or would that look funny?   

No.  Just create complete frames of animation.  You need to keep it simple at this point.

Here is an excellent tutorial on making sprites: http://www.zoggles.co.uk/asp/tutorials.asp?tut=17
Here is one on using them: http://www.cokeandcode.com/spaceinvaderstutorial

Offline neoskunk

Junior Member





« Reply #35 - Posted 2008-09-27 00:52:33 »

so far i created a class with bufferedimage methods for each character.  the buffered image background is transparent and the character is all that shows up.  so let me make sure im thinking this through correctly.   during gameplay i want the characters to appear like they are walking only if a direction arrow(left or right) is pushed.   this can just be a loop of sorts right?    like while the key is pushed loop through the animation frames?
Offline stef569

Junior Member





« Reply #36 - Posted 2008-09-27 10:12:40 »

Lookup David Brackeen on google search for his 2003 book search for the Animation class, that's all you need to animate a bunch of images.

when left is pressed(and hold) you use the leftAnimation
when released you use the standardAnimation.

and a sprite has 1 animation
Offline fletchergames

Senior Member





« Reply #37 - Posted 2008-09-27 16:39:12 »

so in effect you can make anything act as a button?   create my sprite and then when the mouse is over its coordinates and clicked the applet takes action?   in terms of animation it would be better to draw my characters rather than make them a png file right? 
No, you don't want to make your sprites be buttons.

There's nothing wrong with getting your characters from a .png file.  Typically, that's what you would do because an artist would be the one doing the art.

ok how about this.   the only animations the character will need is to move arms and legs.   so could i create a gif image of the character minus say his arm and then when i needed to move the arm i could just draw it?    or would that look funny?   
In theory, you could.  I read something about this once, though I don't have the URL any more.  It's just not something people normally do.  Have the artist draw several frames so that you have animations.

You really need to read one of the books I mentioned or a tutorial or something.  Most of your questions are about things that you should learn from reading these books.
Offline neoskunk

Junior Member





« Reply #38 - Posted 2008-09-27 22:45:15 »

fletcher you said i dont want my sprites to be buttons why is that?  i didnt mean make them actual buttons but on the character select screen i want the user to click on the character they want to use.   so far i have drawn the characters and then used mousemotionlistener and mouselistener so that when the user clicks in the coordinates of the character the applet shows the next panel or whatever.   the animation doesnt occur until in the game is there anything wrong with my method so far?
Offline CaptainJester

JGO Knight


Medals: 12
Projects: 2
Exp: 14 years


Make it work; make it better.


« Reply #39 - Posted 2008-09-28 15:14:07 »

fletcher you said i dont want my sprites to be buttons why is that?  i didnt mean make them actual buttons but on the character select screen i want the user to click on the character they want to use.   so far i have drawn the characters and then used mousemotionlistener and mouselistener so that when the user clicks in the coordinates of the character the applet shows the next panel or whatever.   the animation doesnt occur until in the game is there anything wrong with my method so far?

No.  You are on the right track.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline fletchergames

Senior Member





« Reply #40 - Posted 2008-09-29 02:55:35 »

fletcher you said i dont want my sprites to be buttons why is that?  i didnt mean make them actual buttons but on the character select screen i want the user to click on the character they want to use.   so far i have drawn the characters and then used mousemotionlistener and mouselistener so that when the user clicks in the coordinates of the character the applet shows the next panel or whatever.   the animation doesnt occur until in the game is there anything wrong with my method so far?
I thought you were talking about on the main screen.  Never mind.
Offline neoskunk

Junior Member





« Reply #41 - Posted 2008-09-29 04:09:12 »

is there any way to make an awt button push when enter is pressed?  basically is there an equivalent to setDefaultButton(..); in awt not swing.  also is there any way to make the cursor start in the text field?  as is now the user has to click on the text field to start typing.


also.....i am having the user enter a user name.   whats the best way to check and make sure they did this.   i am using string.length(); right now but if they just enter spaces length() returns a value.
how do i get around this?
Offline Wildern

Junior Member





« Reply #42 - Posted 2008-09-29 15:36:21 »

You could set up an event handler to capture key presses, validate that each key pressed is within your allowed set of characters, and build the final input string as they type.
Offline neoskunk

Junior Member





« Reply #43 - Posted 2008-09-30 21:07:56 »

ok so im trying to figure out animation....i can get the image to move but i only want it to move when a key is pressed.

can anyone explain why this code doesnt work?

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  
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;


public class testGame extends Applet implements Runnable, KeyListener
{
    int x = 0;
    int y = 500;
    Thread th = new Thread(this);
 
public void init()
{
    setBackground(Color.white);

}


public void keyTyped(KeyEvent e) { e.consume();}
public void keyReleased(KeyEvent e) {e.consume();}
public void keyPressed(KeyEvent e)
{
    if (e.getKeyCode() == KeyEvent.VK_RIGHT)
        th.start();
       
        e.consume();
}


public void paint (Graphics g)
{
    Characters Create = new Characters();
    g.setColor(Color.red);
    g.fillRect(450,300,100,265);
    g.drawImage(Create.createBSprite(),x,y,this);
    g.setColor(Color.green);
    g.fillRect(0,565,1000,35);  
   
}

public void run()
{
    while (true)
    {
        x++;
        repaint();
       
        try
        {
            Thread.sleep(20);
        }
        catch(InterruptedException ex)
        {
        }
    }
}



}

class Characters
{
       
         BufferedImage createBSprite()
        {
            BufferedImage sprite = new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
            Graphics2D g2D = sprite.createGraphics();
            g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
            g2D.fillRect(0,0,100,100);
            g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f));
            g2D.setColor(Color.black);
            //head
           g2D.fillOval(42,20,17,16);
            //neck
           g2D.fillRect(48,35,7,4);
            //body
           g2D.fillArc(42,36,17,16,0,180);
            g2D.fillRect(43,44,16,10);
            //left leg and foot
           g2D.fillRect(44,54,3,8);
            g2D.fillRect(44,62,6,3);
            //right leg and foot
           g2D.fillRect(55,54,3,8);
            g2D.fillRect(55,62,6,3);
            //right arm
           g2D.fillRect(58,44,10,3);
            g2D.fillOval(64,41,12,8);
            //left arm
           g2D.fillRect(36,44,8,3);
            g2D.fillOval(32,43,5,5);
            return sprite;
       
        }

       

       
         
       
        }
}
Offline Wildern

Junior Member





« Reply #44 - Posted 2008-10-01 02:37:41 »

Because you start the thread when the key is pressed and the thread never stops.

I would recommend something like

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
public void keyReleased(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_RIGHT)
        mvRight=false;

    e.consume();
}
public void keyPressed(KeyEvent e)
{
    if (e.getKeyCode() == KeyEvent.VK_RIGHT)
        mvRight = true;
       
        e.consume();
}


Then, in your paint method, you can check the status of mvRight in order to increment x.
Offline neoskunk

Junior Member





« Reply #45 - Posted 2008-10-01 04:52:41 »

ok given that shouldn't this work?  and the problem isnt that the loop continues forever.  it wont work at all with the key thing.  the animation will work if i just put x++ in the run method but
i dont want it to run forever just run when the keys are pressed.

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  
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;


public class testGame extends Applet implements Runnable, KeyListener
{
    int x = 0;
    int y = 500;
    Thread th = new Thread(this);
    boolean right = false;
 
public void init()
{
    setBackground(Color.white);

}

public void start()
{
    th.start();
}


public void keyTyped(KeyEvent e) { e.consume();}
public void keyReleased(KeyEvent e)
{
    if (e.getKeyCode() == KeyEvent.VK_RIGHT)
        right = false;
       
    e.consume();
}
public void keyPressed(KeyEvent e)
{
    if (e.getKeyCode() == KeyEvent.VK_RIGHT)
        right = true;
       
    e.consume();
}


public void paint (Graphics g)
{
    if(right)
        x++;
    Characters Create = new Characters();
    g.setColor(Color.red);
    g.fillRect(450,300,100,265);
    g.drawImage(Create.createBSprite(),x,y,this);
    g.setColor(Color.green);
    g.fillRect(0,565,1000,35);  
   
}

public void run()
{
    while (true)
    {
        repaint();
       
        try
        {
            Thread.sleep(20);
        }
        catch(InterruptedException ex)
        {
        }
    }
}



}

class Characters
{
     BufferedImage createBSprite()
        {
            BufferedImage sprite = new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
            Graphics2D g2D = sprite.createGraphics();
            g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
            g2D.fillRect(0,0,100,100);
            g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f));
            //head
           g2D.fillOval(42,20,17,16);
            //neck
           g2D.fillRect(48,35,7,4);
            //body
           g2D.fillArc(42,36,17,16,0,180);
            g2D.fillRect(43,44,16,10);
            //left leg and foot
           g2D.fillRect(44,54,3,8);
            g2D.fillRect(44,62,6,3);
            //right leg and foot
           g2D.fillRect(55,54,3,8);
            g2D.fillRect(55,62,6,3);
            //right arm
           g2D.fillRect(58,44,10,3);
            g2D.fillOval(64,41,12,8);
            //left arm
           g2D.fillRect(36,44,8,3);
            g2D.fillOval(32,43,5,5);
            return sprite;
       
        }
}
       
Offline CaptainJester

JGO Knight


Medals: 12
Projects: 2
Exp: 14 years


Make it work; make it better.


« Reply #46 - Posted 2008-10-01 12:25:41 »

You forgot the addKeyListener(this).  You need to do things differently though.

1.  If you are doing drawing in paint, do only drawing.  Do not do any game logic or loading of resources.
2.  All the resources you are going to use for a level should be loaded ahead of time.
3.  Having said #1 above, you should use active rendering anyway.
4.  Use the thread you created and use it as a game loop.
5.  Use double buffering to stop flickering.

Search on 3, 4 and 5 to find out how to use them  Make sure you put Java in your search to get Java specific examples.  I modified your code to get you started.
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  
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class Test extends Applet implements Runnable, KeyListener {
    int x = 0;
    int y = 500;
    Thread th = new Thread(this);
    BufferedImage sprite;
    boolean keys[];
    boolean paused;

    public void init() {
        setBackground(Color.white);
        addKeyListener(this);
        keys = new boolean[65536];
        th.start();
        Characters create = new Characters();
        sprite = create.createBSprite();
        paused = false;
    }

    public void start() {
        paused = false;
    }
   
    public void stop() {
        paused = true;
    }

    public void keyTyped(KeyEvent e) {
    }

    public void keyReleased(KeyEvent e) {
        keys[e.getKeyCode()] = false;
    }

    public void keyPressed(KeyEvent e) {
        keys[e.getKeyCode()] = true;
    }

    //override paint and update to stop any system rendering
   public void update(Graphics g) {
    }
    public void paint(Graphics g) {
    }

    public void run() {
        while (true) {
            //game loop
           if(!paused) {
                Graphics2D g = (Graphics2D)getGraphics();
                //game logic
               if(keys[KeyEvent.VK_RIGHT]) {
                    x++;
                }
                if(keys[KeyEvent.VK_LEFT]) {
                    x--;
                }
               
                //rendering
               g.setColor(Color.WHITE);
                g.fillRect(0, 0, getWidth(), getHeight());
                g.drawImage(sprite, x, y, this);
                g.dispose();
               
                try {
                    Thread.sleep(20);
                }
                catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
            else {
                try {
                    Thread.yield();
                    Thread.sleep(100);
                }
                catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

}

class Characters {
    BufferedImage createBSprite() {
        BufferedImage sprite = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2D = sprite.createGraphics();
        g2D.setColor(Color.RED);
        g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
        g2D.fillRect(0, 0, 100, 100);
        g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f));
        // head
       g2D.fillOval(42, 20, 17, 16);
        // neck
       g2D.fillRect(48, 35, 7, 4);
        // body
       g2D.fillArc(42, 36, 17, 16, 0, 180);
        g2D.fillRect(43, 44, 16, 10);
        // left leg and foot
       g2D.fillRect(44, 54, 3, 8);
        g2D.fillRect(44, 62, 6, 3);
        // right leg and foot
       g2D.fillRect(55, 54, 3, 8);
        g2D.fillRect(55, 62, 6, 3);
        // right arm
       g2D.fillRect(58, 44, 10, 3);
        g2D.fillOval(64, 41, 12, 8);
        // left arm
       g2D.fillRect(36, 44, 8, 3);
        g2D.fillOval(32, 43, 5, 5);
        return sprite;

    }
}

Offline neoskunk

Junior Member





« Reply #47 - Posted 2008-10-01 18:09:18 »

ok thanks that makes more sense.  i know how to double buffer i just didnt do it yet.   also why is the key boolean array so large? 
Offline CaptainJester

JGO Knight


Medals: 12
Projects: 2
Exp: 14 years


Make it work; make it better.


« Reply #48 - Posted 2008-10-01 18:13:19 »

also why is the key boolean array so large? 

All the values in KeyEvent go from 0 to 65535.  So this is the lazy way of doing it.

Offline neoskunk

Junior Member





« Reply #49 - Posted 2008-10-02 01:29:20 »

ok here is what i have double buffering and all.   when the left or right keys are pushed the character moves...done.  when the up or down keys are pushed the character should raise or lower his arm....as in aiming a gun.   is the easiest way to do this with an array of images as i have now?   if so what is a good program to use to make my sprites?

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  
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class Test extends Applet implements Runnable, KeyListener {
    int x = 0;
    int y = 500;
    int z = 0;
    Thread th = new Thread(this);
    BufferedImage offscreen = new BufferedImage(1000,600,BufferedImage.TYPE_INT_RGB);
    Graphics2D bufferGraphics = offscreen.createGraphics();
    boolean keys[];
    boolean paused;
    Image sprite[] = new Image[10];

   
    public void init() {
        setBackground(Color.white);
        addKeyListener(this);
        keys = new boolean[65536];
        th.start();
        Characters create = new Characters();
        sprite[0] = getImage(getCodeBase(),"sprite0.gif");
        sprite[1] = getImage(getCodeBase(),"sprite1.gif");
        sprite[2] = getImage(getCodeBase(),"sprite2.gif");
        sprite[3] = getImage(getCodeBase(),"sprite3.gif");
        paused = false;
    }

    public void start() {
        paused = false;
    }
   
    public void stop() {
        paused = true;
    }

    public void keyTyped(KeyEvent e) {
    }

    public void keyReleased(KeyEvent e) {
        keys[e.getKeyCode()] = false;
    }

    public void keyPressed(KeyEvent e) {
        keys[e.getKeyCode()] = true;
    }

    //override paint and update to stop any system rendering
 
    public void paint(Graphics g) {}
    public void update(Graphics g) {}

    public void run() {
        while (true) {
            //game loop
           if(!paused) {
                Graphics2D g = (Graphics2D)getGraphics();
                //game logic
               if(keys[KeyEvent.VK_RIGHT] && x < 374) {
                    x++;
                }
                if(keys[KeyEvent.VK_LEFT] && x > -3) {
                    x--;
                }
               
                if(keys[KeyEvent.VK_UP] && z < 9)  {
                    z++;
                }
               
                if(keys[KeyEvent.VK_DOWN] && z > 0) {
                    z--;
                }
               
                //rendering
               bufferGraphics.setColor(Color.WHITE);
                bufferGraphics.fillRect(0, 0, getWidth(), getHeight());
                bufferGraphics.setColor(Color.red);
                bufferGraphics.fillRect(0,300,30,300);
                bufferGraphics.fillRect(450,300,100,300);
                bufferGraphics.setColor(Color.green);
                bufferGraphics.fillRect(0,565,1000,35);
                bufferGraphics.drawImage(sprite[z], x, y, this);
                g.drawImage(offscreen,0,0,this);
                g.dispose();
               
                try {
                    Thread.sleep(20);
                }
                catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
            else {
                try {
                    Thread.yield();
                    Thread.sleep(100);
                }
                catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

}
Pages: 1 [2]
  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 (16 views)
2014-09-21 02:42:18

BurntPizza (13 views)
2014-09-21 01:30:30

moogie (13 views)
2014-09-21 00:26:15

UprightPath (24 views)
2014-09-20 20:14:06

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

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

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

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

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

mitcheeb (70 views)
2014-09-08 06:06:29
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!