GameApp.cpp
#include <stdio.h>
#include <JGE.h>
#include <JRenderer.h>
#include <JResourceManager.h>
#include <JAnimator.h>
#include "GameApp.h"
GameApp::GameApp()
{
mResourceMgr = NULL;
mLeft = NULL;
mRight = NULL;
mCurr = NULL;
}
GameApp::~GameApp()
{
}
void GameApp::Create()
{
// JAnimator needs to get its resource from a JResourceManager
mResourceMgr = new JResourceManager();
mResourceMgr->LoadResource("animation.res");//加载背景和动画图片
// create the first animator
mLeft = new JAnimator(mResourceMgr);
mLeft->Load("left.anm");//加载左面的动画文件 文件内容需要再研究?
// create the second animator
mRight = new JAnimator(mResourceMgr);
mRight->Load("right.anm");//加载右面的动画文件 文件内容需要再研究?
mLeft->SetHotSpot(79,126);//??
mLeft->SetPosition(330,220);//左侧动画位置
mRight->SetHotSpot(79,126);
mRight->SetPosition(240,220);
// start the animation
mCurr = mLeft;//Left
mCurr->Start();//动画开始
}
void GameApp::Destroy()
{
if (mRight)
delete mRight;
if (mLeft)
delete mLeft;
if (mResourceMgr)
delete mResourceMgr;
}
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;
}
float dt = engine->GetDelta();
mCurr->Update(dt);//更新当前的动画 FrameTime默认为100.0f 毫秒 通过enm文件加载的动画信息没有这个选项= =!
// change to the other animation when the current one is done
if (!mCurr->IsAnimating())//动画结束调用另一个
{
if (mCurr == mLeft)
mCurr = mRight;
else
mCurr = mLeft;
mCurr->Start();
}
}
void GameApp::Render()
{
JRenderer* renderer = JRenderer::GetInstance();
// turn off bilinear filtering to have sharp image
renderer->EnableTextureFilter(false);//关闭双线形光栅?
// render background
renderer->RenderQuad(mResourceMgr->GetQuad("bg"), 480>>1, 272>>1);
// render animation
mCurr->Render();
}
void GameApp::Pause()
{
}
void GameApp::Resume()
{
}