Mercurial > hg > Members > e075743
view src/Player.h @ 10:5727d511a13a
add src in Martial Project Xcode.
author | tokumoritaichirou@nw0743.st.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 03 Feb 2010 03:39:04 +0900 |
parents | |
children |
line wrap: on
line source
/* * Player.h * Martial * * Created by ryoma on 10/01/27. * Copyright 2010 琉球大学. All rights reserved. * */ #ifndef _PLAYER_H_ #define _PLAYER_H_ #include <SDL/SDL.h> #include "Avatar.h" #include "EyePoint.h" #include "KeyboardEventHandler.h" /*! @class Player @abstract ゲームのキャラクター(Avatar),視点(EyePoint)を操作するPlayer Keyboardからのコールバック関数をhandlerに登録する */ class Player { private: Avatar* avatar; EyePoint* eyePoint; SDL_Joystick* joy; char* name; Uint8 prev; bool hatFlag[4]; void (Player::*frameFunc)(); public: enum functionIndex { PUSH_UP, PUSH_RIGHT, PUSH_LEFT, PUSH_DOWN, RELEASE_UP, RELEASE_RIGHT, RELEASE_LEFT, RELEASE_DOWN, PUSH_A, PUSH_B, PUSH_C, PUSH_D, RELEASE_A, RELEASE_B, RELEASE_C, RELEASE_D }; Player(char* name, Avatar* avatar, EyePoint* eyePoint) : name(name), avatar(avatar), eyePoint(eyePoint), frameFunc(&Player::frameKEY) {}; /*! @function pushLeft(), releaseLeft(), pushRight(), releaseRight(), pushUp(), releaseUp(), pushDown(), releaseDown(), pushA(), releaseA(), pushB(), releaseB(), pushC(), releaseC(), pushD(), releaseD(), push1(), release2(), @abstract KeyboardEventHanderでHandle設定できるControllableクラスの関数群(インターフェース) @discussion Javaでいう interface (でも、純粋仮想関数ではない。デフォルトではなにもしないように) */ void initHat(); void releaseHat(); void releaseButton(); void pushRightUp(); void pushRightDown(); void pushLeftUp(); void pushLeftDown(); void pushLeft(); void releaseLeft(); void pushRight(); void releaseRight(); void pushUp(); void releaseUp(); void pushDown(); void releaseDown(); void pushA(); void releaseA(); void pushB(); void releaseB(); void pushC(); void releaseC(); void pushD(); void releaseD(); void push1(); void push2(); /*! @function getKEH() @param Martialのコールバックを登録したHandler @abstract Playerの入力コールバックを登録 @discussion 複数プレイヤーで入力が衝突しないようにするには? ? 別々のAsciiを割り当てる(PlayerにIDを振る) ? → いや、そもそもKeybaordじゃ厳しいよね。 → COM Playerはどうしよう? */ void registerKEH(KeyboardEventHandler* keh); void registerJOY(SDL_Joystick* joy); void frame(); void frameJOY(); void frameKEY(); }; #endif