Changeset 8050
- Timestamp:
- 2016-07-08 12:16:40 (7 years ago)
- Location:
- 2015/koodauskerho/SanteriK/FastestGunInTown
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/koodauskerho/SanteriK/FastestGunInTown/FastestGunInTown/FastestGunInTown/FastestGunInTown.cs
r7973 r8050 10 10 11 11 { 12 12 13 13 Image hahmonkuva = LoadImage("hahmo"); 14 14 Image hahmon2kuva = LoadImage("hahmo2"); 15 15 Image ammuskuva = LoadImage("ammus"); 16 16 IntMeter pelaaja1ampumislaskuri; 17 IntMeter pelaaja2ampumislaskuri; 18 Image aseenKuva = LoadImage("revolveri"); 17 19 PlatformCharacter[] pelaajat = new PlatformCharacter[2]; 20 AssaultRifle[] aseet = new AssaultRifle[2]; 18 21 public override void Begin() 19 22 { 23 24 pelaaja1ampumislaskuri = new IntMeter(0, 0, 150); 25 pelaaja2ampumislaskuri = new IntMeter(0, 0, 150); 26 20 27 LuoKentta(); 21 28 29 pelaajat[0].Weapon = aseet[0]; 30 pelaajat[1].Weapon = aseet[1]; 31 32 pelaaja1ampumislaskuri.UpperLimit += delegate 33 { 34 AmmuAseella(pelaajat[0].Weapon as AssaultRifle); 35 }; 36 pelaaja2ampumislaskuri.UpperLimit += delegate 37 { 38 39 AmmuAseella(pelaajat[1].Weapon as AssaultRifle); 40 }; 41 42 teepalkki(pelaaja1ampumislaskuri, Screen.Left + 100); 43 teepalkki(pelaaja2ampumislaskuri, Screen.Right - 100); 22 44 asetaohjaimet(); 23 45 LuoAikaLaskuri(); 24 46 25 47 } 48 void teepalkki(IntMeter mittari,double x) 49 { 50 ProgressBar elamaPalkki = new ProgressBar(150, 20); 51 elamaPalkki.X = x; 52 elamaPalkki.Y = Screen.Top - 20; 53 elamaPalkki.BindTo(mittari); 54 elamaPalkki.BorderColor = Color.Black; 55 56 Add(elamaPalkki); 57 58 } 59 26 60 void LuoKentta() 27 61 { … … 31 65 ruudut.SetTileMethod(Color.Black, LuoTaso); 32 66 ruudut.Execute(40, 40); 33 67 34 68 } 35 69 36 70 void LuoTaso(Vector paikka, double korkeus, double leveys) 37 71 { 38 PhysicsObject taso = 72 PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 39 73 taso.Position = paikka; 40 74 Add(taso); … … 49 83 hahmo.Image = hahmonkuva; 50 84 hahmo.Position = paikka; 51 if(indeksi == 1) hahmo.Turn(Direction.Left); 85 if (indeksi == 1) hahmo.Turn(Direction.Left); 86 //hahmo.Weapon.ProjectileCollision = AmmusOsui; 52 87 53 AssaultRifle pelaajan1Ase = new AssaultRifle(30, 10); 88 89 AssaultRifle pelaajan1Ase = new AssaultRifle(70, 50); 54 90 pelaajan1Ase.Ammo.Value = 6; 91 pelaajan1Ase.Image = aseenKuva; 92 pelaajan1Ase.Position -= new Vector(-10, 35); 55 93 pelaajan1Ase.ProjectileCollision = AmmusOsui; 56 hahmo.Weapon = pelaajan1Ase; 94 95 57 96 pelaajat[indeksi] = hahmo; 97 aseet[indeksi] = pelaajan1Ase; 98 99 100 101 102 103 58 104 } 59 105 void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 60 106 { 61 //ammus.Destroy(); 107 108 if (kohde == pelaajat[1]) kohde.Destroy(); 109 if (kohde == pelaajat[0]) kohde.Destroy(); 110 111 ammus.Destroy(); 62 112 } 63 113 void AmmuAseella(AssaultRifle ase) 64 114 { 65 115 PhysicsObject ammus = ase.Shoot(); 66 116 ase.Power.Value = 1000; 67 117 if (ammus != null) 68 118 { 69 119 70 ammus.Size *= 3; 120 ammus.Height = 17.5; 121 ammus.Width = 43; 71 122 ammus.Image = ammuskuva; 123 ammus.Tag = "ammus"; 72 124 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 125 73 126 } 74 127 } … … 78 131 Keyboard.Listen(Key.LeftShift, ButtonState.Down, AmmuAseella, "Ammu", (AssaultRifle)pelaajat[1].Weapon); 79 132 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 133 134 } 135 DoubleMeter alaspainLaskuri; 136 Timer aikaLaskuri; 137 void täytämittaria(IntMeter mittari) 138 { 139 mittari.Value++; 140 } 141 void LuoAikaLaskuri() 142 { 143 alaspainLaskuri = new DoubleMeter(3); 144 145 aikaLaskuri = new Timer(); 146 aikaLaskuri.Interval = 0.1; 147 aikaLaskuri.Timeout += LaskeAlaspain; 148 aikaLaskuri.Start(); 149 150 Label aikaNaytto = new Label(); 151 aikaNaytto.TextColor = Color.White; 152 aikaNaytto.DecimalPlaces = 1; 153 aikaNaytto.BindTo(alaspainLaskuri); 154 Add(aikaNaytto); 80 155 } 81 156 157 void LaskeAlaspain() 158 { 159 alaspainLaskuri.Value -= 0.1; 160 161 if (alaspainLaskuri.Value <= 0) 162 { 163 MessageDisplay.Add("Ampukaa!"); 164 aikaLaskuri.Stop(); 165 Keyboard.Listen(Key.R, ButtonState.Pressed, täytämittaria, "", pelaaja1ampumislaskuri); 166 Keyboard.Listen(Key.O, ButtonState.Pressed, täytämittaria, "", pelaaja2ampumislaskuri); 167 } 168 } 82 169 } 83 170
Note: See TracChangeset
for help on using the changeset viewer.