分享
 
 
 

JGE++

王朝百科·作者佚名  2010-04-11
窄屏简体版  字體: |||超大  

JGE++(Jas Game Engine++)是一套有硬件加速的PSP的2D游戏引擎,支持WINDOWS下的跨平台开发。包括完整的游戏制作步骤:编码、DEBUG和测试,都可以在 WINDOWS下进行。开发者也可以开发WINDOWS游戏,不过主要平台还是PSP。JGE++ 就是一个利用GU库写成的2D游戏引擎,GU库的原本用途是用作编写3D游戏,我们把它应用在2D游戏上,就可以享用硬件加速所带来的种种好处,例如运行速度的提升,着色/半透明色效果,图像放大缩小和旋转等。JGE++ 基本上可以说是一个跨平台游戏引擎,写好的游戏,可分别编译成WINDOWS版和PSP版。JGE++ 在WINDOWS上是用了一个叫HGE的游戏引擎(需要DIRECTX8.0以上)作为根基。而PSP版则依然要安装了PSPSDK才可以编译。

硬件加速功能包括:

缩放、滚转、色彩混合。

动画精灵。

几何体渲染,包括三角形、 圆形、矩形和粗线。

读取PNG.JPEG和GIF图片

位图字体

中文GBK字体

True Type 字体

立体声WAV回放

硬件MP3解码

资源管理器

ZIP格式资源支持

使用XML脚本进行渲染

基本的3D函数,包括渲染带贴图的三角形,QUAKE2(MD2)模型和OBJ模型

让我们先看一下 JGE++ 和 JGE++ 应用程序的目录结构:

Code:

______JGE

|___Demo

|___bin

|___Debug

|___JGEFramework

|___Release

|___src

|___GameApp.cpp

|___GameApp.h

其中GameApp.cpp 和GameApp.h就是所有JGE++应用程序的主要部份.

因为暂时还没有VC6.0 建立 JGE++程序的向导,当大家想写自己的游戏时,最方便的办法,就是拿Demo的GameApp.cpp 和GameApp.h来作更改.

看一下GameApp.h就知道JGE++程序的结构很简单:

Code:

GameApp(JGE *engine);

virtual ~GameApp();

virtual void Create(); // 设定变数/载入图,音乐等

virtual void Destroy();// 释放有关物件等

virtual void Update(); // 更新有关变数/用户操控

virtual void Render(); // 显示更新

参考GameApp.cpp,我们就更可以进一步了解实际的情况:

Code:

void GameApp::Create()

{

// 载入贴图

mTexture = mEngine->LoadTexture("Res/mario.png", true);

// 设定卡通角色的贴图范围

mMario = new JQuad(mTexture, 0.0f, 0.0f, 62.0f, 72.0f);

// 设定贴图范围的中心点

mMario->SetHotSpot(31.0f, 36.0f);

// 设定"Hello World!"的贴图范围

mHello = new JQuad(mTexture, 0.0f, 100.0f, 128.0f, 28.0f);

// 设定贴图范围的中心点

mHello->SetHotSpot(64.0f, 14.0f);

// 载入音乐和播放

mMusic = mEngine->LoadMusic("Res/smarioa.mod");

mEngine->PlayMusic(mMusic);

// 载入点阵字体

mFont = new JLBFont("Res/f3", 16, true);

// 设定有关变数

mScale = 1.0f;

mAngle = 0.0f;

mDelta = 0.001f;

}

void GameApp::Destroy()

{

// 释放有关物件

if (mTexture)

mEngine->FreeTexture(mTexture);

if (mMario)

delete mMario;

if (mHello)

delete mHello;

if (mMusic)

mEngine->FreeMusic(mMusic);

if (mFont)

delete mFont;

}

void GameApp::Update()

{

// 按"△"截图

if (mEngine->GetButtonClick(PSP_CTRL_TRIANGLE))

{

char s[80];

sprintf(s, "ms0:/screenshot.png");

mEngine->ScreenShot(s);

}

// 按"X"退出

if (mEngine->GetButtonClick(PSP_CTRL_CROSS))

{

mEngine->End();

return;

}

// 拿出由上一次更新到现在相隔的时间

float dt = mEngine->GetDelta();

// 更新有关变数

mAngle += 0.001f*dt;

if (mAngle > M_PI*2.0f)

mAngle = 0.0f;

mScale += mDelta*dt;

if (mScale > 2.0f || mScale < 0.5f)

{

mDelta *= -1;

mScale += mDelta*dt;

}

// 下面只是调试用,可以不用理会

mEngine->printf("FPS:%6.2f", mEngine->GetFPS());

}

void GameApp::Render()

{

// 设定四个点的颜色

PIXEL_TYPE colors[] =

{

ARGB(255,0,0,255),

ARGB(255,62,114,189),

ARGB(255,255,255,255),

ARGB(255,255,255,255)

};

// 以渲染方式清除背景

mEngine->FillRect(0.0f, 0.0f, SCREEN_WIDTH_F, SCREEN_HEIGHT_F, colors);

// 贴上卡通角色

mEngine->RenderQuad(mMario, 80.0f, 80.0f);

// 贴上卡通角色同时改变它的角度和大小

mEngine->RenderQuad(mMario, 400.0f, 80.0f, 1.0f, 1.2f, 1.2f);

// 贴上卡通角色同时旋转角度

mEngine->RenderQuad(mMario, 80.0f, 200.0f, mAngle, 1.0f, 1.0f);

// 设定渲染颜色再贴图

mMario->SetColor(ARGB(128,255,255,0));

mEngine->RenderQuad(mMario, 380.0f, 150.0f, 0.0f, mScale, mScale);

// 重设默认颜色

mMario->SetColor(ARGB(255,255,255,255));

// Hello world!

mEngine->RenderQuad(mHello, SCREEN_WIDTH_F/2.0f, SCREEN_HEIGHT_F/2.0f, 0.0f, mScale, mScale);

// 显示字串

mFont->SetColor(ARGB(255,255,255,0));

mFont->DrawString("JGE++ Demo", 240.0f, 20.0f, JGETEXT_CENTER);

}

利用JGE++写游戏的最大好处是我们可以利用VC6.0,在WINDOWS上测试和调试,不用每个小更改,都要弄上去PSP去试,更不用担心把PSP锁死而要拆电池了!至于用VC6.0 Debugger来调试的好处,在下更是不用多说了!

相信大家现在都对JGE++ 有点初步了解了,一起用它来写游戏吧!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有