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