InputSystem例子掩饰了如何在程序中输入文字
#include <stdio.h>
#include <JGE.h>
#include <JRenderer.h>
#include <JLBFont.h>
#include <JInputSystem.h>
#include <JGBKFont.h>
#include "GameApp.h"
//-------------------------------------------------------------------------------------
// Constructor. Variables can be initialized here.
//
//-------------------------------------------------------------------------------------
GameApp::GameApp()
{
}
//-------------------------------------------------------------------------------------
// Destructor.
//
//-------------------------------------------------------------------------------------
GameApp::~GameApp()
{
}
//-------------------------------------------------------------------------------------
// This is the init callback function. You should load and create your in-game
// resources here.
//
//-------------------------------------------------------------------------------------
void GameApp::Create()
{
m_inputStatus=0;
JInputSystem::GetInstance();
}
//-------------------------------------------------------------------------------------
// This is the clean up callback function. You should delete all your in-game
// resources, for example texture and quads, here.
//
//-------------------------------------------------------------------------------------
void GameApp::Destroy()
{
JInputSystem::Destory();
}
//-------------------------------------------------------------------------------------
// 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();
// if Application is in input mode.
if(JInputSystem::GetInstance()->GetIsInputActive())
{
JInputSystem::GetInstance()->Update();
return;
}
if (m_inputStatus == 1 && !JInputSystem::GetInstance()->GetIsInputActive())
{
m_inputStatus = 0;
m_outstring=JInputSystem::GetInstance()->GetInputString();
}
// switch to input mode
if (JGE::GetInstance()->GetButtonClick(PSP_CTRL_CIRCLE))
{
m_inputStatus = 1;
JInputSystem::GetInstance()->EnableInputMode(JInputSystem::GetInstance()->GetInputString());
}
// do a screen shot when the PSP_CTRL_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* renderer = JRenderer::GetInstance();
// clear screen to black
renderer->ClearScreen(ARGB(255,230,0,0));
JRenderer::GetInstance()->EnableTextureFilter(false);
if(JInputSystem::GetInstance()->GetIsInputActive())
{
JInputSystem::GetInstance()->Draw();
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"Analog Control(摇杆)+×○△□",10,170);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"L: Shift",10,10);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"R: Eng/Chi/Num",395,10);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"↓+× Finish Input(结束输入)",210,100);
return;
}
std::string outstr = "Inputs String (输入字符串):" + m_outstring;
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)(outstr.c_str()),20,20);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)" 按 ○ 开始输入",210,110);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"Press ○ to start",210,125);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)" 按 × 退出",210,160);
JInputSystem::GetInstance()->GetFont12()->RenderString((BYTE*)"Press × to exit",210,175);
//
// 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()
{
}
分享到:
相关推荐
综上所述,PSP程序设计基础不仅涵盖了PSP的历史发展脉络、硬件架构细节,还包括软件开发环境及调试方法等多个方面。对于初学者来说,了解这些基础知识将有助于更好地掌握PSP开发技能,为未来的项目开发打下坚实的...
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是一种轻量级的脚本语言,因其简洁的语法和强大的...
标题中的“psp 中文输入程序 源代码”指的是为PlayStation Portable(PSP)游戏掌机开发的中文输入法软件的原始编程代码。PSP是一款由索尼公司推出的便携式多媒体设备,它允许用户运行游戏、播放媒体以及进行其他...
标题中的“psp5.50直接升级6.60程序”指的是PlayStation Portable(PSP)游戏设备的固件升级过程。PSP是一款由索尼公司推出的掌上游戏机,其系统固件版本的更新旨在提供新功能、优化性能以及修复已知问题。在这个...
PSP SDK(Software Development Kit)则是为开发PSP游戏和应用程序提供的核心工具集,它包含了编译器、库文件、头文件、文档、示例代码以及调试工具等,使得开发者能够创建自己的PSP软件。 **PSP SDK中的关键组成...
### 汇编语言返回DOS系统方法:程序段前缀(PSP)与返回机制 #### 一、程序段前缀(PSP)介绍 在早期的个人计算机操作系统中,特别是MS-DOS环境下,程序段前缀(Program Segment Prefix, 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...
2. **Eclipse**:一个强大的C/C++集成开发环境(IDE),用于编写、编译及调试PSP程序。 3. **Blender3D**:一个开源的3D建模工具,用于创建游戏中的3D资产。 这些工具构成了一个完整的PSP游戏开发流程。 #### ...
### 使用Eclipse调试PSP程序的关键知识点...通过上述步骤,开发者可以有效地使用Eclipse 对PSP 程序进行调试,提高开发效率并减少错误。这对于从事PSP 游戏开发或者其他基于PSP 平台的应用开发的人员来说是非常有用的。
Develop for the PSP,看看国外同国内对PSP的距离,是一本学习PSP编程的书。
1. **PSP系统架构**:PSP使用基于ARM架构的处理器,结合定制的显示芯片和内存,其操作系统是基于Sony的PSP System Software。 2. **固件版本**:PSP有不同的固件版本,每个版本可能有新的功能和修复的漏洞。刷机...
psp 6.60升级程序,适合从3.71m33 升级到6.60,把程序放到/psp/game/update文件夹内
《软件开发过程PSP:构建高效能的个人开发体系》 在软件开发领域,PSP(Personal Software Process,个人软件过程)是一种系统化的方法,旨在提高软件工程师的生产力和软件质量。PSP作为SEI(Software Engineering ...
国外一个教授用psp做并行计算的书 Chapter 1: Introduction Chapter 2: Overview of the PSP Chapter 3: Quickies Chapter 4: Taking Apart Your PSP Chapter 5: Getting Online: Configuring Your PSP for ...
BFMLoaderV100_PSP_ 是一个专为PSP(PlayStation Portable)平台设计的软件加载器,由西方科学团队开发。这个加载器的主要功能是处理和加载BFM格式的文件,BFM全称可能是"Binary Format for Multimedia"或类似的...
PSP自制软件开发利器,JGE 1.0 第3部分(由于太大分卷压缩)
这个驱动程序处理了硬件层面上的数据传输,允许用户传输游戏、音乐、视频等文件到PSP,或者使用PSP作为存储设备。值得注意的是,系统默认支持的USB驱动可能是针对Type-C接口,但有些特定的应用,如PSPdisp,可能需要...