Changeset 8050 for 2015


Ignore:
Timestamp:
2016-07-08 12:16:40 (3 years ago)
Author:
aaelruut
Message:
 
Location:
2015/koodauskerho/SanteriK/FastestGunInTown
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2015/koodauskerho/SanteriK/FastestGunInTown/FastestGunInTown/FastestGunInTown/FastestGunInTown.cs

    r7973 r8050  
    1010 
    1111{ 
    12      
     12 
    1313    Image hahmonkuva = LoadImage("hahmo"); 
    1414    Image hahmon2kuva = LoadImage("hahmo2"); 
    1515    Image ammuskuva = LoadImage("ammus"); 
    16  
     16    IntMeter pelaaja1ampumislaskuri; 
     17    IntMeter pelaaja2ampumislaskuri; 
     18    Image aseenKuva = LoadImage("revolveri"); 
    1719    PlatformCharacter[] pelaajat = new PlatformCharacter[2]; 
     20    AssaultRifle[] aseet = new AssaultRifle[2]; 
    1821    public override void Begin() 
    1922    { 
     23 
     24        pelaaja1ampumislaskuri = new IntMeter(0, 0, 150); 
     25        pelaaja2ampumislaskuri = new IntMeter(0, 0, 150); 
     26 
    2027        LuoKentta(); 
    2128 
     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); 
    2244        asetaohjaimet(); 
    23  
     45        LuoAikaLaskuri(); 
    2446 
    2547    } 
     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 
    2660    void LuoKentta() 
    2761    { 
     
    3165        ruudut.SetTileMethod(Color.Black, LuoTaso); 
    3266        ruudut.Execute(40, 40); 
    33          
     67 
    3468    } 
    3569 
    3670    void LuoTaso(Vector paikka, double korkeus, double leveys) 
    3771    { 
    38         PhysicsObject taso =  PhysicsObject.CreateStaticObject(leveys, korkeus); 
     72        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    3973        taso.Position = paikka; 
    4074        Add(taso); 
     
    4983        hahmo.Image = hahmonkuva; 
    5084        hahmo.Position = paikka; 
    51         if(indeksi == 1) hahmo.Turn(Direction.Left); 
     85        if (indeksi == 1) hahmo.Turn(Direction.Left); 
     86        //hahmo.Weapon.ProjectileCollision = AmmusOsui; 
    5287 
    53          AssaultRifle pelaajan1Ase = new AssaultRifle(30, 10); 
     88         
     89        AssaultRifle pelaajan1Ase = new AssaultRifle(70, 50); 
    5490        pelaajan1Ase.Ammo.Value = 6; 
     91        pelaajan1Ase.Image = aseenKuva; 
     92        pelaajan1Ase.Position -= new Vector(-10, 35); 
    5593        pelaajan1Ase.ProjectileCollision = AmmusOsui; 
    56         hahmo.Weapon = pelaajan1Ase; 
     94         
     95         
    5796        pelaajat[indeksi] = hahmo; 
     97        aseet[indeksi] = pelaajan1Ase; 
     98 
     99 
     100        
     101         
     102 
     103 
    58104    } 
    59105    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    60106    { 
    61         //ammus.Destroy(); 
     107 
     108        if (kohde == pelaajat[1]) kohde.Destroy(); 
     109        if (kohde == pelaajat[0]) kohde.Destroy(); 
     110 
     111        ammus.Destroy(); 
    62112    } 
    63113    void AmmuAseella(AssaultRifle ase) 
    64114    { 
    65115        PhysicsObject ammus = ase.Shoot(); 
    66  
     116        ase.Power.Value = 1000; 
    67117        if (ammus != null) 
    68118        { 
    69119 
    70             ammus.Size *= 3; 
     120            ammus.Height = 17.5; 
     121            ammus.Width = 43; 
    71122            ammus.Image = ammuskuva; 
     123            ammus.Tag = "ammus"; 
    72124            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     125 
    73126        } 
    74127    } 
     
    78131        Keyboard.Listen(Key.LeftShift, ButtonState.Down, AmmuAseella, "Ammu", (AssaultRifle)pelaajat[1].Weapon); 
    79132        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); 
    80155    } 
    81156 
     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    } 
    82169} 
    83170 
Note: See TracChangeset for help on using the changeset viewer.