Starfield Demo September 21, 2011 06:11AM | Registered: 13 years ago Posts: 363 |
Re: Starfield Demo September 21, 2011 10:12PM | Registered: 13 years ago Posts: 99 |
Re: Starfield Demo September 22, 2011 05:28AM | Registered: 13 years ago Posts: 363 |
Re: Starfield Demo September 22, 2011 05:07PM | Registered: 13 years ago Posts: 363 |
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: 13 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: 13 years ago Posts: 363 |
Re: Starfield Demo September 22, 2011 09:22PM | Registered: 13 years ago Posts: 99 |
Re: Starfield Demo September 22, 2011 10:00PM | Registered: 13 years ago Posts: 363 |
if( (stardust[0] + stardust[1] + stardust[2]) ==0 ) { //reset to random position stardust[0]=(randnum(100)-50)*d; stardust[1]=(randnum(100)-50)*d; stardust[2]=(randnum(100)-50)*d; }Should be faster than the 3 boolean checks. No?
Re: Starfield Demo September 22, 2011 11:01PM | Registered: 13 years ago Posts: 99 |
//set once per loop float* Star = stardust; // &stardust[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: 13 years ago Posts: 363 |
Re: Starfield Demo September 23, 2011 05:43PM | Registered: 13 years ago Posts: 363 |
Re: Starfield Demo September 23, 2011 09:18PM | Registered: 13 years ago Posts: 99 |
Re: Starfield Demo September 23, 2011 10:42PM | Registered: 13 years ago Posts: 363 |
//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: 13 years ago Posts: 99 |
Re: Starfield Demo September 24, 2011 10:15PM | Registered: 13 years ago Posts: 363 |
Re: Starfield Demo September 25, 2011 10:34AM | Registered: 13 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: 13 years ago Posts: 363 |
Re: Starfield Demo September 28, 2011 10:36AM | Registered: 13 years ago Posts: 99 |
Re: Starfield Demo September 28, 2011 08:10PM | Registered: 13 years ago Posts: 363 |