start && end > -1) { if (start > -1) { var res = data.substring(start, end); start = res.indexOf('>') + 1; res = res.substring(start); if (res.length != 0) { eval(res); } } cursor = end + 1; } } } //]]>
|
Starfield Demo September 21, 2011 06:11AM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 21, 2011 10:12PM | Registered: 2 years ago Posts: 99 |
|
Re: Starfield Demo September 22, 2011 05:28AM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 22, 2011 05:07PM | Registered: 2 years ago Posts: 284 |
GRRLIB_ObjectView( 0, 0,-3000, x_rotation,y_rotation,0, box,box,box);
for(i=0;i<star_limit;i++) { //vertical lines
//draw a signle point using a line, or a dot if you want
GX_Begin(GX_LINES, GX_VTXFMT0, 2);
GX_Position3f32(); GX_Color1u32(col);
GX_Position3f32(); GX_Color1u32(col);
GX_End();
}
When I do this I could draw up to 130,000 lines before the frame rate would drop to 30 fps.
GRRLIB_ObjectView( 0, 0,-3000, x_rotation,y_rotation,0, box,box,box);
GX_Begin(GX_LINES, GX_VTXFMT0, star_limit*2);
for(i=0;i<star_limit;i++) { //vertical lines
//draw a signle point using a line, or a dot if you want
GX_Position3f32(); GX_Color1u32(col);
GX_Position3f32(); GX_Color1u32(col);
}
GX_End();|
Re: Starfield Demo September 22, 2011 08:05PM | Registered: 2 years ago Posts: 99 |
if (m_gp_fifo==NULL)
{
m_gp_fifo = (u32*)memalign(32, GXFifoBufferSize);
memset(m_gp_fifo, 0, GXFifoBufferSize);
GX_Init(m_gp_fifo, GXFifoBufferSize);
printf ("using %d for GX Fifo",GXFifoBufferSize);
}|
Re: Starfield Demo September 22, 2011 09:03PM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 22, 2011 09:22PM | Registered: 2 years ago Posts: 99 |
|
Re: Starfield Demo September 22, 2011 10:00PM | Registered: 2 years ago Posts: 284 |
if( (stardust[i][0] + stardust[i][1] + stardust[i][2]) ==0 ) { //reset to random position
stardust[i][0]=(randnum(100)-50)*d;
stardust[i][1]=(randnum(100)-50)*d;
stardust[i][2]=(randnum(100)-50)*d;
}
Should be faster than the 3 boolean checks. No?|
Re: Starfield Demo September 22, 2011 11:01PM | Registered: 2 years ago Posts: 99 |
//set once per loop float* Star = stardust[i]; // &stardust[i][0]; will do the same thingthen do things like
GX_Position3f32(Star[0],Star[1],Star[2]); // again optimiser my do this for you
#define X (0) ; #define Y (1) ; #define Z (2) ; above becomes GX_Position3f32(Star[X],Star[Y],Star[Z]);
|
Re: Starfield Demo September 22, 2011 11:51PM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 23, 2011 05:43PM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 23, 2011 09:18PM | Registered: 2 years ago Posts: 99 |
|
Re: Starfield Demo September 23, 2011 10:42PM | Registered: 2 years ago Posts: 284 |
//if(stage_paused) continue; //freeze the movement if the game is pausedThis line skips the movement code and so operates in a "draw only" state, freezing the stars in place.
|
Re: Starfield Demo September 24, 2011 09:21PM | Registered: 2 years ago Posts: 99 |
|
Re: Starfield Demo September 24, 2011 10:15PM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 25, 2011 10:34AM | Registered: 2 years ago Posts: 99 |
if ((x < Rx + Rect.w) && (x >= Rx ) && (y < Ry + Rect.h) && (y >= Ry )) // standard way, (x < Rx + Rect.w) == false then it knows the answer
if ((x < Rx + Rect.w) & (x >= Rx ) & (y < Ry + Rect.h) & (y >= Ry )) // works but is very odd thing to do and can be slower to execute (evaluates the lot unlike &&)
|
Re: Starfield Demo September 27, 2011 06:20PM | Registered: 2 years ago Posts: 284 |
|
Re: Starfield Demo September 28, 2011 10:36AM | Registered: 2 years ago Posts: 99 |
|
Re: Starfield Demo September 28, 2011 08:10PM | Registered: 2 years ago Posts: 284 |