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

PSP程序开发例子解析(十二)InputSystem

UP 
阅读更多
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的历史发展脉络、硬件架构细节,还包括软件开发环境及调试方法等多个方面。对于初学者来说,了解这些基础知识将有助于更好地掌握PSP开发技能,为未来的项目开发打下坚实的...

    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是一种轻量级的脚本语言,因其简洁的语法和强大的...

    psp 中文输入程序 源代码

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

    psp5.50直接升级6.60程序

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

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

    PSP SDK(Software Development Kit)则是为开发PSP游戏和应用程序提供的核心工具集,它包含了编译器、库文件、头文件、文档、示例代码以及调试工具等,使得开发者能够创建自己的PSP软件。 **PSP SDK中的关键组成...

    程序段前缀介绍与返回DOS

    ### 汇编语言返回DOS系统方法:程序段前缀(PSP)与返回机制 #### 一、程序段前缀(PSP)介绍 在早期的个人计算机操作系统中,特别是MS-DOS环境下,程序段前缀(Program Segment Prefix, PSP)扮演着极其重要的角色。PSP...

    psp development with eclipse

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

    Develop for the PSP,看看国外同国内对PSP的距离,是一本学习PSP编程的书。

    PSP刷机.rar psp2000和psp3000都亲自试验过,没问题,

    1. **PSP系统架构**:PSP使用基于ARM架构的处理器,结合定制的显示芯片和内存,其操作系统是基于Sony的PSP System Software。 2. **固件版本**:PSP有不同的固件版本,每个版本可能有新的功能和修复的漏洞。刷机...

    psp 6.60升级程序

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

    软件开发过程psp课件

    《软件开发过程PSP:构建高效能的个人开发体系》 在软件开发领域,PSP(Personal Software Process,个人软件过程)是一种系统化的方法,旨在提高软件工程师的生产力和软件质量。PSP作为SEI(Software Engineering ...

    Hacking the PSP

    国外一个教授用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_

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

    PSP自制软件开发利器,JGE 1.0 第3部分(由于太大分卷压缩)

    PSP自制软件开发利器,JGE 1.0 第3部分(由于太大分卷压缩)

    PSP USB驱动 Type B

    这个驱动程序处理了硬件层面上的数据传输,允许用户传输游戏、音乐、视频等文件到PSP,或者使用PSP作为存储设备。值得注意的是,系统默认支持的USB驱动可能是针对Type-C接口,但有些特定的应用,如PSPdisp,可能需要...

Global site tag (gtag.js) - Google Analytics