Changeset 4628 for 2013/30


Ignore:
Timestamp:
2013-07-24 14:14:04 (6 years ago)
Author:
alraniko
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/AleksiK/Hazy Maze Game/Hazy Maze Game/Hazy Maze Game/Hazy_Maze_Game.cs

    r4579 r4628  
    1111    PhysicsObject pelaaja; 
    1212    PhysicsObject kolikko; 
    13     //PhysicsObject kolmeVihu; 
    14  
    15     Vector nopeusYlos = new Vector(0, 300); 
    16     Vector nopeusAlas = new Vector(0, -300); 
    17     Vector nopeusOikea = new Vector(300, 0); 
    18     Vector nopeusVasen = new Vector(-300, 0); 
     13    PhysicsObject Vihu; 
     14    PhysicsObject kolikkoBlock; 
     15    PhysicsObject maali; 
     16    PhysicsObject vaaSinBlock; 
     17    PhysicsObject vaaSinSwitch; 
     18    PhysicsObject tyonBlock; 
     19    PhysicsObject tyonTuho; 
     20    PhysicsObject tuhonTuho; 
     21 
     22    IntMeter kolikkoLaskuri; 
     23 
     24    Vector nopeusYlos = new Vector(0, 100); 
     25    Vector nopeusAlas = new Vector(0, -100); 
     26    Vector nopeusOikea = new Vector(100, 0); 
     27    Vector nopeusVasen = new Vector(-100, 0); 
    1928 
    2029    //X = StandardiPala 
    2130    //P = Pelaaja 
    2231    //C = Kolikko 
    23     //1 = 3 oikealle liikkuva vihollinen 
     32    //Luku = Luku + 2 oikealle liikkuva vihollinen 
     33    //Nappaimistön ylarivi (ei P) = Kirjaimen ylapuolella oleva luku + 2 alas liikkuva vihollinen 
     34    //B = Kolikkoblock 
     35    //M = Maali 
     36    //A = Vaaleansininen tuhottava block 
     37    //S = Vaaleasiniblockin tuhoaja 
     38    //N = Tyonnettava block 
     39    //V = Tyonblockin tuhokohde 
     40    //Z = Tyontuhon tuhokohde 
    2441 
    2542    static String[] rivit = { 
     
    3148                "X                            X", 
    3249                "X                            X", 
    33                 "X          CP X              X", 
    34                 "X                            X", 
    35                 "X                            X", 
    36                 "X                            X", 
    37                 "X                            X", 
    38                 "X              1             X", 
     50                "X                            X", 
     51                "X                            X", 
     52                "X                            X", 
     53                "X                            X", 
     54                "X                            X", 
     55                "X                            X", 
    3956                "X                            X", 
    4057                "X                            X", 
     
    6986 
    7087        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    71  
    72         Level.BackgroundColor = Color.Black; 
    73          
     88        Level.Background.Color = Color.Black; 
     89 
     90        LuoKolikkoLaskuri(); 
     91        LuoMaailma(); 
     92        Ohjaus(); 
     93    } 
     94 
     95    public void Ohjaus() 
     96    { 
     97        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusYlos); 
     98        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     99        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusAlas); 
     100        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     101 
     102        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusOikea); 
     103        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     104        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusVasen); 
     105        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     106    } 
     107 
     108    public void LuoMaailma() 
     109    { 
    74110        TileMap tiles = TileMap.FromStringArray(rivit); 
    75111        tiles.SetTileMethod('X', LuoStandardiPala); 
    76112        tiles.SetTileMethod('P', LuoPelaaja); 
    77113        tiles.SetTileMethod('C', LuoKolikko); 
    78         tiles.SetTileMethod('1', LuoKolmeOikVihu); 
     114        tiles.SetTileMethod('B', LuoKolikkoBlock); 
     115        tiles.SetTileMethod('M', LuoMaali); 
     116        tiles.SetTileMethod('A', LuoVaaSinBlock); 
     117        tiles.SetTileMethod('S', LuoVaaSinSwitch); 
     118        tiles.SetTileMethod('N', LuoTyonBlock); 
     119        tiles.SetTileMethod('V', LuoTyonTuho); 
     120        tiles.SetTileMethod('Z', LuoTuhonTuho); 
     121        tiles.SetTileMethod('1', LuoVihu, 72.0, 0.0); 
     122        tiles.SetTileMethod('2', LuoVihu, 104.0, 0.0); 
     123        tiles.SetTileMethod('3', LuoVihu, 136.0, 0.0); 
     124        tiles.SetTileMethod('4', LuoVihu, 168.0, 0.0); 
     125        tiles.SetTileMethod('5', LuoVihu, 200.0, 0.0); 
     126        tiles.SetTileMethod('6', LuoVihu, 232.0, 0.0); 
     127        tiles.SetTileMethod('7', LuoVihu, 264.0, 0.0); 
     128        tiles.SetTileMethod('8', LuoVihu, 296.0, 0.0); 
     129        tiles.SetTileMethod('9', LuoVihu, 338.0, 0.0); 
     130        tiles.SetTileMethod('Q', LuoVihu, 0.0, 72.0); 
     131        tiles.SetTileMethod('W', LuoVihu, 0.0, 104.0); 
     132        tiles.SetTileMethod('E', LuoVihu, 0.0, 136.0); 
     133        tiles.SetTileMethod('R', LuoVihu, 0.0, 168.0); 
     134        tiles.SetTileMethod('T', LuoVihu, 0.0, 200.0); 
     135        tiles.SetTileMethod('Y', LuoVihu, 0.0, 232.0); 
     136        tiles.SetTileMethod('U', LuoVihu, 0.0, 264.0); 
     137        tiles.SetTileMethod('I', LuoVihu, 0.0, 296.0); 
     138        tiles.SetTileMethod('O', LuoVihu, 0.0, 338.0); 
    79139        tiles.Execute(ruudunLeveys, ruudunKorkeus); 
    80          
    81         Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusYlos); 
    82         Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
    83         Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusAlas); 
    84         Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
    85  
    86         Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusOikea); 
    87         Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
    88         Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja, nopeusVasen); 
    89         Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     140    } 
     141 
     142    public void LuoKolikkoLaskuri() 
     143    { 
     144        kolikkoLaskuri = new IntMeter(0); 
     145        kolikkoLaskuri.MaxValue = 100; 
    90146    } 
    91147 
     
    116172        kolikko.Shape = Shape.Circle; 
    117173        kolikko.Position = paikka; 
     174        kolikko.Restitution = 0.0; 
    118175        Add(kolikko); 
    119176        AddCollisionHandler(kolikko, "pelaaja", KerasitKolikon); 
    120177    } 
    121178 
    122  
    123  
    124     public void LuoKolmeOikVihu(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
    125     { 
    126         PhysicsObject kolmeVihu = new PhysicsObject(30, 30); 
    127         kolmeVihu.Color = Color.Red; 
    128         kolmeVihu.Shape = Shape.Circle; 
    129         //kolmeVihu.Position = paikka; 
    130         Add(kolmeVihu); 
    131         AddCollisionHandler(kolmeVihu, "pelaaja", Kuolit); 
    132          
    133         List<Vector> polku = new List<Vector>(); 
    134         polku.Add(new Vector(paikka.X - 100, paikka.Y)); 
    135         polku.Add(new Vector(paikka.X + 100, paikka.Y)); 
    136          
     179    public void LuoKolikkoBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     180    { 
     181        kolikkoBlock = PhysicsObject.CreateStaticObject(34, 34); 
     182        kolikkoBlock.Color = Color.Yellow; 
     183        kolikkoBlock.Position = paikka; 
     184        kolikkoBlock.Restitution = 0.0; 
     185        Add(kolikkoBlock); 
     186    } 
     187 
     188    public void LuoMaali(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     189    { 
     190        maali = PhysicsObject.CreateStaticObject(34, 34); 
     191        maali.Color = Color.AshGray; 
     192        maali.Position = paikka; 
     193        maali.Restitution = 0.0; 
     194        Add(maali); 
     195        AddCollisionHandler(maali, "pelaaja", TulitMaaliin); 
     196    } 
     197 
     198    public void LuoTyonBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     199    { 
     200        tyonBlock = new PhysicsObject(34, 34); 
     201        tyonBlock.Color = Color.Lime; 
     202        tyonBlock.Position = paikka; 
     203        tyonBlock.Restitution = 0.0; 
     204        tyonBlock.Tag = "tyonBlock"; 
     205        Add(tyonBlock); 
     206    } 
     207 
     208    public void LuoTyonTuho(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     209    { 
     210        tyonTuho = PhysicsObject.CreateStaticObject(34, 34); 
     211        tyonTuho.Color = Color.LightPink; 
     212        tyonTuho.Position = paikka; 
     213        tyonTuho.Restitution = 0.0; 
     214        Add(tyonTuho); 
     215        AddCollisionHandler(tyonTuho, "tyonBlock", TyoTormasi); 
     216    } 
     217 
     218    public void LuoTuhonTuho(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     219    { 
     220        tuhonTuho = PhysicsObject.CreateStaticObject(34, 34); 
     221        tuhonTuho.Color = Color.Magenta; 
     222        tuhonTuho.Position = paikka; 
     223        tuhonTuho.Restitution = 0.0; 
     224        Add(tuhonTuho); 
     225    } 
     226 
     227    public void LuoVaaSinBlock(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     228    { 
     229        vaaSinBlock = PhysicsObject.CreateStaticObject(34, 34); 
     230        vaaSinBlock.Color = Color.LightBlue; 
     231        vaaSinBlock.Shape = Shape.Pentagon; 
     232        vaaSinBlock.Position = paikka; 
     233        vaaSinBlock.Restitution = 0.0; 
     234        Add(vaaSinBlock); 
     235    } 
     236 
     237    public void LuoVaaSinSwitch(Vector paikka, double ruudunLeveys, double ruudunKorkeus) 
     238    { 
     239        vaaSinSwitch = PhysicsObject.CreateStaticObject(34, 34); 
     240        vaaSinSwitch.Color = Color.LightBlue; 
     241        vaaSinSwitch.Shape = Shape.Diamond; 
     242        vaaSinSwitch.Position = paikka; 
     243        vaaSinSwitch.Restitution = 0.0; 
     244        Add(vaaSinSwitch); 
     245        AddCollisionHandler(vaaSinSwitch, "pelaaja", OsuitVaaSinSwitch); 
     246    } 
     247 
     248    void TyoTormasi(PhysicsObject tormaaja, PhysicsObject kohde) 
     249    { 
     250        tormaaja.Destroy(); 
     251        kohde.Destroy(); 
     252        tuhonTuho.Destroy(); 
     253    } 
     254 
     255    void OsuitVaaSinSwitch(PhysicsObject tormaaja, PhysicsObject pelaaja) 
     256    { 
     257        vaaSinSwitch.Destroy(); 
     258        vaaSinBlock.Destroy(); 
     259    } 
     260  
     261    void KerasitKolikon(PhysicsObject kolikko, PhysicsObject pelaaja) 
     262    { 
     263        kolikko.Destroy(); 
     264        kolikkoLaskuri.Value += 1; 
     265 
     266        if (kolikkoLaskuri.Value == 20) 
     267        { 
     268            kolikkoBlock.Destroy(); 
     269            kolikkoLaskuri.Reset(); 
     270        } 
     271 
     272    } 
     273 
     274    void Kuolit(PhysicsObject tormaaja, PhysicsObject pelaaja) 
     275    { 
     276        pelaaja.Destroy(); 
     277    } 
     278 
     279    void TulitMaaliin(PhysicsObject tormaaja, PhysicsObject pelaaja) 
     280    { 
     281        pelaaja.Destroy(); 
     282    } 
     283 
     284    public void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus) 
     285    { 
     286        pelaaja.Velocity = nopeus; 
     287    } 
     288 
     289    public void LuoVihu(Vector paikka, double ruudunLeveys, double ruudunKorkeus, double r, double d) 
     290    { 
     291        Vihu = new PhysicsObject(30, 30); 
     292        Vihu.Color = Color.Red; 
     293        Vihu.Shape = Shape.Circle; 
     294        Vihu.Position = paikka; 
     295        Add(Vihu); 
     296        AddCollisionHandler(Vihu, "pelaaja", Kuolit); 
     297        LuoVihuAivot(paikka, r, d); 
     298    } 
     299 
     300    public void LuoVihuAivot(Vector paikka, double r, double d) 
     301    { 
     302        List<Vector> vihuPolku = new List<Vector>(); 
     303        vihuPolku.Add(new Vector(paikka.X + r, paikka.Y)); 
     304        vihuPolku.Add(new Vector(paikka.X, paikka.Y - d)); 
     305 
    137306        PathFollowerBrain pfb = new PathFollowerBrain(); 
    138         pfb.Path = polku; 
    139         kolmeVihu.Brain = pfb; 
     307        pfb.Path = vihuPolku; 
     308        Vihu.Brain = pfb; 
    140309        pfb.Active = true; 
    141310        pfb.Loop = true; 
    142         pfb.Speed = 100; 
    143     } 
    144  
    145      
    146     void KerasitKolikon(PhysicsObject kolikko, PhysicsObject pelaaja) 
    147     { 
    148         kolikko.Destroy(); 
    149     } 
    150  
    151     void Kuolit(PhysicsObject kolmeVihu, PhysicsObject pelaaja) 
    152     { 
    153         pelaaja.Destroy(); 
    154     } 
    155  
    156     void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus) 
    157     { 
    158         pelaaja.Velocity = nopeus; 
     311        pfb.Speed = 125; 
    159312    } 
    160313} 
Note: See TracChangeset for help on using the changeset viewer.