humanplayer.cpp

来自「Source code (C++) of the Amoebax game fo」· C++ 代码 · 共 174 行

CPP
174
字号
//// Cross-platform free Puyo-Puyo clone.// Copyright (C) 2006, 2007 Emma's Software//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.//#if defined (HAVE_CONFIG_H)#include <config.h>#endif // HAVE_CONFIG_H#include "gp2x.h"#include "HumanPlayer.h"using namespace Amoebax;////// \brief Default constructor.////// \param side The side the player is controlling.///HumanPlayer::HumanPlayer (IPlayer::PlayerSide side):    IPlayer (side),    m_Joystick (),    m_PlayerControls (){    loadOptions ();}voidHumanPlayer::joyMotion (uint8_t joystick, uint8_t axis, int16_t value){    switch (m_Joystick.motion (joystick, axis, value))    {        case Joystick::DownPressed:            getGrid ()->setMaxFallingSpeed ();            break;        case Joystick::DownReleased:            getGrid ()->setNormalFallingSpeed ();            break;        case Joystick::LeftPressed:            getGrid ()->moveLeft ();            break;        case Joystick::RightPressed:            getGrid ()->moveRight ();            break;        default:            // Do nothing.            break;    }}voidHumanPlayer::joyDown (uint8_t joystick, uint8_t button){#if defined (IS_GP2X_HOST) && !defined (__SYMBIAN32__)    switch (button)    {        case GP2X_BUTTON_A:        case GP2X_BUTTON_L:            getGrid ()->rotateCounterClockwise ();        break;        case GP2X_BUTTON_B:        case GP2X_BUTTON_R:            getGrid ()->rotateClockwise ();        break;        case GP2X_BUTTON_DOWN:            getGrid ()->setMaxFallingSpeed ();        break;        case GP2X_BUTTON_LEFT:        case GP2X_BUTTON_UPLEFT:            getGrid ()->moveLeft ();        break;        case GP2X_BUTTON_RIGHT:        case GP2X_BUTTON_UPRIGHT:            getGrid ()->moveRight ();        break;    }#else // !IS_GP2X_HOST    switch ( m_Joystick.down (joystick, button) )    {        case Joystick::RotateCWPressed:            getGrid ()->rotateClockwise ();            break;        case Joystick::RotateCCWPressed:            getGrid ()->rotateCounterClockwise ();            break;        default:            // Do nothing.            break;    }#endif // IS_GP2X_HOST}voidHumanPlayer::joyUp (uint8_t joystick, uint8_t button){#if defined (IS_GP2X_HOST) && !defined (__SYMBIAN32__)    if ( GP2X_BUTTON_DOWN == button )    {        getGrid ()->setNormalFallingSpeed ();    }#endif // IS_GP2X_HOST}#if !defined (IS_GP2X_HOST)|| defined (__SYMBIAN32__)voidHumanPlayer::keyDown (uint32_t key){    if ( Options::KeyboardControls == m_PlayerControls.controlsType )    {        if ( m_PlayerControls.keyboard.moveLeft == key )        {            getGrid ()->moveLeft ();        }        else if ( m_PlayerControls.keyboard.moveRight == key )        {            getGrid ()->moveRight ();        }        else if ( m_PlayerControls.keyboard.pushDown == key )        {            getGrid ()->setMaxFallingSpeed ();        }        else if ( m_PlayerControls.keyboard.rotateClockwise == key )        {            getGrid ()->rotateClockwise ();        }        else if ( m_PlayerControls.keyboard.rotateCounterClockwise == key )        {            getGrid ()->rotateCounterClockwise ();        }    }}voidHumanPlayer::keyUp (uint32_t key){    if ( Options::KeyboardControls == m_PlayerControls.controlsType &&         m_PlayerControls.keyboard.pushDown == key )    {        getGrid ()->setNormalFallingSpeed ();    }}#endif // !IS_GP2X_HOSTvoidHumanPlayer::loadOptions (void){    m_PlayerControls = Options::getInstance ().getPlayerControls (getSide ());    m_Joystick.setControls (m_PlayerControls);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?