- 浏览: 132575 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
datawarehouse:
datawarehouse 写道ngix 淘宝是基于这个开发了 ...
解密淘宝网的开源架构 -
datawarehouse:
ngix 淘宝是基于这个开发了一个自己的webserver吧。 ...
解密淘宝网的开源架构 -
eyelock:
我运行报错,,楼主能解答一下G,对swing不熟。
raphi ...
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧 -
lostsky_11:
楼主写出例子了么?物理碰撞部分可能跟你说的差不多渲染部分可以搜 ...
Where is my water 游戏算法 -
xouou_53320:
都是牛人
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧
今天晚上把PSP的开发环境搭建了起来 并且看了看PSP的HelloWorld 下面是介绍
开发环境搭建及Helloworld分析
具体需要下载的东西及详细配置在:
http://www.itshaik.com/bbs/thread-2385-1-1.html
1.PSPSDK
最新SVN编译版本+MSYS+GCC完整打包
官方地址
http://www.pspsp.org/main/?page_id=8
下载链接
http://www.aeolusc.com/down/PSPSDK_MSYS_FULL.7z
2.JGE++
PSP上的2D硬件加速的开发引擎
官方地址
http://jge.khors.com/
下载链接
http://jge.khors.com/JGE_1_0.zip
下载完后修改PSPSDK下的msys.bat文件
@echo off
bin
\sh --login -i'
set PATH=d:\pspsdk\msys\bin;d:\pspsdk\pspdev\bin;%PATH%;cmd
将JGE解压文件放入 PSPSDK\home\sys_username\下 [sys_username 当前系统用户名称]
到这里为止 初步的编辑环境已经配置好了
通过D:
CD D:\PSPSDK\home\zmo\JGE\Tools
newproject test1 test
来新建立一个工程 用VisualStudio2005打开
newprocjets test1 test 是一个批处理 参数1是项目名称 参数2是psp上的ICON的名称
icon.jpg 是应用程序在目录中的图标
编写完项目后运行PSPSDK下的msys.bat
然后依次输入以下的代码
cd JGE\Projects\helloworld
make 3xx
然后去项目目录可以找到EBOOT.3xx了
记得要附上res文件夹 res文件夹要和EBOOT.BPB文件在同一目录下 然后连整个工程放到PSP的game下
今天开始学习例子Tutorials中的工程
从HelloWorld开始
整个Solution解决方案包括2个Project工程 一个是JGE图形环境的工程,默认生成 不去管它
另一个是真正需要编码的工程 包括的目录有:Header Files、Misc、Resource Files、Source Files
目录用途顾名思义 从头文件开始 最简单的程序共3个文件GameApp.h、GameApp.cpp、GameLauncher.cpp
GameApp.h的内容如下
//------------------------------------------------------------------------------------- // // JGE++ is a hardware accelerated 2D game SDK for PSP/Windows. // // Licensed under the BSD license, see LICENSE in JGE root for details. // // Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) <jhkhui@gmail.com> // //------------------------------------------------------------------------------------- #ifndef _GAMEAPP_H_ #define _GAMEAPP_H_ #include <JApp.h> class JLBFont; /* 引用到的一些类请在这里申明 */ class GameApp: public JApp//继承自JApp 应该是所有PSP应用程序的父类 { /* private 私有成员申明在这里 */ private: JLBFont* mFont; /* public 共有信息申明在这里 */ public: GameApp();//程序主类的构造函数 virtual ~GameApp();//析构函数 virtual void Create();//App创建时的方法 virtual void Destroy();//销毁 virtual void Update();//主要案件控制似乎在这个方法里 virtual void Render();//绘制图片 virtual void Pause();//点击Home按钮 跳出程序Pause virtual void Resume();//回来 }; #endif GameApp.cpp实现类 //------------------------------------------------------------------------------------- // // JGE++ is a hardware accelerated 2D game SDK for PSP/Windows. // // Licensed under the BSD license, see LICENSE in JGE root for details. // // Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) <jhkhui@gmail.com> // //------------------------------------------------------------------------------------- #include <stdio.h> #include <JGE.h> #include <JRenderer.h> #include <JLBFont.h> #include "GameApp.h" //------------------------------------------------------------------------------------- // Constructor. Variables can be initialized here. // 构造器.变量可以在这里被初始化 //------------------------------------------------------------------------------------- GameApp::GameApp() { mFont = NULL; } //------------------------------------------------------------------------------------- // Destructor. // 析构函数 //------------------------------------------------------------------------------------- GameApp::~GameApp() { } //------------------------------------------------------------------------------------- // This is the init callback function. You should load and create your in-game // resources here. // 这个是初始化函数的回调函数.你应在在这里加载并创建游戏中的资源 //------------------------------------------------------------------------------------- void GameApp::Create() { mFont = new JLBFont("f3", 16, true); } //------------------------------------------------------------------------------------- // This is the clean up callback function. You should delete all your in-game // resources, for example texture and quads, here. // 这是清理函数的回调函数.你应该在这里删除你游戏的所有资源 //------------------------------------------------------------------------------------- void GameApp::Destroy() { if (mFont) delete mFont; } //------------------------------------------------------------------------------------- // This is the update callback function and is called at each update frame // before rendering. You should update the game logic here. // 这是更新的回调函数.在描绘之前 你应该调用每个更新函数 //------------------------------------------------------------------------------------- void GameApp::Update() { JGE* engine = JGE::GetInstance(); // do a screen shot when the TRIANGLE button is pressed // 当按下△的时候 截图 if (engine->GetButtonClick(PSP_CTRL_TRIANGLE)) { char s[80]; // save screen shot to root of Memory Stick // 将截图保存到记忆棒 sprintf(s, "ms0:/screenshot.png"); JRenderer::GetInstance()->ScreenShot(s); } // exit when the CROSS button is pressed // 当按下○的时候退出 if (engine->GetButtonClick(PSP_CTRL_CROSS)) { engine->End(); return; } float dt = engine->GetDelta(); // Get time elapsed since last update. //=================================================================== // Your updating code here... // 在这里键入你的更新代码... //=================================================================== } //------------------------------------------------------------------------------------- // All rendering operations should be done in Render() only. // //------------------------------------------------------------------------------------- void GameApp::Render() { // get JRenderer instance // 获取 JRenderer实例 JRenderer* renderer = JRenderer::GetInstance(); // clear screen to black //将屏幕清屏为黑色 renderer->ClearScreen(ARGB(0,0,0,0)); mFont->SetColor(ARGB(255,255,255,255)); mFont->DrawString("Hello World!", 240.0f, 130.0f, JGETEXT_CENTER); //=================================================================== // Your rendering code here... //所有的主要代码应该放在这里 //================================================================== } //------------------------------------------------------------------------------------- // This function is called when the system wants to pause the game. You can set a flag // here to stop the update loop and audio playback. // 当系统想要暂停游戏的时候会调用这个函数.你可以在这里设置一个标志来暂停更新循环和声音的回放 //------------------------------------------------------------------------------------- void GameApp::Pause() { } //------------------------------------------------------------------------------------- // This function is called when the game returns from the pause state. // 这个函数会在系统从暂停中恢复过来的时候被调用 //------------------------------------------------------------------------------------- void GameApp::Resume() { } 最后的GameLauncher.cpp //------------------------------------------------------------------------------------- // // JGE++ is a hardware accelerated 2D game SDK for PSP/Windows. // // Licensed under the BSD license, see LICENSE in JGE root for details. // // Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) <jhkhui@gmail.com> // //------------------------------------------------------------------------------------- #include <JGameLauncher.h> #include "GameApp.h" //------------------------------------------------------------------------------------- JApp* JGameLauncher::GetGameApp() { return new GameApp();//负责初始化GameApp类 }; //------------------------------------------------------------------------------------- char *JGameLauncher::GetName() { /* 这里的名字 将会在XMB下显示 即是ICO的名字 */ return "template_desc"; } //------------------------------------------------------------------------------------- u32 JGameLauncher::GetInitFlags() { return JINIT_FLAG_NORMAL; }
Hello World 负责在图形界面输出HelloWorld字符串 应用F3字体 字体文件需要单独为每一个应用提供 包含一个.dat文件和一个.png文件
实现了按三角截屏,按叉退出的功能 通过调用JGE的End();
HelloWorld非常简单 明天看如何在屏幕上绘制图片 恩一共12个例子慢慢看 做一个双人队战的俄罗斯方块 然后各种优化
发表评论
-
过年没事,一天时间写了一个是男人就撑住20秒的Java版
2012-01-24 13:21 3753每年过年都没事,都得写点小东西,今年是是男人就撑过20秒(20 ... -
Where is my water 游戏算法
2012-01-23 19:56 2063过年把Where is my water完了一遍,对这个游戏的 ... -
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧
2010-02-16 23:03 10986Bug已经Fix~~ 注释已经补充 import jav ... -
俄罗斯方块:C++中的常用错误原因~~
2008-07-20 20:45 1283很久没有用C++写程序了。。用起来很不顺手! 出了问题不知道怎 ... -
疯狂游戏系列之(一)疯狂俄罗斯策划
2008-07-18 20:38 1468闲来无事,做一个PSP上的俄罗斯方块游戏,大致原则是两个字 疯 ... -
PSP程序开发例子解析(十二)InputSystem
2008-07-14 20:50 1031InputSystem例子掩饰了如何在程序中输入文字 #i ... -
PSP程序开发例子解析(十一)HGEParticles
2008-07-14 20:50 1019HGEParticles这个例子很BT 模仿WindowsMe ... -
PSP程序开发例子解析(十)HGEDistortionMesh
2008-07-14 20:49 1648HGEDistortionMesh例子应用了HGE包中的内容 ... -
PSP程序开发例子解析(九)3DPrimer
2008-07-14 20:48 12033D例子显示一个Cube和一个人物 不断旋转 具体底部底层AP ... -
PSP程序开发例子解析(八)Animator
2008-07-14 20:48 928GameApp.cpp #include <std ... -
PSP程序开发例子解析(七)DisplayingChinese
2008-07-14 20:46 936显示中文 加载点阵文件 没啥说的 就是不清楚点阵文件是哪来的= ... -
PSP程序开发例子解析(六)TrueTypeFont
2008-07-14 20:45 1038按照Windows的ttf字体显示文字。。跑不起来 略 #i ... -
PSP程序开发例子解析(五)Shapes
2008-07-14 20:44 893绘制各种形状 无话可说 #include <st ... -
PSP程序开发例子解析(四)Splines
2008-07-14 20:38 935第四个例子讲述了曲线 ... -
PSP程序开发例子解析(三)ResourceManager
2008-07-14 20:38 938太晚了 明天再写 弄个res文件没找到 换了个工程 copy源 ... -
PSP程序开发例子解析(二)Images
2008-07-14 20:37 1124第二个例子程序演示了 ... -
关于BMP图片格式(部分垃圾代码)
2007-11-17 19:05 1318java 代码 做了个刷投票的程序 识别随即码图片的地方 ...
相关推荐
pspdev,有需要的下。 很好的一个psp编程工具 psp编程必备。
PSP 程序设计基础,全面介绍PSP开发过程和开发工具使用,调试。适合新手入门
Chapter 18: Programming the PSP: Hello World Chapter 19: Running Homebrew Applications .Chapter 20: Installing and Running Homebrew on PSPs with Firmware Version 200 Chapter 21: Installing and ...
介绍了PSP游戏开发环境的建立和编程基础知识。
PSP程序开发时使用eclipse调试PSP程序,书不错,分享一下啊
供PSP开发脚本语言的LUA爱好者使用,作者不详引用自http://bt.levelup.cn/userupload/tg777.com/download/5832.html
Develop for the PSP,看看国外同国内对PSP的距离,是一本学习PSP编程的书。
6.XX Downgrader是一款给官方系统的PSP进行降级的程序,使用它能够将6.31/6.35/6.38/6.39/6.60官方系统的PSP降级至6.20/6.35系统。 现在6.60系统也终于能够通过降级来安装自制系统了! 使用方法: 1.把6.20...
psp 6.60升级程序,适合从3.71m33 升级到6.60,把程序放到/psp/game/update文件夹内
在VS2008和Eclipse中建立开发环境
PSP自制软件开发利器,JGE 1.0 第3部分(由于太大分卷压缩)
Sony索尼PSP游戏机最新升级程序3.50官方正式版(2007年6月1日发布)自2007年5月31日起,SONY将开始提供PSP®主机机能之最新版更新程序下载,在本次更新后,版本将升级为3.50。此前的种种猜测均化为泡影,此次升级...
本人亲自整合的PSPSDK, 说明:这里包含2套SDK,一套是1.5(现在很少有人在用了), 另一套是现在正在用的3xx-5xx 目录里,150的是150版本,如果要用150...如果有问题或想交流PSP开发经验 请加QQ群5126002或15047430。
个体软件过程的魅力日益凸现,软件工业化生产证实,工程小组高效开发高质量软件产品的能力,在很大程度上取决于个体工程师如何进行时间管理、进度管理、质量管理,取决于他们用规范化的方法开发程序的能力。...
psp中文输入法C++源代码,但是希望有人可以改成.PRT的插件,在PSP上用会更方便啊
PSP3000完美刷机包可关机的刷机包绝对好用
软件开发过程(psp)课件包括handbook及少数题目
psp iso tool 用于5.00m33 系统使用更搞系统版本的 破解程序
PSP 6.35完整刷机包 支持PSP1000,PSP2000,PSP3000 可以使用
(还有一个是针对PSP 2000V3 5.03主机版的) 国人再次给大家带来了惊喜,以下就是由忠贞炙烈之炎发布的503kxploit_v4已签名版,通过该程序,PSP3000/2000V3 5.03主机可以无须再刷鸡蛋图直接进入普米4!此外需要...