`
wangshu3000
  • 浏览: 135100 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

PSP程序开发例子解析(一)HelloWorld

阅读更多

今天晚上把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个例子慢慢看 做一个双人队战的俄罗斯方块 然后各种优化

分享到:
评论
1 楼 白浪滔天 2008-07-19  
写的不错!加油噢

相关推荐

    PSP 程序设计基础

    同年4月,由开发者Nem发布的“Hello World”程序成为首款PSP自制软件,标志着PSP Homebrew时代的开端。 随后,在2005年6月,PSP-DEV团队发现了一种名为kxploit的方法,使自制软件能够在1.5固件版本上运行,这极大地...

    psp 游戏开发编程基础(英)

    PSPSDK 是 PSP 游戏开发的软件开发套件,提供了必要的头文件、库文件和示例程序等工具。toolchain 是 PSP 游戏开发的编译器和链接器,负责将源代码编译成 PSP 可执行文件。 二、CYGWIN 的安装 要安装 CYGWIN,只...

    PSP编程开发环境的建立

    【PSP编程开发环境的建立】涉及的主要知识点是PSP(PlayStation Portable)软件的开发流程,这包括在Visual Studio 2008(VS2008)和Eclipse集成开发环境中设置PSP的开发环境,以及编写和编译PSP程序的基本步骤。...

    PSP程序开发 pspdev

    pspdev,有需要的下。 很好的一个psp编程工具 psp编程必备。

    psp开发工具miro lua

    【PSP开发工具Miro Lua】是一款专为PSP(PlayStation Portable)平台设计的lua脚本开发环境,它为LUA爱好者提供了在PSP上编写、测试和运行lua程序的便利工具。LUA是一种轻量级的脚本语言,因其简洁的语法和强大的...

    Hacking the 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 ...

    程序段前缀介绍与返回DOS

    #### 一、程序段前缀(PSP)介绍 在早期的个人计算机操作系统中,特别是MS-DOS环境下,程序段前缀(Program Segment Prefix, PSP)扮演着极其重要的角色。PSP是由DOS自动创建的一段特殊内存区域,它位于每个被加载到...

    psp 中文输入程序 源代码

    标题中的“psp 中文输入程序 源代码”指的是为PlayStation Portable(PSP)游戏掌机开发的中文输入法软件的原始编程代码。PSP是一款由索尼公司推出的便携式多媒体设备,它允许用户运行游戏、播放媒体以及进行其他...

    psp development with eclipse

    2. **Eclipse**:一个强大的C/C++集成开发环境(IDE),用于编写、编译及调试PSP程序。 3. **Blender3D**:一个开源的3D建模工具,用于创建游戏中的3D资产。 这些工具构成了一个完整的PSP游戏开发流程。 #### ...

    psp5.50直接升级6.60程序

    标题中的“psp5.50直接升级6.60程序”指的是PlayStation Portable(PSP)游戏设备的固件升级过程。PSP是一款由索尼公司推出的掌上游戏机,其系统固件版本的更新旨在提供新功能、优化性能以及修复已知问题。在这个...

    PSP SDK,PSP 开发包,PSP 的好东东

    6. **调试工具**:PSP SDK还可能包含一个或多个调试器,如PSPGDB,用于在开发过程中查找和修复程序错误。 **使用PSP SDK进行开发的流程:** 1. **环境配置**:首先,开发者需要安装PSP SDK,并将其路径添加到系统...

    PSP HACKS PSP破解开发的书

    Develop for the PSP,看看国外同国内对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程序.pdf

    ### 使用Eclipse调试PSP程序的关键知识点...通过上述步骤,开发者可以有效地使用Eclipse 对PSP 程序进行调试,提高开发效率并减少错误。这对于从事PSP 游戏开发或者其他基于PSP 平台的应用开发的人员来说是非常有用的。

    软件开发过程psp课件

    在软件开发领域,PSP(Personal Software Process,个人软件过程)是一种系统化的方法,旨在提高软件工程师的生产力和软件质量。PSP作为SEI(Software Engineering Institute,软件工程研究所)提出的一种自我改进的...

    psp 6.60升级程序

    psp 6.60升级程序,适合从3.71m33 升级到6.60,把程序放到/psp/game/update文件夹内

    BFMLoaderV100_PSP_

    BFMLoaderV100_PSP_ 是一个专为PSP(PlayStation Portable)平台设计的软件加载器,由西方科学团队开发。这个加载器的主要功能是处理和加载BFM格式的文件,BFM全称可能是"Binary Format for Multimedia"或类似的...

    Sony PSP Application AppWizard Visual 6.0 2.0

    在PSP开发中,程序通常以ELF格式编译,但为了在设备上运行,需要将其转换为PBP格式,这是一个包含所有必要资源和元数据的打包文件。Elf2pbpm工具就是用于执行这种转换的,确保你的应用程序能够在PSP上正确加载和运行...

    PSP官方系统6.61

    《PSP官方系统6.61详解:兼容性与功能解析》 PSP(PlayStation Portable)是由日本索尼公司推出的便携式游戏机,自2004年首次发布以来,凭借其强大的游戏性能和多媒体功能,赢得了全球众多玩家的喜爱。在PSP的发展...

    基于PSP的JAVA程序设计基础课程设计评价模式.pdf

    PSP是一种个人软件开发过程模型,它旨在帮助软件工程师改进其个人软件过程,包括时间管理、任务管理、质量控制等方面。通过PSP评价方式,可以对学生编写的软件代码进行定量和定性的评价,从而帮助学生了解自身的编程...

Global site tag (gtag.js) - Google Analytics