- 浏览: 135100 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
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 3786每年过年都没事,都得写点小东西,今年是是男人就撑过20秒(20 ... -
Where is my water 游戏算法
2012-01-23 19:56 2102过年把Where is my water完了一遍,对这个游戏的 ... -
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧
2010-02-16 23:03 11069Bug已经Fix~~ 注释已经补充 import jav ... -
俄罗斯方块:C++中的常用错误原因~~
2008-07-20 20:45 1314很久没有用C++写程序了。。用起来很不顺手! 出了问题不知道怎 ... -
疯狂游戏系列之(一)疯狂俄罗斯策划
2008-07-18 20:38 1487闲来无事,做一个PSP上的俄罗斯方块游戏,大致原则是两个字 疯 ... -
PSP程序开发例子解析(十二)InputSystem
2008-07-14 20:50 1061InputSystem例子掩饰了如何在程序中输入文字 #i ... -
PSP程序开发例子解析(十一)HGEParticles
2008-07-14 20:50 1049HGEParticles这个例子很BT 模仿WindowsMe ... -
PSP程序开发例子解析(十)HGEDistortionMesh
2008-07-14 20:49 1692HGEDistortionMesh例子应用了HGE包中的内容 ... -
PSP程序开发例子解析(九)3DPrimer
2008-07-14 20:48 12343D例子显示一个Cube和一个人物 不断旋转 具体底部底层AP ... -
PSP程序开发例子解析(八)Animator
2008-07-14 20:48 949GameApp.cpp #include <std ... -
PSP程序开发例子解析(七)DisplayingChinese
2008-07-14 20:46 955显示中文 加载点阵文件 没啥说的 就是不清楚点阵文件是哪来的= ... -
PSP程序开发例子解析(六)TrueTypeFont
2008-07-14 20:45 1054按照Windows的ttf字体显示文字。。跑不起来 略 #i ... -
PSP程序开发例子解析(五)Shapes
2008-07-14 20:44 913绘制各种形状 无话可说 #include <st ... -
PSP程序开发例子解析(四)Splines
2008-07-14 20:38 953第四个例子讲述了曲线 ... -
PSP程序开发例子解析(三)ResourceManager
2008-07-14 20:38 959太晚了 明天再写 弄个res文件没找到 换了个工程 copy源 ... -
PSP程序开发例子解析(二)Images
2008-07-14 20:37 1148第二个例子程序演示了 ... -
关于BMP图片格式(部分垃圾代码)
2007-11-17 19:05 1340java 代码 做了个刷投票的程序 识别随即码图片的地方 ...
相关推荐
同年4月,由开发者Nem发布的“Hello World”程序成为首款PSP自制软件,标志着PSP Homebrew时代的开端。 随后,在2005年6月,PSP-DEV团队发现了一种名为kxploit的方法,使自制软件能够在1.5固件版本上运行,这极大地...
PSPSDK 是 PSP 游戏开发的软件开发套件,提供了必要的头文件、库文件和示例程序等工具。toolchain 是 PSP 游戏开发的编译器和链接器,负责将源代码编译成 PSP 可执行文件。 二、CYGWIN 的安装 要安装 CYGWIN,只...
【PSP编程开发环境的建立】涉及的主要知识点是PSP(PlayStation Portable)软件的开发流程,这包括在Visual Studio 2008(VS2008)和Eclipse集成开发环境中设置PSP的开发环境,以及编写和编译PSP程序的基本步骤。...
pspdev,有需要的下。 很好的一个psp编程工具 psp编程必备。
【PSP开发工具Miro Lua】是一款专为PSP(PlayStation Portable)平台设计的lua脚本开发环境,它为LUA爱好者提供了在PSP上编写、测试和运行lua程序的便利工具。LUA是一种轻量级的脚本语言,因其简洁的语法和强大的...
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)介绍 在早期的个人计算机操作系统中,特别是MS-DOS环境下,程序段前缀(Program Segment Prefix, PSP)扮演着极其重要的角色。PSP是由DOS自动创建的一段特殊内存区域,它位于每个被加载到...
标题中的“psp 中文输入程序 源代码”指的是为PlayStation Portable(PSP)游戏掌机开发的中文输入法软件的原始编程代码。PSP是一款由索尼公司推出的便携式多媒体设备,它允许用户运行游戏、播放媒体以及进行其他...
2. **Eclipse**:一个强大的C/C++集成开发环境(IDE),用于编写、编译及调试PSP程序。 3. **Blender3D**:一个开源的3D建模工具,用于创建游戏中的3D资产。 这些工具构成了一个完整的PSP游戏开发流程。 #### ...
标题中的“psp5.50直接升级6.60程序”指的是PlayStation Portable(PSP)游戏设备的固件升级过程。PSP是一款由索尼公司推出的掌上游戏机,其系统固件版本的更新旨在提供新功能、优化性能以及修复已知问题。在这个...
6. **调试工具**:PSP SDK还可能包含一个或多个调试器,如PSPGDB,用于在开发过程中查找和修复程序错误。 **使用PSP SDK进行开发的流程:** 1. **环境配置**:首先,开发者需要安装PSP SDK,并将其路径添加到系统...
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...
### 使用Eclipse调试PSP程序的关键知识点...通过上述步骤,开发者可以有效地使用Eclipse 对PSP 程序进行调试,提高开发效率并减少错误。这对于从事PSP 游戏开发或者其他基于PSP 平台的应用开发的人员来说是非常有用的。
在软件开发领域,PSP(Personal Software Process,个人软件过程)是一种系统化的方法,旨在提高软件工程师的生产力和软件质量。PSP作为SEI(Software Engineering Institute,软件工程研究所)提出的一种自我改进的...
psp 6.60升级程序,适合从3.71m33 升级到6.60,把程序放到/psp/game/update文件夹内
BFMLoaderV100_PSP_ 是一个专为PSP(PlayStation Portable)平台设计的软件加载器,由西方科学团队开发。这个加载器的主要功能是处理和加载BFM格式的文件,BFM全称可能是"Binary Format for Multimedia"或类似的...
在PSP开发中,程序通常以ELF格式编译,但为了在设备上运行,需要将其转换为PBP格式,这是一个包含所有必要资源和元数据的打包文件。Elf2pbpm工具就是用于执行这种转换的,确保你的应用程序能够在PSP上正确加载和运行...
《PSP官方系统6.61详解:兼容性与功能解析》 PSP(PlayStation Portable)是由日本索尼公司推出的便携式游戏机,自2004年首次发布以来,凭借其强大的游戏性能和多媒体功能,赢得了全球众多玩家的喜爱。在PSP的发展...
PSP是一种个人软件开发过程模型,它旨在帮助软件工程师改进其个人软件过程,包括时间管理、任务管理、质量控制等方面。通过PSP评价方式,可以对学生编写的软件代码进行定量和定性的评价,从而帮助学生了解自身的编程...