Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (577)
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  
  Mouse input help  (Read 632 times)
0 Members and 1 Guest are viewing this topic.
Offline Bongkerz

Innocent Bystander





« Posted 2009-03-04 16:08:45 »

Hi all, im new to java programming and creating 2d games.
i am currently trying to make a space invaders game, i have it working as i intended it to.
Only prob i have now is how do i use the mouse in the game.

i want to have the mouse cursor as my aim/cross hair but i have no idea how i would do this.
my plan is to have the users use the mouse to target their enemies and then click to fire at the enemy.

i have searched for 2 days now trying to look for simple examples that explain how i could implement this in my game but i have had no luck so far. If this has been discussed already i am really sorry, i did search on the forum several times and cant find anything that helps me.

Thank you in advance for any help or advice you may have to assist me

Bongklerz
Offline Wildern

Junior Duke





« Reply #1 - Posted 2009-03-04 16:22:35 »

One method (possibly not the best) would be to enable mouse events in your contructor
1  
2  
      enableEvents(AWTEvent.MOUSE_EVENT_MASK);
      enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);

And then override the processEvent method.  My method is geared towards a tile-based board game, but it should give you a place to start.
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  
   protected void processEvent(AWTEvent evt) {
      MouseEvent mevt = (MouseEvent)evt;
      int y = mevt.getY();
      int x = mevt.getX();
      if (x < leftBorder || y < topBorder || x >= rightBorder || y >= bottomBorder) {
         return;
      }
      switch (evt.getID()) {
         case MouseEvent.MOUSE_PRESSED:
            pressedX = x;
            pressedY = y;
            break;
         case MouseEvent.MOUSE_RELEASED:
            if (pressedX == x && pressedY == y) {
               if (splash) {
               } else {
                  if (board[x][y].owner() == Tile.EMPTY) {
                     placeTile(x,y);
                     repaint();
                  }
               }
            }
            break;
         case MouseEvent.MOUSE_CLICKED:
            if (splash) {
            } else {
               if (board[x][y].owner() == Tile.EMPTY) {
                  placeTile(x,y);
                  repaint();
               }
            }
            break;
         case MouseEvent.MOUSE_MOVED:
         case MouseEvent.MOUSE_DRAGGED:
            if (mevt.getX() <= leftBorder || x >= rightBorder) {
               x = -1;
            }
            if (mevt.getY() <= topBorder || y >= bottomBorder) {
               y = -1;
            }
            if (x != highlightX || y != highlightY) {
               highlightX = x;
               highlightY = y;
               repaint();
            }
            break;
         default:
            super.processEvent(evt);
      }
   }
Offline pjt33
« Reply #2 - Posted 2009-03-04 16:55:19 »

One method (possibly not the best)
I wouldn't recommend doing that except for 4k competitions. The "correct" way to do it is to add a MouseListener and a MouseMotionListener to the relevant component. This is covered in Sun's Java Tutorial as part of the section on event listeners in Swing:
http://java.sun.com/docs/books/tutorial/uiswing/events/index.html
http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html
http://java.sun.com/docs/books/tutorial/uiswing/events/mousemotionlistener.html
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.

Longarmx (49 views)
2014-10-17 03:59:02

Norakomi (38 views)
2014-10-16 15:22:06

Norakomi (31 views)
2014-10-16 15:20:20

lcass (34 views)
2014-10-15 16:18:58

TehJavaDev (65 views)
2014-10-14 00:39:48

TehJavaDev (65 views)
2014-10-14 00:35:47

TehJavaDev (55 views)
2014-10-14 00:32:37

BurntPizza (72 views)
2014-10-11 23:24:42

BurntPizza (43 views)
2014-10-11 23:10:45

BurntPizza (84 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

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
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!