[Gambas-user] gb3: sorting an array-like structure

nando nando_f at ...951...
Tue May 10 03:48:36 CEST 2011


I looked at the YouTube: cool!!!

After working with OpenGL, you basically need to calculate
which is nearer or farther away from the 'eye'
I don't believe there is anything native in Gambas, this is very unique.
But I am thinking...


---------- Original Message -----------
From: Kevin Fishburne <kevinfishburne at ...1887...>
To: gambas-user at lists.sourceforge.net
Sent: Mon, 09 May 2011 20:27:53 -0400
Subject: Re: [Gambas-user] gb3: sorting an array-like structure

> On 05/05/2011 07:50 AM, Fabien Bodard wrote:
> > 2011/5/5 Kevin Fishburne<kevinfishburne at ...1887...>:
> >> On 05/05/2011 06:31 AM, Fabien Bodard wrote:
> >>> We use that to sort icons in the iconview component
> >>>
> >>> take a look in the source
> >>>
> >>> trunk/comp/gb.form
> >>>
> >>> IconView.class
> >>>
> >
> >
> > it depend what you want to  sort !!!
> >
> > say us please
> >
> > and more simply
> >
> 
> Alright. Basically I have an array of structures. Each structure 
> represents an object in the game world. Each frame/loop I examine all 
> the objects' coordinates to determine which ones are inside the 
> rendering area. Finally the visible objects' positions are rotated to 
> match the orientation of the player and rendered to the screen.
> 
> I need to maintain an index of the objects' rotated y coordinates and 
> sort it. It will only be sorted when the player changes orientation (or 
> if an object is moved by another player or physics). I need to know the 
> order that each object should be rendered in so that they overlap 
> properly. Rendering them in order by their post-rotated y coordinate 
> should accomplish this.
> 
> Right now objects are drawn in the order they appear in the array of 
> object structures (random relative to their world coordinates). It needs 
> to change dynamically based on player orientation and each object's 
> coordinates. You can see the results of unsorted object rendering in 
> this video:
> 
> http://www.youtube.com/watch?v=HpvIcGYHVLY
> 
> Sometimes rocks are behind the trees, sometimes they are in front. It's 
> a mess.
> 
> The player and other players' positions will also have to be added into 
> this array of object numbers and y coordinates. I'd prefer to maintain a 
> separate array, which will hopefully be faster than sorting the entire 
> array of object structures. The hypothetical array to be sorted would 
> look something like this:
> 
> Public RenderOrder[32767, 2] As Single ' [ObjectsTotal, 0 = 
> ObjectNumber, 1 = ObjectY]
> 
> The array would be sorted by ObjectY, or RenderOrder[x, 1]. An example 
> of before/after values would look like this:
> 
> Unsorted/Before:
> RenderOrder[0, 0] = 10   ' Object 10
> RenderOrder[0, 1] = 6000 ' Object 10 Y coordinate
> RenderOrder[1, 0] = 20   ' Object 20
> RenderOrder[1, 1] = 2000 ' Object 20 Ycoordinate
> 
> Sorted/After:
> RenderOrder[0, 0] = 20   ' Object 20
> RenderOrder[0, 1] = 2000 ' Object 20 Y coordinate
> RenderOrder[1, 0] = 10   ' Object 10
> RenderOrder[1, 1] = 6000 ' Object 10 Ycoordinate
> 
> Think of it like a spreadsheet instead of an array. I need each "row" 
> sorted by the value in a "column". The two column values are 
> ObjectNumber and ObjectY and the row represents the array index.
> 
> There's got to be something like this in GAMBAS, but if not I can start 
> Google searching sort algorithms and make a procedure.
> 
> -- 
> Kevin Fishburne
> Eight Virtues
> www: http://sales.eightvirtues.com
> e-mail: sales at ...1887...
> phone: (770) 853-6271
> 
> ------------------------------------------------------------------------------
> Achieve unprecedented app performance and reliability
> What every C/C++ and Fortran developer should know.
> Learn how Intel has extended the reach of its next-generation tools
> to help boost performance applications - inlcuding clusters.
> http://p.sf.net/sfu/intel-dev2devmay
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
------- End of Original Message -------





More information about the User mailing list