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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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