當前位置:編程學習大全網 - 編程語言 - PSP 的軟件開發用什麽語言

PSP 的軟件開發用什麽語言

遊戲壹般都是 C++開發的

不過遊戲 主機 開發壹般都是需要相關套件

而且周期較長 壹個人很難做得來

PSP程序開發例子解析(二)Images2008-07-03 20:46第二個例子程序演示了如何在屏幕上繪制圖片 附上源碼 變化不大 很簡單的幾句代碼搞定了

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, JPG or GIF)

mBgTex = renderer->LoadTexture("bg.jpg");//初始化加載背景圖片 可以PNG JPG GIF的 開發的API封裝的很好 都提供的了高層的API 沒有暴露什麽底層的東西= =! 看來之前我對圖片處理的考慮有點多慮了 能運行上100M的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屏幕的尺寸為480*272

mBg = new JQuad(mBgTex, 0, 0, 480, 272); // 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, 67, 88);//同樣對男孩的區域定義範圍

mBoy->SetHotSpot(33.5f, 44.0f); // Set the pivot point to the middle.定義了這個圖片的核心坐標 這裏定義為中心 在旋轉的時候圍繞中心旋轉 恩

mGirl = new JQuad(mSpriteTex, 68, 0, 68, 90);//女孩的圖片從68開始越過了男孩的圖片

mGirl->SetHotSpot(34.0f, 45.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[80];

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, 33.5, 44, 0.0f, 1.0f, 1.0f); // Scale down the characters a little bit when rendering.

renderer->RenderQuad(mGirl, 320, 235, 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()

  • 上一篇:男初中畢業上啥技校好?
  • 下一篇:C語言編程題,急求,(要求用C語言編寫)(題目二選壹)
  • copyright 2024編程學習大全網