PSP软件开发用什么语言?
但是游戏主机的开发一般都需要相关的套件。
而且周期长,一个人很难做到。
PSP程序开发实例分析(二)图片2008-07-03 20:46第二个例子展示了如何在屏幕上画图,并附上几个简单的代码,源代码改动不大。
1.header GameApp.h
#ifndef _GAMEAPP_H_
#define _GAMEAPP_H_
# include & ltJApp.h & gt
JQuad类;//JQuad定义一张图片上的显示范围,比如很多小图片保存为一张大图片,在大图片上指定显示坐标。
JSprite类;//动画好像没什么用。
JTexture类;//读取一张图作为JTexture = =!我不知道里面有什么。没有可以阅读的文件。
类GameApp: public JApp
{
私人:
JTexture * mBgTex//整个背景的图片
JTexture * mSpriteTex//两个人的照片
JQuad * mBg//定义整个背景的大小。
JQuad * mBoy//人物图片中男孩的大小
JQuad * mGirl//人物图片中女孩的大小。
公共:
game app();
virtual ~ game app();
虚拟void Create();
虚拟void Destroy();
虚拟void Update();
虚拟void Render();
虚拟void Pause();
虚拟void Resume();
};
#endif
2.源文件GameApp.cpp
# include & ltstdio.h & gt
# include & ltJGE.h & gt
# include & ltJRenderer.h & gt
# include & ltJLBFont.h & gt
# include & ltJSprite.h & gt
# include & ltJFileSystem.h & gt
#包含“GameApp.h”
GameApp::GameApp()
{
mBgTex = NULL
mBg = NULL
mSpriteTex = NULL
mBoy = NULL
mGirl = NULL//将其设置为NULL。有什么意义?
GameApp::~GameApp()
{
}
//程序启动
void GameApp::Create()
{
j renderer * renderer = j renderer::GetInstance();
//加载背景纹理(纹理格式可以是PNG、JPG或GIF)
mBgTex = renderer-& gt;load texture(" BG . jpg ");//PNG JPG GIF开发的API可以很好的封装初始化和加载背景图片。所有的高级API都提供了,底层什么都没有暴露= =!看来之前在图像处理上想的太多了,100M应该可以运行一个3D游戏,所以不要太在意内存消耗,不要泄露。
//加载角色的纹理(使用TEX_TYPE_USE_VRAM将纹理加载到PSP上的VRAM中,这样可以加快渲染速度)
mspritex = renderer-& gt;LoadTexture("planet.png ",TEX _ TYPE _ USE _ VRAM);//使用此参数加速。
//JQuad在BgTex上定义了一个从左上角到右下角的范围,知道PSP屏幕的尺寸是480*272。
mBg = new JQuad(mBgTex,0,0,480,272);//创建用于呈现的背景四边形。
//现在让我们为角色创建图像四边形。这两个字符存储在一个纹理中
//所以我们要知道每一个的位置和大小来做四边形。
mBoy = new JQuad(mspritex,0,0,67,88);//同时定义男孩区域的范围。
mBoy-& gt;SetHotSpot(33.5f,44.0 f);//将轴心点设置为中间。定义这张图片的核心坐标,这里定义为旋转时中心绕中心旋转。
mgi rl = new JQuad(mspritex,68,0,68,90);//女生的照片从68年开始就和男生的照片交叉了。
mgi rl-& gt;SetHotSpot(34.0f,45.0 f);//同时将中心设置为热点。
}
void GameApp::Destroy()
{
SAFE _ DELETE(mbg tex);//调用了JTypes.h中的一个宏:# define safe _ delete(x)if(x){ delete x;x =空;}另一篇文章说发布JTexture需要什么引擎。什么应该有同样的效果?minengine->;免费音乐(mMusic);
SAFE _ DELETE(mBg);
SAFE _ DELETE(mspritex);
SAFE _ DELETE(mBoy);
SAFE _ DELETE(mgi rl);
}
//更新方法没有改变。
void GameApp::Update()
{
JGE*引擎= JGE::GetInstance();
如果(引擎->;GetButtonClick(PSP _ CTRL _ TRIANGLE))//按下三角形按钮时截屏
{
char s[80];
sprintf(s," ms0:/snapshot . png));
j renderer::GetInstance()-& gt;屏幕截图;
}
如果(引擎->;GetButtonClick(PSP _ CTRL _ CROSS))//按下十字按钮时退出
{
引擎->;end();
返回;
}
}
void GameApp::Render()
{
j renderer * renderer = j renderer::GetInstance();
渲染器-& gt;RenderQuad(mBg,0,0);//详细画出画面,画出整个背景画的范围mBg,JQuad。
渲染器-& gt;RenderQuad(mBoy,33.5,44,0.0f,1.0f,1.0f);//渲染的时候把字符缩小一点。
渲染器-& gt;RenderQuad(mGirl,320,235,0.0f,0.7f,0.7f);//参数分别是X点和Y点。从左上角开始,0.0f是旋转角度。我不明白这是什么单位。0.7f和0.7f是X轴和Y轴的缩放比例。1基于原始大小。降低了0.7f。
睡眠(1);//我加了纯粹是为了减少CPU占用,不然一运行CPU就满了。PSP里好像不支持这个功能。
}
void GameApp::Pause()
{
}
void GameApp::Resume()