Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (533)
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  
  Picking tutorial wrong?  (Read 641 times)
0 Members and 1 Guest are viewing this topic.
Offline t_larkworthy

Senior Member


Medals: 1
Projects: 1


Google App Engine Rocks!


« Posted 2004-06-26 00:41:32 »

the tutorial is
http://www.xith.org/tutes/GettingStarted/html/picking.html

By my counts the mutex stuff will allow many mouse events to go past the rendering thread. OK for this example, but if you want to do something like mouse panning then you cant afford to lose a single mouse event. It could be the mouse release event.
Here is my bodged solution

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
synchronized (pickParamsMutex) {
                    while (mutexCount > 0) {
                        try {
                            if (e.getID() == MouseEvent.MOUSE_MOVED) {
                                return;
                            }
                            if (e.getID() == MouseEvent.MOUSE_DRAGGED) {
                                return;
                            }
                            pickParamsMutex.wait();
                        } catch (InterruptedException e1) {

                            System.out.println("waiting AWT thread woken up");
                        }
                    }
                    mutexCount++;

                }
                lastMouseEvent = e;


Combined with

1  
2  
3  
4  
5  
6  
synchronized (pickParamsMutex) {

            state = state.changeState(state, lastMouseEvent, canvas);
            mutexCount--;
            pickParamsMutex.notify();
        }


this way all incoming mouse event are stopped at the top and are only let through one at a time. I have a supsicion the order may not be preserved though. So those who need it might need a list or something. I have also in my example thrown out the dragged and moved if they have to be delayed. Some will still get through, its jsut so I don't get a massive pilup of those inessential events, enough will get through to my underlying behavour

Tom

Runesketch: an Online CCG built on Google App Engine where players draw their cards and trade. Fight, draw or trade yourself to success.
Offline t_larkworthy

Senior Member


Medals: 1
Projects: 1


Google App Engine Rocks!


« Reply #1 - Posted 2004-06-26 01:19:39 »

yeah ok. That post is rubbish. The code does not quite work either. But hopefully you will get my drift :-)

Runesketch: an Online CCG built on Google App Engine where players draw their cards and trade. Fight, draw or trade yourself to success.
Offline t_larkworthy

Senior Member


Medals: 1
Projects: 1


Google App Engine Rocks!


« Reply #2 - Posted 2004-06-26 01:36:14 »

well. It does actually work as it is. But the mutex count does noting meaningful. So ignore that bit and you will be ok.
Right its 2.30 a.m. I should go to bed before I write too much other rubbish

Runesketch: an Online CCG built on Google App Engine where players draw their cards and trade. Fight, draw or trade yourself to success.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Jens

Senior Member




Java for games!


« Reply #3 - Posted 2004-06-26 09:05:36 »

If you don't want to lose events, you can save them in a list instead of just setting a boolean flag. For the tutorial this isn't a problem. The synchronizing makes sure the rendering thread isn't interrupted while executing the picking code.

Xith3D Getting Started Guide (PDF,HTML,Source)
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.

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

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

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

Riven (22 views)
2014-07-23 20:56:16

ctomni231 (51 views)
2014-07-18 06:55:21

Zero Volt (46 views)
2014-07-17 23:47:54

danieldean (37 views)
2014-07-17 23:41:23

MustardPeter (40 views)
2014-07-16 23:30:00

Cero (57 views)
2014-07-16 00:42:17

Riven (55 views)
2014-07-14 18:02:53
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

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
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!