欢迎来到皮皮网官网

【oracle网站源码】【抽奖flash源码】【qq相册源码】plp源码

时间:2024-11-15 01:42:09 来源:青橙源码

1.PSP 的软件开发用什么语言

plp源码

PSP 的软件开发用什么语言

       æ¸¸æˆä¸€èˆ¬éƒ½æ˜¯ C++开发的

       ä¸è¿‡æ¸¸æˆ 主机 开发一般都是需要相关套件

       è€Œä¸”周期较长 一个人很难做得来

       PSP程序开发例子解析(二)Images-- :第二个例子程序演示了如何在屏幕上绘制图片 附上源码 变化不大 很简单的几句代码搞定了

       1.头文件GameApp.h

       #ifndef _GAMEAPP_H_

       #define _GAMEAPP_H_

       #include <JApp.h>

       class JQuad;//JQuad定义了图片上的显示范围 比如很多的小图片存为了一个大图片 在大图片上指定显示的坐标

       class JSprite;//动画 似乎没用到

       class JTexture;//把一个图片读成了一个JTexture = =!里面不晓得有什么内容 没有doc可看

       class GameApp: public JApp

       {

       private:

       JTexture* mBgTex;//整个背景的图片

       JTexture* mSpriteTex;//2个人物的图片

       JQuad* mBg;//定义了整个背景的大小

       JQuad* mBoy;//男孩在人物图片上的大小

       JQuad* mGirl;//女孩在人物图片上的大小

       public:

       GameApp();

       virtual ~GameApp();

       virtual void Create();

       virtual void Destroy();

       virtual void Update();

       virtual void Render();

       virtual void Pause();

       virtual void Resume();

       };

       #endif

       2.源码文件GameApp.cpp

       #include <stdio.h>

       #include <JGE.h>

       #include <JRenderer.h>

       #include <JLBFont.h>

       #include <JSprite.h>

       #include <JFileSystem.h>

       #include "GameApp.h"

       GameApp::GameApp()

       {

       mBgTex = NULL;

       mBg = NULL;

       mSpriteTex = NULL;

       mBoy = NULL;

       mGirl = NULL;//都给它设成NULL干啥 没有意义啊

       GameApp::~GameApp()

       {

       }

       //程序启动

       void GameApp::Create()

       {

       JRenderer* renderer = JRenderer::GetInstance();

       // Load background texture (texture format can be PNG,oracle网站源码 JPG or GIF)

       mBgTex = renderer->LoadTexture("bg.jpg");//初始化加载背景图片 可以PNG JPG GIF的 开发的API封装的很好 都提供的了高层的API 没有暴露什么底层的东西= =! 看来之前我对图片处理的考虑有点多虑了 能运行上M的3D游戏 应该不会太在乎内存消耗 不泄露就行

       // Load texture for the characters (use TEX_TYPE_USE_VRAM to load texture into VRAM on PSP and this can speed up the rendering)

       mSpriteTex = renderer->LoadTexture("planet.png", TEX_TYPE_USE_VRAM);//用这个参数来加速

       //JQuad定义了一个范围 在没BgTex上 从左上角到右下角 看代码知道了PSP屏幕的尺寸为

*

       mBg = new JQuad(mBgTex, 0, 0, , ); // Create background quad for rendering.

       // Now let's create the image quads for the characters. The two characters are stored in one texture

       // so we have to know the location and size of each one to make the quads.

       mBoy = new JQuad(mSpriteTex, 0, 0, , );//同样对男孩的区域定义范围

       mBoy->SetHotSpot(.5f, .0f); // Set the pivot point to the middle.定义了这个图片的核心坐标 这里定义为中心 在旋转的时候围绕中心旋转 恩

       mGirl = new JQuad(mSpriteTex, , 0, , );//女孩的图片从开始越过了男孩的图片

       mGirl->SetHotSpot(.0f, .0f);//同样设置中心为HotSpot

       }

       void GameApp::Destroy()

       {

       SAFE_DELETE(mBgTex);//调用了一个宏 在JTypes.h里面:#define SAFE_DELETE(x) if (x) { delete x; x = NULL; } 另有文章说释放JTexture需要用什么engine.什么 应该效果是一样的mEngine->FreeMusic(mMusic);

       SAFE_DELETE(mBg);

       SAFE_DELETE(mSpriteTex);

       SAFE_DELETE(mBoy);

       SAFE_DELETE(mGirl);

       }

       //Update方法没有变化

       void GameApp::Update()

       {

       JGE* engine = JGE::GetInstance();

       if (engine->GetButtonClick(PSP_CTRL_TRIANGLE)) // Do a screen shot when the TRIANGLE button is pressed

       {

        char s[];

        sprintf(s, "ms0:/screenshot.png");

        JRenderer::GetInstance()->ScreenShot(s);

       }

       if (engine->GetButtonClick(PSP_CTRL_CROSS)) // Exit when the CROSS button is pressed

       {

        engine->End();

        return;

       }

       }

       void GameApp::Render()

       {

       JRenderer* renderer = JRenderer::GetInstance();

       renderer->RenderQuad(mBg, 0, 0);//具体画屏幕了 绘制整个背景 画mBg的范围JQuad

       renderer->RenderQuad(mBoy, .5, , 0.0f, 1.0f, 1.0f); // Scale down the characters a little bit when rendering.

       renderer->RenderQuad(mGirl, , , 0.0f, 0.7f, 0.7f);//参数分别为x点 y点 左上角开始计算 0.0f为旋转角度 没弄明白这个单位是什么 0.7f 和0.7f是x轴和y轴的缩放比例1是按照原大小0.7f是缩小了

       Sleep(1);//自己加的 纯粹是为了减少CPU占用 否则一运行CPU就满了 似乎这个函数在PSP中不支持

       }

       void GameApp::Pause()

       {

       }

       void GameApp::Resume()

copyright © 2016 powered by 皮皮网   sitemap