-1

Xbox 360 を自分のプロジェクトにコーディングするための例やチュートリアルを探しています。これまでのところ、矢印キーと WASD キーを使用してスプライトを移動するために SDL_keysym のみを使用してきました。Xbox 360(できれば)またはジョイスティックのサポートをどのように統合するのか疑問に思っています.

以下は、矢印と WASD キーを使用してスプライト Spaceship1 を移動するために現在持っているコードです。コードが乱雑であることをお許しください。

struct oSprite 
{
int m_nTotalFrames;
int m_nCurrentFrame;
int m_nFrameWidth;
int m_nFrameHeight;

fVector2 m_vPosition;

SDL_Surface* m_pImage;

bool        m_bIsHuman;
oControls   m_oControls;
oControls   m_oAltControls;
};

bool Update()
{
fVector2 vKeyPresses;

Uint8* paunKeyStates = SDL_GetKeyState(NULL);
float fMoveSpeed = 0.5f;

if(paunKeyStates[g_Spaceship1.m_oControls.m_nUpButton] || paunKeyStates[g_Spaceship1.m_oAltControls.m_nUpButton])
{
    vKeyPresses.y -= fMoveSpeed;
}

if(paunKeyStates[g_Spaceship1.m_oControls.m_nDownButton] || paunKeyStates[g_Spaceship1.m_oAltControls.m_nDownButton])
{
    vKeyPresses.y += fMoveSpeed;
}

if(paunKeyStates[g_Spaceship1.m_oControls.m_nLeftButton] || paunKeyStates[g_Spaceship1.m_oAltControls.m_nLeftButton])
{
    vKeyPresses.x -= fMoveSpeed;
}

if(paunKeyStates[g_Spaceship1.m_oControls.m_nRightButton] || paunKeyStates[g_Spaceship1.m_oAltControls.m_nRightButton])
{
    vKeyPresses.x += fMoveSpeed;
}
} 
4

1 に答える 1

0

SDL の開始時にこれを試してください

SDL_Init( SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) 
于 2013-07-15T07:11:41.433 に答える