comparison 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
comparison
equal deleted inserted replaced
9:143f7b9f867d 10:5727d511a13a
1 /*
2 * Player.h
3 * Martial
4 *
5 * Created by ryoma on 10/01/27.
6 * Copyright 2010 琉球大学. All rights reserved.
7 *
8 */
9
10 #ifndef _PLAYER_H_
11 #define _PLAYER_H_
12
13 #include <SDL/SDL.h>
14 #include "Avatar.h"
15 #include "EyePoint.h"
16 #include "KeyboardEventHandler.h"
17
18 /*!
19 @class Player
20 @abstract ゲームのキャラクター(Avatar),視点(EyePoint)を操作するPlayer
21 Keyboardからのコールバック関数をhandlerに登録する
22 */
23
24 class Player {
25 private:
26 Avatar* avatar;
27 EyePoint* eyePoint;
28 SDL_Joystick* joy;
29 char* name;
30 Uint8 prev;
31 bool hatFlag[4];
32 void (Player::*frameFunc)();
33 public:
34 enum functionIndex {
35 PUSH_UP, PUSH_RIGHT, PUSH_LEFT, PUSH_DOWN,
36 RELEASE_UP, RELEASE_RIGHT, RELEASE_LEFT, RELEASE_DOWN,
37 PUSH_A, PUSH_B, PUSH_C, PUSH_D,
38 RELEASE_A, RELEASE_B, RELEASE_C, RELEASE_D
39 };
40 Player(char* name, Avatar* avatar, EyePoint* eyePoint) :
41 name(name), avatar(avatar), eyePoint(eyePoint), frameFunc(&Player::frameKEY) {};
42 /*!
43 @function pushLeft(), releaseLeft(), pushRight(), releaseRight(), pushUp(), releaseUp(),
44 pushDown(), releaseDown(), pushA(), releaseA(), pushB(), releaseB(),
45 pushC(), releaseC(), pushD(), releaseD(), push1(), release2(),
46 @abstract KeyboardEventHanderでHandle設定できるControllableクラスの関数群(インターフェース)
47 @discussion Javaでいう interface (でも、純粋仮想関数ではない。デフォルトではなにもしないように)
48 */
49 void initHat();
50 void releaseHat();
51 void releaseButton();
52 void pushRightUp();
53 void pushRightDown();
54 void pushLeftUp();
55 void pushLeftDown();
56 void pushLeft();
57 void releaseLeft();
58 void pushRight();
59 void releaseRight();
60 void pushUp();
61 void releaseUp();
62 void pushDown();
63 void releaseDown();
64 void pushA();
65 void releaseA();
66 void pushB();
67 void releaseB();
68 void pushC();
69 void releaseC();
70 void pushD();
71 void releaseD();
72 void push1();
73 void push2();
74
75 /*!
76 @function getKEH()
77 @param Martialのコールバックを登録したHandler
78 @abstract Playerの入力コールバックを登録
79 @discussion 複数プレイヤーで入力が衝突しないようにするには?
80 ? 別々のAsciiを割り当てる(PlayerにIDを振る) ?
81 → いや、そもそもKeybaordじゃ厳しいよね。
82 → COM Playerはどうしよう?
83 */
84 void registerKEH(KeyboardEventHandler* keh);
85 void registerJOY(SDL_Joystick* joy);
86 void frame();
87 void frameJOY();
88 void frameKEY();
89 };
90
91 #endif