【教程05】绘制渐变矩形实现前节效果



掌叔
2009-03-17 19:56:25

摘自:[url]www.iacger.com[/url]
作者:newcreat

本节主要是将用绘制渐进矩形来实现上一节的效果,用画线的方式效率是不高滴,所以要用这种方法。
主要代码就是:

[code=c]FillRectGrad(0,0,480,272,colors,DISPLAY_PIXEL_FORMAT_5551);[/code]

其中colors是顶点颜色数组,方向是左上角顶点开始逆时针方向

[code=c]#include "libnge2.h"// 退出标识
int game_quit = 0;
// 按下键处理
void btn_down(int keycode)
{
switch(keycode)
{
case PSP_BUTTON_UP:
break;
case PSP_BUTTON_DOWN:
break;
case PSP_BUTTON_LEFT:
break;
case PSP_BUTTON_RIGHT:
break;
case PSP_BUTTON_TRIANGLE:
break;
case PSP_BUTTON_CIRCLE:
break;
case PSP_BUTTON_CROSS:
break;
case PSP_BUTTON_SQUARE:
break;
case PSP_BUTTON_SELECT:
game_quit = 1;
break;
case PSP_BUTTON_START:
game_quit = 1;
break;
}
}// 释放键处理
void btn_up(int keycode)
{
switch(keycode)
{
case PSP_BUTTON_UP:
break;
case PSP_BUTTON_DOWN:
break;
case PSP_BUTTON_LEFT:
break;
case PSP_BUTTON_RIGHT:
break;
case PSP_BUTTON_TRIANGLE:
break;
case PSP_BUTTON_CIRCLE:
break;
case PSP_BUTTON_CROSS:
break;
case PSP_BUTTON_SQUARE:
break;
case PSP_BUTTON_SELECT:
game_quit = 1;
break;
case PSP_BUTTON_START:
game_quit = 1;
break;
}
}
//FillRectGrad顶点颜色是从左上角顶点逆时针方向
//例如本例子是白-黑-黑-白
int colors[4]={
MAKE_RGBA_5551(255,255,255,255),
MAKE_RGBA_5551(0,0,0,255),
MAKE_RGBA_5551(0,0,0,255),
MAKE_RGBA_5551(255,255,255,255),
};
// 用户绘图函数
void DrawScene()
{
// 为开始绘图准备
BeginScene(1);FillRectGrad(0,0,480,272,colors,DISPLAY_PIXEL_FORMAT_5551);
// 完成绘图并显示
EndScene();
}extern "C"
int main(int argc, char* argv[])
{
// nge 初始化
NGE_Init(INIT_VIDEO);
// 设置自定义按钮处理函数
InitInput(btn_down,btn_up,1);
while ( !game_quit )
{
// 显示帧数显示
ShowFps();
// 要求 nge2 处理按键,它将使用 InitInput 定义的函数来处理
InputProc();
// 调用用户绘图函数
DrawScene();
}
// nge 退出处理
NGE_Quit();
return 0;
}[/code]

效果图:

[attach]1018[/attach]


newcreat
2009-03-19 17:11:53

[code=c]int a[10];[/code]
测试一下