mirror of
https://github.com/GRRLIB/GRRLIB.git
synced 2024-12-22 18:39:18 +00:00
[CHG] Tabs converted to spaces
This commit is contained in:
parent
1d1b996a06
commit
3a71ef517b
7 changed files with 314 additions and 314 deletions
|
@ -1,6 +1,6 @@
|
|||
/*===========================================
|
||||
NoNameNo
|
||||
Simple Textured 3D cube
|
||||
NoNameNo
|
||||
Simple Textured 3D cube
|
||||
============================================*/
|
||||
#include <grrlib.h>
|
||||
|
||||
|
|
|
@ -44,107 +44,107 @@ float sinx=0,oldsinx=0;
|
|||
GRRLIB_camera3dSettings(0.0f,0.0f,13.0f, 0,1,0, 0,0,0);
|
||||
|
||||
while(1) {
|
||||
GRRLIB_2dMode();
|
||||
GRRLIB_2dMode();
|
||||
WPAD_ScanPads();
|
||||
if(WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) exit(0);
|
||||
if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_A) cubeZ++;
|
||||
if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_B) cubeZ--;
|
||||
|
||||
GRRLIB_3dMode(0.1,1000,45,1);
|
||||
GRRLIB_setTexture(tex_girl,0);
|
||||
GRRLIB_objectView(0,0,cubeZ, a,a*2,a*3);
|
||||
GX_Begin(GX_QUADS, GX_VTXFMT0, 24);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GRRLIB_3dMode(0.1,1000,45,1);
|
||||
GRRLIB_setTexture(tex_girl,0);
|
||||
GRRLIB_objectView(0,0,cubeZ, a,a*2,a*3);
|
||||
GX_Begin(GX_QUADS, GX_VTXFMT0, 24);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[0]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[1]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(-1.0f,1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,-1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,0.0f);
|
||||
GX_Position3f32(-1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(1.0f,1.0f);
|
||||
GX_Position3f32(1.0f,-1.0f,1.0f);
|
||||
GX_Color1u32(col[2]);
|
||||
GX_TexCoord2f32(0.0f,1.0f);
|
||||
GX_End();
|
||||
GRRLIB_Screen2Texture(0,0,tex_screen,1);
|
||||
a+=0.5f;
|
||||
GRRLIB_Screen2Texture(0,0,tex_screen,1);
|
||||
a+=0.5f;
|
||||
|
||||
// Switch To 2D Mode to display text
|
||||
GRRLIB_2dMode();
|
||||
oldsinx=sinx;
|
||||
for(i=0;i<rmode->efbHeight;i++){
|
||||
GRRLIB_DrawTile(0+sin(sinx)*60,i,tex_screen,0,1,1,0xFFFFFFFF,i);
|
||||
sinx+=0.02f;
|
||||
}
|
||||
sinx=oldsinx+0.02f;
|
||||
// Switch To 2D Mode to display text
|
||||
GRRLIB_2dMode();
|
||||
oldsinx=sinx;
|
||||
for(i=0;i<rmode->efbHeight;i++){
|
||||
GRRLIB_DrawTile(0+sin(sinx)*60,i,tex_screen,0,1,1,0xFFFFFFFF,i);
|
||||
sinx+=0.02f;
|
||||
}
|
||||
sinx=oldsinx+0.02f;
|
||||
|
||||
GRRLIB_Printf((640-(16*29))/2, 20, tex_font, 0xFFFFFFFF, 1, "PRESS A OR B TO ZOOM THE CUBE");
|
||||
GRRLIB_Printf((640-(16*29))/2, 20, tex_font, 0xFFFFFFFF, 1, "PRESS A OR B TO ZOOM THE CUBE");
|
||||
|
||||
GRRLIB_Render();
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ int main() {
|
|||
// Load the original texture and create empty texture of the same size as the original one
|
||||
GRRLIB_texImg *tex_pirate = GRRLIB_LoadTexture(pirate);
|
||||
GRRLIB_texImg *tex_gray = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
GRRLIB_texImg *tex_sepia = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
GRRLIB_texImg *tex_sepia = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
GRRLIB_texImg *tex_invert = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
GRRLIB_texImg *tex_blur1 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
GRRLIB_texImg *tex_blur2 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h);
|
||||
|
|
|
@ -36,7 +36,7 @@ int main() {
|
|||
if(WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) exit(0);
|
||||
|
||||
// we say thant we will want to capture to a texture all the following
|
||||
GRRLIB_CompoStart();
|
||||
GRRLIB_CompoStart();
|
||||
|
||||
for(i=0;i<360;i+=30) {
|
||||
// We draw some letters
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
============================================*/
|
||||
#include <grrlib.h>
|
||||
|
||||
#include <ogc/lwp_watchdog.h> // Needed for gettime and ticks_to_millisecs
|
||||
#include <ogc/lwp_watchdog.h> // Needed for gettime and ticks_to_millisecs
|
||||
#include <stdlib.h>
|
||||
#include <wiiuse/wpad.h>
|
||||
#include <fat.h>
|
||||
|
|
|
@ -32,39 +32,39 @@ GRRLIB_texImg *GFX_Font;
|
|||
|
||||
|
||||
int main() {
|
||||
// Init Variables
|
||||
// Init Variables
|
||||
u32 WPADKeyDown;
|
||||
u32 WPADKeyHeld;
|
||||
short WinW, WinH;
|
||||
int P1MX, P1MY;
|
||||
int P1MX, P1MY;
|
||||
|
||||
u8 Stage = 0, Blending = 0;
|
||||
u8 BlobType = 0;
|
||||
u8 Color = 255;
|
||||
u16 Step = 0;
|
||||
float SX, SY;
|
||||
u8 Stage = 0, Blending = 0;
|
||||
u8 BlobType = 0;
|
||||
u8 Color = 255;
|
||||
u16 Step = 0;
|
||||
float SX, SY;
|
||||
|
||||
|
||||
// Init GRRLIB & WiiUse
|
||||
// Init GRRLIB & WiiUse
|
||||
GRRLIB_Init();
|
||||
WinW = rmode->fbWidth;
|
||||
WinH = rmode->efbHeight;
|
||||
WinH = rmode->efbHeight;
|
||||
WPAD_Init();
|
||||
WPAD_SetIdleTimeout( 60*10 );
|
||||
WPAD_SetDataFormat( WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR );
|
||||
WPAD_SetDataFormat( WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR );
|
||||
|
||||
// Load Textures
|
||||
GFX_Background = GRRLIB_LoadTextureJPG(RGFX_Background);
|
||||
GFX_Blob[0] = GRRLIB_LoadTexturePNG(RGFX_Blob01);
|
||||
GFX_Blob[1] = GRRLIB_LoadTexturePNG(RGFX_Blob02);
|
||||
GFX_Blob[2] = GRRLIB_LoadTexturePNG(RGFX_Blob03);
|
||||
GFX_Font = GRRLIB_LoadTexturePNG(RGFX_Font);
|
||||
GRRLIB_InitTileSet(GFX_Font, 8, 16, 32);
|
||||
// Load Textures
|
||||
GFX_Background = GRRLIB_LoadTextureJPG(RGFX_Background);
|
||||
GFX_Blob[0] = GRRLIB_LoadTexturePNG(RGFX_Blob01);
|
||||
GFX_Blob[1] = GRRLIB_LoadTexturePNG(RGFX_Blob02);
|
||||
GFX_Blob[2] = GRRLIB_LoadTexturePNG(RGFX_Blob03);
|
||||
GFX_Font = GRRLIB_LoadTexturePNG(RGFX_Font);
|
||||
GRRLIB_InitTileSet(GFX_Font, 8, 16, 32);
|
||||
|
||||
// Set Handles
|
||||
GRRLIB_SetMidHandle( GFX_Blob[0], true );
|
||||
GRRLIB_SetMidHandle( GFX_Blob[1], true );
|
||||
GRRLIB_SetMidHandle( GFX_Blob[2], true );
|
||||
// Set Handles
|
||||
GRRLIB_SetMidHandle( GFX_Blob[0], true );
|
||||
GRRLIB_SetMidHandle( GFX_Blob[1], true );
|
||||
GRRLIB_SetMidHandle( GFX_Blob[2], true );
|
||||
|
||||
|
||||
while (true) {
|
||||
|
@ -72,47 +72,47 @@ int main() {
|
|||
WPADKeyDown = WPAD_ButtonsDown(WPAD_CHAN_0);
|
||||
WPADKeyHeld = WPAD_ButtonsHeld(WPAD_CHAN_0);
|
||||
WPAD_SetVRes(WPAD_CHAN_0, WinW, WinH);
|
||||
WPAD_IR(WPAD_CHAN_0, &P1Mote);
|
||||
WPAD_IR(WPAD_CHAN_0, &P1Mote);
|
||||
|
||||
// WiiMote IR Viewport Correction
|
||||
P1MX = P1Mote.sx - 150;
|
||||
P1MY = P1Mote.sy - 150;
|
||||
// WiiMote IR Viewport Correction
|
||||
P1MX = P1Mote.sx - 150;
|
||||
P1MY = P1Mote.sy - 150;
|
||||
|
||||
// Update Stage
|
||||
Step = Step + 1;
|
||||
if (Step == 720) { Step = 0; }
|
||||
SX = 320 + (sin(DegToRad(Step )) * 250);
|
||||
SY = 240 + (cos(DegToRad(Step*3)) * 100);
|
||||
// Update Stage
|
||||
Step = Step + 1;
|
||||
if (Step == 720) { Step = 0; }
|
||||
SX = 320 + (sin(DegToRad(Step )) * 250);
|
||||
SY = 240 + (cos(DegToRad(Step*3)) * 100);
|
||||
|
||||
// Draw Stage
|
||||
GRRLIB_DrawImg( 0, 0, GFX_Background, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
GRRLIB_SetBlend( (Blending+1) ); Color = 255;
|
||||
switch (Stage) {
|
||||
case 2: Color = 160; break;
|
||||
case 3: Color = 128; break;
|
||||
case 4: Color = 64; break;
|
||||
}
|
||||
GRRLIB_DrawImg( SX, SY, GFX_Blob[BlobType], 0, 1, 1, RGBA(Color, Color, Color, 255) );
|
||||
// Draw Stage
|
||||
GRRLIB_DrawImg( 0, 0, GFX_Background, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
GRRLIB_SetBlend( (Blending+1) ); Color = 255;
|
||||
switch (Stage) {
|
||||
case 2: Color = 160; break;
|
||||
case 3: Color = 128; break;
|
||||
case 4: Color = 64; break;
|
||||
}
|
||||
GRRLIB_DrawImg( SX, SY, GFX_Blob[BlobType], 0, 1, 1, RGBA(Color, Color, Color, 255) );
|
||||
|
||||
// IR Pointer
|
||||
if (P1Mote.state == 1) {
|
||||
GRRLIB_DrawImg( P1MX, P1MY, GFX_Blob[BlobType], 0, 1, 1, RGBA(Color, Color, Color, 255) );
|
||||
}
|
||||
// IR Pointer
|
||||
if (P1Mote.state == 1) {
|
||||
GRRLIB_DrawImg( P1MX, P1MY, GFX_Blob[BlobType], 0, 1, 1, RGBA(Color, Color, Color, 255) );
|
||||
}
|
||||
|
||||
// Draw Text
|
||||
GRRLIB_SetBlend ( GRRLIB_BLEND_ALPHA );
|
||||
GRRLIB_Rectangle( 28, 28, 480 + 16, 76, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 32, GFX_Font, 0xFFFFFFFF, 1, "Point your WiiMote on the screen." );
|
||||
GRRLIB_Printf ( 32, 48, GFX_Font, 0xFFFFFFFF, 1, "Press LEFT and RIGHT to switch through the different stages." );
|
||||
GRRLIB_Printf ( 32, 64, GFX_Font, 0xFFFFFFFF, 1, "Press A to change the blob sprite." );
|
||||
switch (Stage) {
|
||||
case 0: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 1: Additive Blending" ); Blending = 0; break;
|
||||
case 1: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 2: Alpha Light Blending" ); Blending = 1; break;
|
||||
case 2: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 3: Multiply Blending (75%)" ); Blending = 2; break;
|
||||
case 3: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 4: Multiply Blending (50%)" ); Blending = 2; break;
|
||||
case 4: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 5: Multiply Blending (25%)" ); Blending = 2; break;
|
||||
case 5: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 6: Invert Color Blending" ); Blending = 3; break;
|
||||
}
|
||||
// Draw Text
|
||||
GRRLIB_SetBlend ( GRRLIB_BLEND_ALPHA );
|
||||
GRRLIB_Rectangle( 28, 28, 480 + 16, 76, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 32, GFX_Font, 0xFFFFFFFF, 1, "Point your WiiMote on the screen." );
|
||||
GRRLIB_Printf ( 32, 48, GFX_Font, 0xFFFFFFFF, 1, "Press LEFT and RIGHT to switch through the different stages." );
|
||||
GRRLIB_Printf ( 32, 64, GFX_Font, 0xFFFFFFFF, 1, "Press A to change the blob sprite." );
|
||||
switch (Stage) {
|
||||
case 0: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 1: Additive Blending" ); Blending = 0; break;
|
||||
case 1: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 2: Alpha Light Blending" ); Blending = 1; break;
|
||||
case 2: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 3: Multiply Blending (75%)" ); Blending = 2; break;
|
||||
case 3: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 4: Multiply Blending (50%)" ); Blending = 2; break;
|
||||
case 4: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 5: Multiply Blending (25%)" ); Blending = 2; break;
|
||||
case 5: GRRLIB_Printf( 32, 88, GFX_Font, 0xFFFFFFFF, 1, "Stage 6: Invert Color Blending" ); Blending = 3; break;
|
||||
}
|
||||
|
||||
GRRLIB_Render();
|
||||
if (WPADKeyDown & WPAD_BUTTON_RIGHT) { if (Stage < 5) { Stage += 1; } }
|
||||
|
@ -125,16 +125,16 @@ int main() {
|
|||
}
|
||||
|
||||
static void ExitGame() {
|
||||
// Deinitialize GRRLIB & Video
|
||||
GRRLIB_Exit();
|
||||
// Deinitialize GRRLIB & Video
|
||||
GRRLIB_Exit();
|
||||
|
||||
// Free all memory used by textures.
|
||||
GRRLIB_FreeTexture(GFX_Background);
|
||||
GRRLIB_FreeTexture(GFX_Blob[0]);
|
||||
GRRLIB_FreeTexture(GFX_Blob[1]);
|
||||
GRRLIB_FreeTexture(GFX_Blob[2]);
|
||||
GRRLIB_FreeTexture(GFX_Font);
|
||||
// Free all memory used by textures.
|
||||
GRRLIB_FreeTexture(GFX_Background);
|
||||
GRRLIB_FreeTexture(GFX_Blob[0]);
|
||||
GRRLIB_FreeTexture(GFX_Blob[1]);
|
||||
GRRLIB_FreeTexture(GFX_Blob[2]);
|
||||
GRRLIB_FreeTexture(GFX_Font);
|
||||
|
||||
// Exit application
|
||||
exit(0);
|
||||
// Exit application
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
@ -31,16 +31,16 @@ Mtx GXmodelView2D;
|
|||
|
||||
// Basic structure to hold particle data
|
||||
typedef struct Particle {
|
||||
u8 id;
|
||||
float x, y;
|
||||
float sx, sy;
|
||||
u16 rot;
|
||||
u8 frame, framecnt, framedelay;
|
||||
u8 red, green, blue;
|
||||
float scale, alpha;
|
||||
float sscale, salpha;
|
||||
float scolor;
|
||||
GRRLIB_texImg *tex;
|
||||
u8 id;
|
||||
float x, y;
|
||||
float sx, sy;
|
||||
u16 rot;
|
||||
u8 frame, framecnt, framedelay;
|
||||
u8 red, green, blue;
|
||||
float scale, alpha;
|
||||
float sscale, salpha;
|
||||
float scolor;
|
||||
GRRLIB_texImg *tex;
|
||||
} Particle;
|
||||
|
||||
// Vector used as a container to iterate through all members of GRRLIB_texImg
|
||||
|
@ -77,88 +77,88 @@ int main() {
|
|||
u8 FPS = 0;
|
||||
u32 ParticleCnt = 0;
|
||||
|
||||
// Init GRRLIB & WiiUse
|
||||
// Init GRRLIB & WiiUse
|
||||
GRRLIB_Init();
|
||||
WinW = rmode->fbWidth;
|
||||
WinH = rmode->efbHeight;
|
||||
WinH = rmode->efbHeight;
|
||||
WPAD_Init();
|
||||
WPAD_SetIdleTimeout( 60*10 );
|
||||
WPAD_SetDataFormat( WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR );
|
||||
WPAD_SetDataFormat( WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR );
|
||||
|
||||
// Load textures
|
||||
GFX_Background = GRRLIB_LoadTextureJPG(RGFX_Background);
|
||||
GFX_Crosshair = GRRLIB_LoadTexturePNG(RGFX_Crosshair);
|
||||
GFX_Smoke = GRRLIB_LoadTexturePNG(RGFX_Smoke);
|
||||
GFX_Font = GRRLIB_LoadTexturePNG(RGFX_Font);
|
||||
GRRLIB_InitTileSet( GFX_Font, 8, 16, 32 );
|
||||
// Load textures
|
||||
GFX_Background = GRRLIB_LoadTextureJPG(RGFX_Background);
|
||||
GFX_Crosshair = GRRLIB_LoadTexturePNG(RGFX_Crosshair);
|
||||
GFX_Smoke = GRRLIB_LoadTexturePNG(RGFX_Smoke);
|
||||
GFX_Font = GRRLIB_LoadTexturePNG(RGFX_Font);
|
||||
GRRLIB_InitTileSet( GFX_Font, 8, 16, 32 );
|
||||
|
||||
// Set handles
|
||||
GRRLIB_SetMidHandle( GFX_Crosshair, true );
|
||||
GRRLIB_SetMidHandle( GFX_Smoke, true );
|
||||
// Set handles
|
||||
GRRLIB_SetMidHandle( GFX_Crosshair, true );
|
||||
GRRLIB_SetMidHandle( GFX_Smoke, true );
|
||||
|
||||
// Feed the vector with the textures
|
||||
TextureList.push_back( GFX_Background );
|
||||
TextureList.push_back( GFX_Crosshair );
|
||||
TextureList.push_back( GFX_Smoke );
|
||||
TextureList.push_back( GFX_Font );
|
||||
// Feed the vector with the textures
|
||||
TextureList.push_back( GFX_Background );
|
||||
TextureList.push_back( GFX_Crosshair );
|
||||
TextureList.push_back( GFX_Smoke );
|
||||
TextureList.push_back( GFX_Font );
|
||||
|
||||
while (true) {
|
||||
WPAD_ScanPads();
|
||||
WPADKeyDown = WPAD_ButtonsDown(WPAD_CHAN_0);
|
||||
WPADKeyHeld = WPAD_ButtonsHeld(WPAD_CHAN_0);
|
||||
WPAD_SetVRes(WPAD_CHAN_0, WinW, WinH);
|
||||
WPAD_IR(WPAD_CHAN_0, &P1Mote);
|
||||
WPAD_IR(WPAD_CHAN_0, &P1Mote);
|
||||
|
||||
// Resetting Vars
|
||||
GRRLIB_SetBlend( GRRLIB_BLEND_ALPHA );
|
||||
ParticleCnt = 0;
|
||||
// Resetting Vars
|
||||
GRRLIB_SetBlend( GRRLIB_BLEND_ALPHA );
|
||||
ParticleCnt = 0;
|
||||
|
||||
// WiiMote IR Viewport correction
|
||||
P1MX = P1Mote.sx - 150;
|
||||
P1MY = P1Mote.sy - 150;
|
||||
// WiiMote IR Viewport correction
|
||||
P1MX = P1Mote.sx - 150;
|
||||
P1MY = P1Mote.sy - 150;
|
||||
|
||||
// Drawing Background
|
||||
GRRLIB_DrawImg( 0, 0, GFX_Background, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
// Drawing Background
|
||||
GRRLIB_DrawImg( 0, 0, GFX_Background, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
|
||||
// Add any pending objects into the main container
|
||||
if (ParticleListTmp.size()) {
|
||||
for(u32 i = 0; i<ParticleListTmp.size();i++) {
|
||||
ParticleList.push_back(ParticleListTmp[i]);
|
||||
}
|
||||
ParticleListTmp.clear();
|
||||
}
|
||||
// Add any pending objects into the main container
|
||||
if (ParticleListTmp.size()) {
|
||||
for(u32 i = 0; i<ParticleListTmp.size();i++) {
|
||||
ParticleList.push_back(ParticleListTmp[i]);
|
||||
}
|
||||
ParticleListTmp.clear();
|
||||
}
|
||||
|
||||
// Update and draw all particles
|
||||
for (vector<Particle *>::iterator PartIter = ParticleList.begin(); PartIter != ParticleList.end();) {
|
||||
if (updateParticle((*PartIter)) == true) {
|
||||
GRRLIB_DrawImg( (*PartIter)->x, (*PartIter)->y, (*PartIter)->tex, (*PartIter)->rot, (*PartIter)->scale, (*PartIter)->scale, RGBA( (*PartIter)->red, (*PartIter)->green, (*PartIter)->blue, GRRLIB_ClampVar8((*PartIter)->alpha*255) ) );
|
||||
} else {
|
||||
free( (*PartIter) );
|
||||
ParticleList.erase(PartIter);
|
||||
continue;
|
||||
}
|
||||
ParticleCnt += 1;
|
||||
PartIter++;
|
||||
}
|
||||
// Update and draw all particles
|
||||
for (vector<Particle *>::iterator PartIter = ParticleList.begin(); PartIter != ParticleList.end();) {
|
||||
if (updateParticle((*PartIter)) == true) {
|
||||
GRRLIB_DrawImg( (*PartIter)->x, (*PartIter)->y, (*PartIter)->tex, (*PartIter)->rot, (*PartIter)->scale, (*PartIter)->scale, RGBA( (*PartIter)->red, (*PartIter)->green, (*PartIter)->blue, GRRLIB_ClampVar8((*PartIter)->alpha*255) ) );
|
||||
} else {
|
||||
free( (*PartIter) );
|
||||
ParticleList.erase(PartIter);
|
||||
continue;
|
||||
}
|
||||
ParticleCnt += 1;
|
||||
PartIter++;
|
||||
}
|
||||
|
||||
// Draw Crosshair
|
||||
GRRLIB_DrawImg( P1MX, P1MY, GFX_Crosshair, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
// Draw Crosshair
|
||||
GRRLIB_DrawImg( P1MX, P1MY, GFX_Crosshair, 0, 1, 1, RGBA(255, 255, 255, 255) );
|
||||
|
||||
// Draw Text
|
||||
GRRLIB_Rectangle( 28, 28, 280, 20, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 32, GFX_Font, 0xFFFFFFFF, 1, "Point your WiiMote on the screen." );
|
||||
GRRLIB_Rectangle( 28, 48, 200, 16, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 48, GFX_Font, 0xFFFFFFFF, 1, "Number of Particle: %d", ParticleCnt );
|
||||
GRRLIB_Rectangle( 28, 64, 64, 16, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 64, GFX_Font, 0xFFFFFFFF, 1, "FPS: %d", FPS );
|
||||
// Draw Text
|
||||
GRRLIB_Rectangle( 28, 28, 280, 20, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 32, GFX_Font, 0xFFFFFFFF, 1, "Point your WiiMote on the screen." );
|
||||
GRRLIB_Rectangle( 28, 48, 200, 16, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 48, GFX_Font, 0xFFFFFFFF, 1, "Number of Particle: %d", ParticleCnt );
|
||||
GRRLIB_Rectangle( 28, 64, 64, 16, RGBA(0, 0, 0, 160), 1 );
|
||||
GRRLIB_Printf ( 32, 64, GFX_Font, 0xFFFFFFFF, 1, "FPS: %d", FPS );
|
||||
|
||||
// Renders the Scene
|
||||
// Renders the Scene
|
||||
GRRLIB_Render();
|
||||
FPS = CalculateFrameRate();
|
||||
|
||||
if (WPADKeyDown & WPAD_BUTTON_B) {
|
||||
createEffect( EFFECT_SMOKEBOMB, P1MX, P1MY );
|
||||
}
|
||||
createEffect( EFFECT_SMOKEBOMB, P1MX, P1MY );
|
||||
}
|
||||
if (WPADKeyDown & WPAD_BUTTON_HOME) {
|
||||
ExitGame();
|
||||
}
|
||||
|
@ -168,107 +168,107 @@ int main() {
|
|||
}
|
||||
|
||||
static void createEffect( u8 id, int _x, int _y ) {
|
||||
u8 _ColorAdd = 0;
|
||||
switch (id) {
|
||||
case EFFECT_SMOKEBOMB:
|
||||
for (u8 i = 0; i < 5; i++) {
|
||||
createParticle( 1, (_x + (RANDOM * 10)), (_y + (RANDOM * 10)), (1.4f+(RANDOM*0.20)), 1.0f, 64, 64, 64 );
|
||||
}
|
||||
for (u8 i = 0; i < 20; i++) {
|
||||
createParticle( 3, (_x + (RANDOM * 50)), (_y + (RANDOM * 50)), 1.25f, 1.5f, 92, 92, 92 );
|
||||
}
|
||||
for (u8 i = 0; i < 5; i++) {
|
||||
_ColorAdd = (RANDOM*75);
|
||||
createParticle( 2, (_x + (RANDOM * 40)), (_y + (RANDOM * 40)), (1.0f+(RANDOM*0.20)), 1.0f, 128+_ColorAdd, 128+_ColorAdd, 128+_ColorAdd );
|
||||
}
|
||||
break;
|
||||
}
|
||||
u8 _ColorAdd = 0;
|
||||
switch (id) {
|
||||
case EFFECT_SMOKEBOMB:
|
||||
for (u8 i = 0; i < 5; i++) {
|
||||
createParticle( 1, (_x + (RANDOM * 10)), (_y + (RANDOM * 10)), (1.4f+(RANDOM*0.20)), 1.0f, 64, 64, 64 );
|
||||
}
|
||||
for (u8 i = 0; i < 20; i++) {
|
||||
createParticle( 3, (_x + (RANDOM * 50)), (_y + (RANDOM * 50)), 1.25f, 1.5f, 92, 92, 92 );
|
||||
}
|
||||
for (u8 i = 0; i < 5; i++) {
|
||||
_ColorAdd = (RANDOM*75);
|
||||
createParticle( 2, (_x + (RANDOM * 40)), (_y + (RANDOM * 40)), (1.0f+(RANDOM*0.20)), 1.0f, 128+_ColorAdd, 128+_ColorAdd, 128+_ColorAdd );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void createParticle( u8 _id, int _x, int _y, float _scale, float _alpha, u8 _red, u8 _green, u8 _blue ) {
|
||||
Particle *part = (struct Particle *)calloc(1, sizeof(Particle));
|
||||
part->id = _id;
|
||||
part->x = _x;
|
||||
part->y = _y;
|
||||
part->rot = rand() % 360;
|
||||
part->red = _red;
|
||||
part->green = _green;
|
||||
part->blue = _blue;
|
||||
part->scale = _scale;
|
||||
part->alpha = _alpha;
|
||||
Particle *part = (struct Particle *)calloc(1, sizeof(Particle));
|
||||
part->id = _id;
|
||||
part->x = _x;
|
||||
part->y = _y;
|
||||
part->rot = rand() % 360;
|
||||
part->red = _red;
|
||||
part->green = _green;
|
||||
part->blue = _blue;
|
||||
part->scale = _scale;
|
||||
part->alpha = _alpha;
|
||||
|
||||
part->tex = GFX_Smoke;
|
||||
part->sy = RANDOM;
|
||||
part->sx = RANDOM;
|
||||
part->sscale = 0.9985;
|
||||
part->salpha = 0.985;
|
||||
switch (part->id) {
|
||||
case 1:
|
||||
part->sy = RANDOM * 0.5;
|
||||
part->sx = RANDOM * 0.5;
|
||||
part->sscale = 0.999;
|
||||
part->salpha = 0.992;
|
||||
part->framedelay = 10;
|
||||
part->framecnt = 2;
|
||||
break;
|
||||
case 2:
|
||||
part->scolor = 0.98;
|
||||
part->salpha = 0.95;
|
||||
break;
|
||||
case 3:
|
||||
part->sy = (RANDOM * 8);
|
||||
part->sx = (RANDOM * 8);
|
||||
part->salpha = 0.85;
|
||||
part->scolor = 0.95;
|
||||
break;
|
||||
}
|
||||
ParticleListTmp.push_back( part );
|
||||
part->tex = GFX_Smoke;
|
||||
part->sy = RANDOM;
|
||||
part->sx = RANDOM;
|
||||
part->sscale = 0.9985;
|
||||
part->salpha = 0.985;
|
||||
switch (part->id) {
|
||||
case 1:
|
||||
part->sy = RANDOM * 0.5;
|
||||
part->sx = RANDOM * 0.5;
|
||||
part->sscale = 0.999;
|
||||
part->salpha = 0.992;
|
||||
part->framedelay = 10;
|
||||
part->framecnt = 2;
|
||||
break;
|
||||
case 2:
|
||||
part->scolor = 0.98;
|
||||
part->salpha = 0.95;
|
||||
break;
|
||||
case 3:
|
||||
part->sy = (RANDOM * 8);
|
||||
part->sx = (RANDOM * 8);
|
||||
part->salpha = 0.85;
|
||||
part->scolor = 0.95;
|
||||
break;
|
||||
}
|
||||
ParticleListTmp.push_back( part );
|
||||
}
|
||||
|
||||
static bool updateParticle( Particle *part ) {
|
||||
if (part->alpha < 0.05) { part->alpha -= 0.001; }
|
||||
if (part->alpha < 0.1) { part->alpha -= 0.001; }
|
||||
if (part->alpha < 0.05) { part->alpha -= 0.001; }
|
||||
if (part->alpha < 0.1) { part->alpha -= 0.001; }
|
||||
|
||||
part->x += part->sx;
|
||||
part->y += part->sy;
|
||||
part->scale *= part->sscale;
|
||||
part->alpha *= part->salpha;
|
||||
switch (part->id) {
|
||||
case 1:
|
||||
if (part->alpha < 0.25) { part->alpha -= 0.001; }
|
||||
if (part->framecnt == 0) {
|
||||
part->framecnt = 20;
|
||||
part->red -= 1;
|
||||
part->green -= 1;
|
||||
part->blue -= 1;
|
||||
}
|
||||
part->framecnt -= 1;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
part->red *= part->scolor;
|
||||
part->green *= part->scolor;
|
||||
part->blue *= part->scolor;
|
||||
break;
|
||||
}
|
||||
if ((part->scale < 0) || (part->alpha < 0)) { return false; }
|
||||
return true;
|
||||
part->x += part->sx;
|
||||
part->y += part->sy;
|
||||
part->scale *= part->sscale;
|
||||
part->alpha *= part->salpha;
|
||||
switch (part->id) {
|
||||
case 1:
|
||||
if (part->alpha < 0.25) { part->alpha -= 0.001; }
|
||||
if (part->framecnt == 0) {
|
||||
part->framecnt = 20;
|
||||
part->red -= 1;
|
||||
part->green -= 1;
|
||||
part->blue -= 1;
|
||||
}
|
||||
part->framecnt -= 1;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
part->red *= part->scolor;
|
||||
part->green *= part->scolor;
|
||||
part->blue *= part->scolor;
|
||||
break;
|
||||
}
|
||||
if ((part->scale < 0) || (part->alpha < 0)) { return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
static void ExitGame() {
|
||||
// Deinitialize GRRLIB & Video
|
||||
GRRLIB_Exit();
|
||||
// Deinitialize GRRLIB & Video
|
||||
GRRLIB_Exit();
|
||||
|
||||
// Free all memory used by textures.
|
||||
for (vector<GRRLIB_texImg *>::iterator TexIter = TextureList.begin(); TexIter != TextureList.end(); TexIter++) {
|
||||
free((*TexIter)->data);
|
||||
free((*TexIter));
|
||||
}
|
||||
TextureList.clear();
|
||||
// Free all memory used by textures.
|
||||
for (vector<GRRLIB_texImg *>::iterator TexIter = TextureList.begin(); TexIter != TextureList.end(); TexIter++) {
|
||||
free((*TexIter)->data);
|
||||
free((*TexIter));
|
||||
}
|
||||
TextureList.clear();
|
||||
|
||||
// Exit application
|
||||
exit(0);
|
||||
// Exit application
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static u8 CalculateFrameRate() {
|
||||
|
|
Loading…
Reference in a new issue