Changeset 1433 for 2010/30


Ignore:
Timestamp:
2010-07-30 11:34:30 (9 years ago)
Author:
lijiolva
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/lijiolva/Teh Bus Game/Peli.cs

    r1409 r1433  
    1414    int minuutti = 0; 
    1515    int tunti = 0; 
    16     int id = 0;  
    17  
     16    int id = 0; 
     17    int talojenlukumäärä = 0; 
     18    PhysicsObject[] talotaulukko = new PhysicsObject[100]; 
     19    Dictionary<PhysicsObject, int> ihmisiaPysakilla = new Dictionary<PhysicsObject,int>(); 
     20    int matkustajat = 0; 
    1821    bool onkoPisteAlla; 
    1922 
     
    2730        LuoBussi("Doublebus", 0, 0); 
    2831        AsetaOhjaimet(); 
    29         IsFullScreen = true; 
     32        //IsFullScreen = true; 
    3033        Timer ajastin = new Timer(); 
    3134        ajastin.Interval = 5; 
    3235        ajastin.Trigger += paivitaKello; 
    3336        ajastin.Start(); 
    34          
     37        LuoTalo(); 
     38        LuoTalo(); 
     39        LuoTalo(); 
     40        LuoTalo(); 
     41        LuoTalo(); 
     42        LuoTalo(); 
     43        LuoTalo(); 
     44        LuoTalo(); 
     45        LuoTalo(); 
     46        LuoTalo(); 
     47        LuoTalo(); 
     48        LuoTalo(); 
     49        LuoTalo(); 
     50        LuoTalo(); 
     51        LuoTalo(); 
     52        LuoTalo(); 
     53        LuoTalo(); 
    3554        Label kello = new Label(); 
    3655        kello.Text = tunti.ToString() + ":" + minuutti.ToString(); 
     
    4160 
    4261        ajastin.Tag = kello; 
    43  
    4462         
    45     } 
    46  
     63        ihmisiaPysakilla = new Dictionary<PhysicsObject, int>(); 
     64        LuoLaatikko(); 
     65         
     66    } 
     67    void LuoTalo() 
     68    { 
     69        PhysicsObject talo = new PhysicsObject(40.0, 40.0); 
     70        talo.Position = RandomGen.NextVector(Level.Right, Level.Bottom, Level.Left, Level.Top); 
     71        talo.Tag = "talo"; 
     72        talo.Color = Color.Yellow; 
     73        talotaulukko[talojenlukumäärä] = talo; 
     74        talojenlukumäärä++; 
     75        Add(talo); 
     76    } 
    4777    void AsetaOhjaimet() 
    4878    { 
     
    129159        if (tyyppi == "Doublebus") kapasiteetti = 80; 
    130160        Add(bussi); 
     161        AddCollisionHandler(bussi, kasittele); 
    131162    } 
    132163    void paivitaKello(Timer ajastin) 
     
    146177        kello.Text = tunti.ToString() + ":" + minuutti.ToString(); 
    147178    } 
     179 
     180    void LuoLaatikko() 
     181    { 
     182        PhysicsObject laatikko = new PhysicsObject(40.0, 40.0); 
     183        laatikko.Position = RandomGen.NextVector(Level.Right, Level.Bottom, Level.Left, Level.Top); 
     184        laatikko.Tag = "laatikko"; 
     185        laatikko.IgnoresCollisionResponse = true; 
     186        laatikko.IgnoresPhysicsLogics = true; 
     187        Add(laatikko); 
     188 
     189        int ihmisia = 0; 
     190        for (int a = 0; a < talojenlukumäärä; a++) 
     191        { 
     192            double talonXetaisyys = laatikko.Position.X - talotaulukko[a].Position.X; 
     193            double talonYetaisyys = laatikko.Position.Y - talotaulukko[a].Position.Y; 
     194 
     195            if (talonXetaisyys < 0) 
     196            { 
     197                talonXetaisyys = talonXetaisyys * -1; 
     198            } 
     199            if (talonYetaisyys < 0) 
     200            { 
     201                talonYetaisyys = talonYetaisyys * -1; 
     202            } 
     203            double talonEtaisyys = talonXetaisyys + talonYetaisyys; 
     204            if (talonEtaisyys < 300) 
     205            { 
     206                ihmisia++; 
     207            } 
     208        } 
     209        ihmisiaPysakilla.Add(laatikko, ihmisia); 
     210        MessageDisplay.Add("Hemmoja jollakin pysäkillä: " + ihmisiaPysakilla.ToString()); 
     211    } 
     212 
     213    void kasittele(PhysicsObject auto, PhysicsObject kohde) 
     214    { 
     215 
     216        if (kohde.Tag == "laatikko") 
     217        { 
     218            MessageDisplay.Add("Ihmisia pysäkillä" + ihmisiaPysakilla[kohde].ToString()); 
     219            MessageDisplay.Add("Matkustajia linja-autossa" + matkustajat.ToString()); 
     220 
     221            if (ihmisiaPysakilla[kohde] > 0) 
     222            { 
     223                matkustajat = matkustajat + ihmisiaPysakilla[kohde]; 
     224                ihmisiaPysakilla[kohde] = 0; 
     225            } 
     226            else 
     227            { 
     228                MessageDisplay.Add("Tämä pysäkki on tyhjä"); 
     229            } 
     230            MessageDisplay.Add("Ihmisia pysäkillä" + ihmisiaPysakilla[kohde].ToString()); 
     231            MessageDisplay.Add("Matkustajia linja-autossa" + matkustajat.ToString()); 
     232 
     233        } 
     234    } 
    148235} 
Note: See TracChangeset for help on using the changeset viewer.