yl_ls
2009-03-19 21:02:54
[url=http://www.iacger.com]http://www.iacger.com[/url] 首发
本例使用的图片在 libnge2 的 win32buildsin 目录下,包括之前的教程都应该放在此目录中运行[code=c]#include "libnge2.h"
// 用于 RenderQuad 的颜色掩码
int mask4444 = MAKE_RGBA_4444(255,255,255,255);
// 退出标识
int game_quit = 0;
// 当前要显示的图像结构指针
image_p img;
// 按下键处理
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;
}
}
// 用户绘图函数
void DrawScene()
{
// 为开始绘图准备
BeginScene(1);
// 绘制图片
DrawImage(img, 0, 0, 0, 0, 0, 0, 0, 0);
// 绘制旋转的图片
RenderQuad(img, 0, 0, 256, 256, 250, 0, 1, 1, 45, mask4444);
// 完成绘图并显示
EndScene();
}
extern "C"
int main(int argc, char* argv[])
{
// nge 初始化
NGE_Init(INIT_VIDEO);
// 载入图片
img = image_load("images/nge2logo.png", DISPLAY_PIXEL_FORMAT_4444, 1);
// 修改用于图片旋转时的中心点
img->rcentrex = 128;
img->rcentrey = 128;
// 设置自定义按钮处理函数
InitInput(btn_down,btn_up,1);
while ( !game_quit )
{
// 显示帧数显示
ShowFps();
// 要求 nge2 处理按键,它将使用 InitInput 定义的函数来处理
InputProc();
// 调用用户绘图函数
DrawScene();
}
// 释放图片
image_free(img);
// nge 退出处理
NGE_Quit();
return 0;
}[/code]效果图:
[img]http://www.iacger.com/bbs/attachment.php?id=5379&u=1639&extension=gif&attach=1237444782_0.gif&attachpath=1/6/3/9[/img]