Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (108)
games submitted by our members
Games in WIP (536)
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  
  creating a gui and handling game windows  (Read 921 times)
0 Members and 1 Guest are viewing this topic.
Offline Sphinx

Junior Newbie





« Posted 2012-04-08 08:44:25 »

Hello,
i am working at he moment at a 2d turn basted space strategy game. I need to interact with the windows i draw to the screen but i am not quiet happy how i do it so i would like to get some info how to do it properly.
How it works for me now:
I have an input class which is processing the mouse input.
My game class is pulling the needed mouse information from my input class, and for a mouse click it calls a mouseClicked function in my galaxy class witch handles the logic of the galaxy.
The galaxy class is going through a list with all possible windows if some exist. If one is found where the mouse click happened the click routine of the window is called and the window does what it does with the click.

Overall i have the feeling that i am overdoing something and that there would be a better way to work with my in game windows than that what i am doing now.

Any tips or links that could lead me to a better understanding of this case would be nice.
Offline davedes
« Reply #1 - Posted 2012-04-08 18:37:11 »

Are you using LWJGL or Java2D?

If you're using LWJGL you might rather look into solutions like TWL or NiftyGUI.

If you're using Java2D you could just use Swing/AWT for GUI.

If you're using a homebrew library with your own widgets, your code might look something like this:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
    public static Widget getDeepestWidgetAt(Widget parent, int x, int y) {
       if (!parent.inside(x,  y))
          return null;
       
        for (int i=parent.childCount()-1; i>=0; i--) {
            Widget comp = parent.getChild(i);
           
            if (comp!=null && comp.isShowing()) {
                if (comp.inside(x, y)) {                    
                    return getDeepestWidgetAt(comp, x, y);
                }
            }
        }
       return parent;
    }


For mouse wheel, click, move, etc. you simply determine the deepest component underneath the mouse and then send the event to that component. For keyboard input, etc. you have to implement a focus system.

Offline Sphinx

Junior Newbie





« Reply #2 - Posted 2012-04-09 09:02:55 »

For the learning effect i am writing everything for myself. So it seems that i am not totally on the wrong way in doing the input handling which is good. Then i can can devote more time in this system to make it better. I would hate it to work weeks on this system and then release it was an to complicated way of doing things.
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.

CogWheelz (18 views)
2014-07-30 21:08:39

Riven (23 views)
2014-07-29 18:09:19

Riven (15 views)
2014-07-29 18:08:52

Dwinin (12 views)
2014-07-29 10:59:34

E.R. Fleming (33 views)
2014-07-29 03:07:13

E.R. Fleming (12 views)
2014-07-29 03:06:25

pw (43 views)
2014-07-24 01:59:36

Riven (43 views)
2014-07-23 21:16:32

Riven (30 views)
2014-07-23 21:07:15

Riven (31 views)
2014-07-23 20:56:16
List of Learning Resources
by SilverTiger
2014-07-31 18:29:50

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

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

HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54
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!