- Timestamp:
- 2016-06-08 09:01:44 (7 years ago)
- Location:
- 2016/23/ohjaajat/Punasininen/Punasininen
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/23/ohjaajat/Punasininen/Punasininen/Punasininen/Player.cs
r7189 r7203 9 9 public class Player : PlatformCharacter2 10 10 { 11 12 Weapon Secondary; 13 11 14 public Player(double leveys, double korkeus, Image pic, Color color) 12 15 : base(leveys, korkeus) -
2016/23/ohjaajat/Punasininen/Punasininen/Punasininen/Punasininen.cs
r7199 r7203 15 15 private Player blue; 16 16 private Player red; 17 18 17 private Image bluepic; 19 18 private Image redpic; 19 20 private Image pistolpic; 21 20 22 DoubleMeter percentageTracker; 21 23 … … 38 40 ColorTileMap map = ColorTileMap.FromLevelAsset("dungeon1"); 39 41 map.SetTileMethod(Color.Black, LisaaTaso); 40 map.SetTileMethod(Color.FromHexCode("#FF0026FF"), delegate(Vector paikka, double leveys, double korkeus) { blue = CreatePlayer(paikka, leveys, korkeus, bluepic, Color.Blue , new Vector(-Screen.Width / 2 + 50, Screen.Height / 2 - 50));});42 map.SetTileMethod(Color.FromHexCode("#FF0026FF"), delegate(Vector paikka, double leveys, double korkeus) { blue = CreatePlayer(paikka, leveys, korkeus, bluepic, Color.Blue);}); 41 43 map.SetTileMethod(Color.FromHexCode("FFD800"), CreateWeaponCrate); 42 map.SetTileMethod(Color.Red, delegate(Vector paikka, double leveys, double korkeus) { red = CreatePlayer(paikka, leveys, korkeus, redpic, Color.Red , new Vector(Screen.Width / 2 - 50, Screen.Height / 2 - 50)); });44 map.SetTileMethod(Color.Red, delegate(Vector paikka, double leveys, double korkeus) { red = CreatePlayer(paikka, leveys, korkeus, redpic, Color.Red); }); 43 45 map.Execute(TILE_SIZE, TILE_SIZE); 44 46 … … 57 59 void CreateWeaponCrate(Vector place, double width, double height) 58 60 { 59 PhysicsObject crate = PhysicsObject.CreateStaticObject(width, height);61 WeaponCrate crate = new WeaponCrate(width, height); 60 62 crate.Position = place; 63 crate.Color = Color.DarkGray; 61 64 Add(crate); 62 65 } … … 71 74 } 72 75 73 Player CreatePlayer(Vector paikka, double leveys, double korkeus, Image playerspic, Color playersColor , Vector trackerPosition)76 Player CreatePlayer(Vector paikka, double leveys, double korkeus, Image playerspic, Color playersColor) 74 77 { 75 78 Player player = new Player(leveys, korkeus, playerspic, playersColor); … … 79 82 AddCollisionHandler(player, "platform", delegate(PhysicsObject a, PhysicsObject b) 80 83 { 81 ColorTile(a, b , percentageTracker);84 ColorTile(a, b); 82 85 }); 86 AddCollisionHandler(player, "crate", delegate(PhysicsObject a, PhysicsObject b) 87 { 88 //((Player)a).Weapon = ((WeaponCrate)b).GiveWeapon(); 89 ((Player)a).Weapon = GunLottery(); 90 ((Player)a).Weapon.ProjectileCollision = BulletHitsSomething; 91 b.Destroy(); 92 }); 83 93 84 94 return player; 85 95 } 86 96 97 void BulletHitsSomething (PhysicsObject bullet, PhysicsObject target) 98 { 99 if (target.Tag == "platform") 100 { 101 // TODO bullet must know its owner 102 if (bullet.Color == Color.Blue) 103 { 104 ColorTile(blue, target); 105 } 106 else if (bullet.Color == Color.Red) 107 { 108 ColorTile(red, target); 109 } 110 } 111 bullet.Destroy(); 112 } 113 114 Weapon GunLottery() 115 { 116 return new AssaultRifle(50, 50); 117 } 118 87 119 void Win(Player player) 88 120 { 89 121 Pause(); 90 122 //Haluaisin tehdä tähän jonkinlaisen hauskan ponnahdusefektin jossain vaiheessa. Sellaisen napakan zoomin ja sitten boing. Hurdur. 91 123 Camera.ZoomTo(player.Left, player.Bottom, player.Right, player.Top + 100); … … 102 134 } 103 135 104 void ColorTile(PhysicsObject player, PhysicsObject platform , DoubleMeter tracker)136 void ColorTile(PhysicsObject player, PhysicsObject platform) 105 137 { 106 138 platform.Color = player.Color; 107 139 108 140 List<GameObject> colored = GetObjects(o => (o.Color == red.Color || o.Color == blue.Color) && (String)o.Tag == "platform"); 109 tracker.Value = (double)colored.FindAll(o => o.Color == red.Color).Count/colored.Count * 100;141 percentageTracker.Value = (double)colored.FindAll(o => o.Color == red.Color).Count/colored.Count * 100; 110 142 } 111 143 … … 117 149 ControllerOne.Listen(Button.A, ButtonState.Pressed, Jump, "Pelaaja hyppää", red, JUMPSPEED); 118 150 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, Aim, "Tähtää", red); 151 ControllerOne.ListenAnalog(AnalogControl.RightTrigger, 0.1, Shoot, "", red); 119 152 120 153 ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, Move, "Liikuta pelaajaa", blue); 121 154 ControllerTwo.Listen(Button.A, ButtonState.Pressed, Jump, "Pelaaja hyppää", blue, JUMPSPEED); 122 155 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, Aim, null, blue); 156 ControllerTwo.ListenAnalog(AnalogControl.RightTrigger, 0.1, Shoot, "", blue); 123 157 124 158 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Ohjeet"); … … 132 166 if (stick.StateVector.Magnitude > 0.15) 133 167 player.Walk(stick.StateVector.X > 0 ? Direction.Right : Direction.Left); 168 } 169 170 void Shoot(AnalogState trigger, Player player) 171 { 172 if (player.Weapon != null) 173 { 174 PhysicsObject bullet = player.Weapon.Shoot(); 175 if (bullet != null) 176 { 177 bullet.Color = player.Color; 178 } 179 } 134 180 } 135 181 -
2016/23/ohjaajat/Punasininen/Punasininen/Punasininen/WeaponCrate.cs
r7196 r7203 9 9 class WeaponCrate : PhysicsObject 10 10 { 11 Weapon WeaponInside;12 11 13 public WeaponCrate(double leveys, double korkeus , Weapon weaponInside, Image pic, Color color)12 public WeaponCrate(double leveys, double korkeus) 14 13 : base(leveys, korkeus) 15 14 { 16 this.WeaponInside = weaponInside; 17 this.Color = color; 18 this.Image = pic; 15 Tag = "crate"; 19 16 } 20 17 18 /* 21 19 public Weapon GiveWeapon() 22 20 { 23 21 this.Destroy(); 24 return WeaponInside; 25 } 22 }*/ 26 23 }
Note: See TracChangeset
for help on using the changeset viewer.