• R/O
  • SSH
  • HTTPS

nlgp1: Commit


Commit MetaInfo

Revision847 (tree)
Zeit2011-03-23 16:34:42
Autorbiikame

Log Message

Nlgp1.Charactersを修正

Ändern Zusammenfassung

Diff

--- trunk/Nlgp1/Nlgp1/Characters/SpriteFactory.cs (revision 846)
+++ trunk/Nlgp1/Nlgp1/Characters/SpriteFactory.cs (nonexistent)
@@ -1,151 +0,0 @@
1-using System;
2-using Box2DX.Collision;
3-using Nlgp1.Attacks;
4-using Nlgp1.Attacks.Guns;
5-using Nlgp1.Common;
6-using Nlgp1.Common.Parameters;
7-using Nlgp1.Parameters;
8-using Nlgp1.Players;
9-using Nlgp1.Sprites;
10-using Nlgp1.Utilities;
11-
12-namespace Nlgp1.Characters {
13- public static class SpriteFactory {
14- private static Sprite create( int typeID , Vector position , VectorI characterSize ){
15- var sprite = new Character( typeID , SpriteType.Monster , characterSize , position ).Sprite;
16- return sprite;
17- }
18- /// <summary>
19- /// キャラクタを生成してマップ上に配置します。
20- /// </summary>
21- /// <param name="typeId">生成するスプライトを表すID</param>
22- /// <param name="position">初期位置</param>
23- /// <param name="characterSize">スプライトのサイズ</param>
24- /// <returns>生成されたキャラクタオブジェクト</returns>
25- public static Sprite CreateSprite( int typeID , Vector position , VectorI characterSize ) {
26- var sprite = create( typeID , position , characterSize );
27- switch( typeID ) {
28- case 2:
29- break;
30- case 4:
31- #region ゆっくりと左に歩いてくる
32- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
33- e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( -0.01f , 0 ) );
34- } );
35- #endregion
36- break;
37- case 5:
38- #region ゆっくりと右に歩いてくる
39- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
40- e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( +0.01f , 0 ) );
41- } );
42- #endregion
43- break;
44- case 6:
45- #region ジャンプしながら左に向かってくる
46-
47- sprite.JumpPower = 4;
48- sprite.UpGravity = 0.05f;
49- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
50- e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( -0.01f , 0 ) );
51- e.SpriteOwner.Sprite.StartJump();
52- } );
53- #endregion
54- break;
55- case 7:
56- #region ジャンプしながら右に向かってくる
57- sprite.JumpPower = 4;
58- sprite.UpGravity = 0.05f;
59- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
60- e.SpriteOwner.Sprite.StartJump();
61- } );
62- #endregion
63- break;
64- case 8:
65- #region 壁にぶつかったら方向転換して左右に移動する
66- // newSprite = new Character( typeID , SpriteAttributes.Monster , new Size( 256 , 32 ) );
67- // newSprite.GetRectangle.CellX = cellX; // キャラクタの X 軸のセル座標を指定します。
68- // newSprite.GetRectangle.CellY = cellY; // キャラクタの Y 軸のセル座標を指定します。
69- // newSprite.GetRectangle.PrevReset();
70- // newSprite.LogicParameter.InitX = cellX * MapData.CellSize;
71- // newSprite.LogicParameter.InitY = cellY * MapData.CellSize;
72- sprite.Body.ApplyForce( new Vector( 1 , 0 ) );
73- sprite.Shape.Stepped += ( sender , e ) => {
74- };
75- #endregion
76- break;
77- case 9:
78- #region 床から落下しないように左右に移動する。
79- sprite.Shape.Stepped += ( sender , e ) => {
80- };
81- #endregion
82- break;
83- case 10:
84- #region 上下に浮遊する
85- // newSprite.CanDefaultAction = false;
86- sprite.LogicParameter.Radius = 50;   // 半径
87- sprite.LogicParameter.Angle = 90; // 角度
88- sprite.LogicParameter.Speed = 1; // 速度
89- sprite.LogicParameter.LimitDistance = 100;// 移動距離
90- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
91- } );
92- #endregion
93- break;
94- case 11:
95- #region 時計回り
96- sprite.CanActDefault = false; // 既定の重力計算などを無効にする。
97- sprite.LogicParameter.Radius = 100; // 半径
98- sprite.LogicParameter.Speed = 8; // 回転速度
99- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
100- } );
101- #endregion
102- break;
103- case 12:
104- #region 反時計回り
105- sprite.IsBlock = false;
106- sprite.LogicParameter.Speed = 2;
107- sprite.LogicParameter.Radius = 100;
108- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
109- // Sprite.HitStop( PlayerStatus.Player , e.Target );
110- } );
111- #endregion
112- break;
113- case 13:
114- #region 空中を回転しながら浮遊する
115- sprite.LogicParameter.LimitDistance = 150; // 移動距離
116- sprite.LogicParameter.Speed = 2; // 上下に移動するときの速度
117- sprite.LogicParameter.Angle = 90; // 移動する方向。90度 = 上下方向。45度 = 斜めなど。
118- sprite.CanActDefault = false;
119- sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
120- sprite.LogicParameter.Angle++;
121- } );
122- #endregion
123- break;
124- case 14:
125- #region 10秒アイテム
126- sprite.Shape.Stepped += ( sender ,e ) => {
127- foreach( ISpriteShapeContact contact in e.Shape.Contacts ) {
128- //if( ( ( IPolygonSpriteContact )( contact.Other ) ).Shape == PlayerStatus.Player.Sprite.Shape ) {
129- // PlayerStatus.TimerInitialize();
130- //}
131- }
132- };
133- #endregion
134- break;
135- case 15:
136- #region 乗ると強制的に右に移動する
137- #endregion
138- break;
139- case 16:
140- #region 乗ると強制的に左に移動する
141- #endregion
142- break;
143- case 17:
144-
145- default:
146- break;
147- }
148- return sprite;
149- }
150- }
151-}
--- trunk/Nlgp1/Nlgp1/Characters/CharacterFactory.cs (nonexistent)
+++ trunk/Nlgp1/Nlgp1/Characters/CharacterFactory.cs (revision 847)
@@ -0,0 +1,151 @@
1+using System;
2+using Box2DX.Collision;
3+using Nlgp1.Attacks;
4+using Nlgp1.Attacks.Guns;
5+using Nlgp1.Common;
6+using Nlgp1.Common.Parameters;
7+using Nlgp1.Parameters;
8+using Nlgp1.Players;
9+using Nlgp1.Sprites;
10+using Nlgp1.Utilities;
11+
12+namespace Nlgp1.Characters {
13+ public static class CharacterFactory {
14+ private static Sprite create( int typeID , Vector position , VectorI characterSize ){
15+ var sprite = new Character( typeID , SpriteType.Monster , characterSize , position ).Sprite;
16+ return sprite;
17+ }
18+ /// <summary>
19+ /// キャラクタを生成してマップ上に配置します。
20+ /// </summary>
21+ /// <param name="typeId">生成するスプライトを表すID</param>
22+ /// <param name="position">初期位置</param>
23+ /// <param name="characterSize">スプライトのサイズ</param>
24+ /// <returns>生成されたキャラクタオブジェクト</returns>
25+ public static Sprite CreateSprite( int typeID , Vector position , VectorI characterSize ) {
26+ var sprite = create( typeID , position , characterSize );
27+ switch( typeID ) {
28+ case 2:
29+ break;
30+ case 4:
31+ #region ゆっくりと左に歩いてくる
32+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
33+ e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( -0.01f , 0 ) );
34+ } );
35+ #endregion
36+ break;
37+ case 5:
38+ #region ゆっくりと右に歩いてくる
39+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
40+ e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( +0.01f , 0 ) );
41+ } );
42+ #endregion
43+ break;
44+ case 6:
45+ #region ジャンプしながら左に向かってくる
46+
47+ sprite.JumpPower = 4;
48+ sprite.UpGravity = 0.05f;
49+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
50+ e.SpriteOwner.Sprite.Body.ApplyForce( new Vector( -0.01f , 0 ) );
51+ e.SpriteOwner.Sprite.StartJump();
52+ } );
53+ #endregion
54+ break;
55+ case 7:
56+ #region ジャンプしながら右に向かってくる
57+ sprite.JumpPower = 4;
58+ sprite.UpGravity = 0.05f;
59+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
60+ e.SpriteOwner.Sprite.StartJump();
61+ } );
62+ #endregion
63+ break;
64+ case 8:
65+ #region 壁にぶつかったら方向転換して左右に移動する
66+ // newSprite = new Character( typeID , SpriteAttributes.Monster , new Size( 256 , 32 ) );
67+ // newSprite.GetRectangle.CellX = cellX; // キャラクタの X 軸のセル座標を指定します。
68+ // newSprite.GetRectangle.CellY = cellY; // キャラクタの Y 軸のセル座標を指定します。
69+ // newSprite.GetRectangle.PrevReset();
70+ // newSprite.LogicParameter.InitX = cellX * MapData.CellSize;
71+ // newSprite.LogicParameter.InitY = cellY * MapData.CellSize;
72+ sprite.Body.ApplyForce( new Vector( 1 , 0 ) );
73+ sprite.Shape.Stepped += ( sender , e ) => {
74+ };
75+ #endregion
76+ break;
77+ case 9:
78+ #region 床から落下しないように左右に移動する。
79+ sprite.Shape.Stepped += ( sender , e ) => {
80+ };
81+ #endregion
82+ break;
83+ case 10:
84+ #region 上下に浮遊する
85+ // newSprite.CanDefaultAction = false;
86+ sprite.LogicParameter.Radius = 50;   // 半径
87+ sprite.LogicParameter.Angle = 90; // 角度
88+ sprite.LogicParameter.Speed = 1; // 速度
89+ sprite.LogicParameter.LimitDistance = 100;// 移動距離
90+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
91+ } );
92+ #endregion
93+ break;
94+ case 11:
95+ #region 時計回り
96+ sprite.CanActDefault = false; // 既定の重力計算などを無効にする。
97+ sprite.LogicParameter.Radius = 100; // 半径
98+ sprite.LogicParameter.Speed = 8; // 回転速度
99+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
100+ } );
101+ #endregion
102+ break;
103+ case 12:
104+ #region 反時計回り
105+ sprite.IsBlock = false;
106+ sprite.LogicParameter.Speed = 2;
107+ sprite.LogicParameter.Radius = 100;
108+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
109+ // Sprite.HitStop( PlayerStatus.Player , e.Target );
110+ } );
111+ #endregion
112+ break;
113+ case 13:
114+ #region 空中を回転しながら浮遊する
115+ sprite.LogicParameter.LimitDistance = 150; // 移動距離
116+ sprite.LogicParameter.Speed = 2; // 上下に移動するときの速度
117+ sprite.LogicParameter.Angle = 90; // 移動する方向。90度 = 上下方向。45度 = 斜めなど。
118+ sprite.CanActDefault = false;
119+ sprite.Stepped += new EventHandler<SpriteSteppedEventArgs>( ( sender , e ) => {
120+ sprite.LogicParameter.Angle++;
121+ } );
122+ #endregion
123+ break;
124+ case 14:
125+ #region 10秒アイテム
126+ sprite.Shape.Stepped += ( sender ,e ) => {
127+ foreach( ISpriteShapeContact contact in e.Shape.Contacts ) {
128+ //if( ( ( IPolygonSpriteContact )( contact.Other ) ).Shape == PlayerStatus.Player.Sprite.Shape ) {
129+ // PlayerStatus.TimerInitialize();
130+ //}
131+ }
132+ };
133+ #endregion
134+ break;
135+ case 15:
136+ #region 乗ると強制的に右に移動する
137+ #endregion
138+ break;
139+ case 16:
140+ #region 乗ると強制的に左に移動する
141+ #endregion
142+ break;
143+ case 17:
144+
145+ default:
146+ break;
147+ }
148+ return sprite;
149+ }
150+ }
151+}
--- trunk/Nlgp1/Nlgp1/Stages/Stage.cs (revision 846)
+++ trunk/Nlgp1/Nlgp1/Stages/Stage.cs (revision 847)
@@ -110,7 +110,7 @@
110110 this.sprite = PlayerStatus.LoadPlayer( this.Position ); // プレーヤー
111111 }
112112 else {
113- this.sprite = SpriteFactory.CreateSprite( this.Cell.TypeID , this.Position , MapData.DefaultChipSize ); // キャラクタ
113+ this.sprite = CharacterFactory.CreateSprite( this.Cell.TypeID , this.Position , MapData.DefaultChipSize ); // キャラクタ
114114 }
115115 this.sprite.Stepped += ( sender , e ) => {
116116 this.sprite.Body.ApplyForce( new Vector( 0 , this.sprite.DownGravity ) );
Show on old repository browser