Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (494)
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  
  Game Board running in a BorderLayout panel  (Read 2424 times)
0 Members and 1 Guest are viewing this topic.
Offline ylima

Innocent Bystander





« Posted 2010-12-27 20:54:13 »

Guys, I'm making a RTS game that needs to move the screen vision around the map.
To do it, I'm thinking about using an invisible component positioned on each side of the screen in a border layout.
When the mouse is over this component, it fires an action which moves the screen.
We know a game uses lots of memmory an proccessing. How a borderLayout whoud interfer in this process? Whould it take lots of processing? Is there a better way to do it?
Thanks
Online philfrei
« Reply #1 - Posted 2011-01-10 02:26:50 »

The idea of an invisible component with a MouseListener on the edges seems pretty cool to this Noob. But placing the components on your display panel, handling things like the overlapping of the game area, and getting the various component classes to communicate to one another seems like a big headache to me. Maybe it is doable, and a more experienced person will describe how.

But as a simpler alternative, building off of your basic idea, how about using a MouseMotionListener instead? You probably already have a MouseMotionListener in your main playing area, yes? If so, maybe this: define two X values, one for the left and one for the right, and test the mouse's X position against these.

"Greetings my friends! We are all interested in the future, for that is where you and I are going to spend the rest of our lives!" -- The Amazing Criswell
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #2 - Posted 2011-01-11 00:58:53 »

I definitely wouldn't do a component. Instead use a timer and the last known mouse position.

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  
public class MyClass implements MouseMotionListener, ActionListener
{
    int mouseX, mouseY;
    Timer timer;

    public void mouseMoved(MouseEvent e)
    {
        mouseX = e.getX();
        mouseY = e.getY();
    }

    public MyClass()
    {
        timer = new Timer(10, this);
        timer.start();
    }

    public void actionPerformed(ActionEvent e)
    {
        if (mouseX >= getWidth() - 50)
        {
            scrollRight();
        }
        //etc.
   }

}

See my work:
OTC Software
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Aeroren

Senior Newbie


Medals: 1



« Reply #3 - Posted 2011-01-11 16:51:05 »

I don't understand what the use of the timer is in the above example. Why not just add a mouselistener with your code to the JFrame the gameboard is in?
Offline pjt33
« Reply #4 - Posted 2011-01-11 16:53:22 »

I don't understand what the use of the timer is in the above example. Why not just add a mouselistener with your code to the JFrame the gameboard is in?
The timer is so that it will continue to scroll the playfield while the mouse remains on the edge.
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #5 - Posted 2011-01-11 20:06:27 »

I don't understand what the use of the timer is in the above example. Why not just add a mouselistener with your code to the JFrame the gameboard is in?
The timer is so that it will continue to scroll the playfield while the mouse remains on the edge.
Exactly. A MouseMotionListener will only fire events as they happen, and there is no "mouseIsDoingNothing" event. Because of this, you need to add a timer of some kind.

See my work:
OTC Software
Offline Aeroren

Senior Newbie


Medals: 1



« Reply #6 - Posted 2011-01-11 21:03:19 »

Oh, right, I usually have startDoingSomething() and a stopDoingSomething() methods, so that's why i was confused.
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #7 - Posted 2011-01-12 01:29:14 »

Oh, right, I usually have startDoingSomething() and a stopDoingSomething() methods, so that's why i was confused.
Even so, doingSomething() will need to be executed by some sort of loop or timer.

See my work:
OTC Software
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.

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

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

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

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

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

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

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

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

Longarmx (28 views)
2014-09-07 01:10:19

mitcheeb (37 views)
2014-09-04 23:08:59
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!