Mercurial > hg > Members > e075743
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 |