とりあえず前のHelloWorldの文字をキーボードの十字キーで移動させるようなプログラムに直してみました
Peripheral::IKeyboardを生成して、GetKeyData関数でキー情報を取るだけでした
main.cpp("*"がついているのが追加・修正したところです)
#include <Selene.h>
///////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
using namespace Selene;
//
ICore* pCore=NULL;
IGraphicCard* pGraphicCard=NULL;
Renderer::IRender* pRender=NULL;
Peripheral::IKeyboard* pKeyboard=NULL; // *
// *HelloWorldの位置*
Math
::Point2DI Pos(0,0); // * // システムの初期化
// コアの生成
// 初期化
if(!pCore
->Initialize("Hello World",FRAME_RATE_60
)){goto
EXIT;} // タイトルバーに情報を表示
pCore->EnableDrawTitleInformation(true);
// グラフィックカードを取得
pGraphicCard=pCore->CreateGraphicCard(GRAPHIC_CARD_DEFAULT_NO);
if(pGraphicCard
==NULL){goto
EXIT;} // ウィンドウ作成(640x480,WindowMode)
pCore->Start(640,480,true);
// レンダラーを取得
pRender=pGraphicCard->CreateRender();
if(pGraphicCard
==NULL){goto
EXIT;} // *キーボードを取得*
pKeyboard=pCore->GetKeyboard(); // *
if(pKeyboard
==NULL){goto
EXIT;} // * // メインループ
while(pCore->Run())
{
// *Update処理*
if(pKeyboard
->GetKeyData(SELENE_VK_LEFT
)==TRUE){Pos.x
--;} // * if(pKeyboard
->GetKeyData(SELENE_VK_RIGHT
)==TRUE){Pos.x
++;} // * if(pKeyboard
->GetKeyData(SELENE_VK_UP
)==TRUE){Pos.y
--;} // * if(pKeyboard
->GetKeyData(SELENE_VK_DOWN
)==TRUE){Pos.y
++;} // * // 裏画面のクリア(white)
pRender->Clear(CColor(255,255,255));
// 画面への描画を開始
pRender->Begin();
// *文字列(HelloWorld)を描画(black)*
pRender
->DrawText(Pos,CColor
(0,0,0),"Hello World"); // * // 画面への描画を完了
}
// 開放
SAFE_RELEASE(pKeyboard); // *
SAFE_RELEASE(pRender);
SAFE_RELEASE(pGraphicCard);
SAFE_RELEASE(pCore);
// システムの解放
// 終了
return 0;
}
とりあえずこれで動きます
virtual Selene::Peripheral::IKeyboard* Selene::ICore::GetKeyboard(void)
キーボードインターフェイスを取得(取得後ちゃんとReleaseすること)
virtual Bool Selene::Peripheral::IKeyboard::GetKeyData(eVirtualKeyCode Key)
キーが押されているかチェックする
| eVirtualKeyCode Key |
押されているか調べるキーの仮想キーコード |
| 返り値 |
キーが押されているか(押されている:TRUE/いない:FALSE) |
最終更新:2009年06月08日 22:32