Changeset 4888 for 2014/23


Ignore:
Timestamp:
2014-06-06 12:21:41 (9 years ago)
Author:
sieerinn
Message:
 
Location:
2014/23/VilppuP/RogueMike/RogueMike
Files:
2 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • 2014/23/VilppuP/RogueMike/RogueMike/RogueMike/RogueMike.cs

    r4878 r4888  
    2727    GameObject crosshairobject; 
    2828    IntMeter pointcalculator = new IntMeter(100, 0, 100); 
    29     private int enemyHealth; 
    3029    Label attributewindow; 
    3130    Label pointScreen; 
    32     PhysicsObject ovi; 
     31    //PhysicsObject ovi; 
    3332    int enemycount = 0; 
     33    private List<PhysicsObject> ovetLista = new List<PhysicsObject>(); 
    3434 
    3535    public override void Begin() 
    3636    { 
    37          
     37 
    3838        // TODO: Kirjoita ohjelmakoodisi tähän 
    39          
     39 
    4040        MultiSelectWindow mainmenu = new MultiSelectWindow("Main Menu", "Begin", "About", "Quit"); 
    4141        //mainmenu.AddItemHandler(0, StartGame); 
     
    5555        QuitGame.Clicked += Exit; 
    5656        QuitGame.Clicked += menuclickaction; 
    57         Level.Background.Image = floor; 
    58         Level.Background.TileToLevel(); 
     57 
    5958 
    6059        Window menuwindow = new Window(); 
     
    6766        startbutton.Clicked += menuwindow.Close; 
    6867 
    69  
     68        IsFullScreen = false; 
     69 
     70        Level.Background.Color = Color.White; 
     71 
     72        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     73        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     74 
     75        Label versiontext = new Label("In development"); 
     76        versiontext.X = Screen.Right - 85; 
     77        versiontext.Y = Screen.Bottom + 25; 
     78        Add(versiontext, 3); 
     79 
     80        MediaPlayer.IsMuted = true; 
     81        MediaPlayer.IsRepeating = true; 
     82        MediaPlayer.Volume = 0.7; 
     83 
     84        MediaPlayer.Play("music1"); 
     85 
     86    } 
     87 
     88    void menuclickaction() 
     89    { 
     90        menuclick.Play(); 
     91    } 
     92 
     93    void StartGame() 
     94    { 
     95        int level = RandomGen.NextInt(1, 4); 
     96        ClearAll(); 
    7097        Mouse.IsCursorVisible = false; 
    7198 
    7299        playercharacter = new PhysicsObject(38, 50); 
    73          
     100 
    74101        Add(playercharacter, 3); 
    75102        playercharacter.Image = player; 
     
    81108        rifle.FireRate = 100; 
    82109        rifle.Power.DefaultValue = 100; 
    83         rifle.Image = revolver; 
     110        rifle.Image = null; 
    84111        playercharacter.Add(rifle); 
    85112        //Add(rifle); 
    86113 
    87114 
    88         PlayerControls(); 
    89         GenerateLevel(); 
    90  
    91         Level.CreateBorders(0, true); 
    92115 
    93116 
    94117        crosshairobject = new GameObject(50, 50); 
    95118        crosshairobject.Image = crosshair; 
    96         Add(crosshairobject, 3);  
    97  
    98  
    99         IsFullScreen = false; 
     119        Add(crosshairobject, 3); 
     120 
    100121        SmoothTextures = true; 
     122        MediaPlayer.IsMuted = false; 
     123 
     124 
     125        //AddCollisionHandler(ammus, enemy1, ProjectileHit); 
     126 
     127        PlayerControls(); 
     128        GenerateLevel(level); 
     129        Level.Background.Color = Color.Black; 
     130        Level.CreateBorders(0, false); 
    101131        Camera.ZoomToLevel(); 
    102132 
    103  
    104  
    105         MediaPlayer.IsMuted = true; 
    106         MediaPlayer.IsRepeating = true; 
    107         MediaPlayer.Volume = 0.7; 
    108  
    109         AddCollisionHandler(playercharacter, enemy1, PlayerCollisionEnemy); 
    110         //AddCollisionHandler(ammus, enemy1, ProjectileHit); 
    111  
    112  
    113         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    114         //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    115  
    116         Label versiontext = new Label("In development"); 
    117         versiontext.X = Screen.Right - 85; 
    118         versiontext.Y = Screen.Bottom + 25; 
    119         Add(versiontext, 3); 
    120  
    121     } 
    122  
    123     void menuclickaction() 
    124     { 
    125         menuclick.Play(); 
    126     } 
    127  
    128     void StartGame() 
    129     { 
    130          
     133        AddCollisionHandler(playercharacter, "enemy", PlayerCollisionEnemy); 
     134        AddCollisionHandler(playercharacter, "levelSwitchLeft", delegate(PhysicsObject p, PhysicsObject s) 
     135        { 
     136            ChooseLevel(p, s, new Vector(Level.Right - 80, 0)); 
     137        }); 
     138 
     139        AddCollisionHandler(playercharacter, "levelSwitchRight", delegate(PhysicsObject p, PhysicsObject s) 
     140        { 
     141            ChooseLevel(p, s, new Vector(Level.Left + 80, 0)); 
     142        }); 
     143 
     144        AddCollisionHandler(playercharacter, "levelSwitchTop", delegate(PhysicsObject p, PhysicsObject s) 
     145        { 
     146            ChooseLevel(p, s, new Vector(0, Level.Bottom + 80)); 
     147        }); 
     148 
     149        AddCollisionHandler(playercharacter, "levelSwitchBottom", delegate(PhysicsObject p, PhysicsObject s) 
     150        { 
     151            ChooseLevel(p, s, new Vector(0, Level.Top - 80)); 
     152        }); 
     153 
     154        Level.Background.Image = floor; 
     155        Level.Background.TileToLevel(); 
     156 
    131157        playercharacter.Position = Vector.Zero; 
    132158        pointcalculator.Value = pointcalculator.MaxValue; 
    133159        IsPaused = false; 
    134         MediaPlayer.IsMuted = false; 
    135         MediaPlayer.Play("music1"); 
     160 
    136161        pointcalculator.LowerLimit += GameOver; 
    137162    } 
     
    158183        Keyboard.Listen(Key.S, ButtonState.Released, MovePlayer, "", new Vector(0, 0)); 
    159184        Keyboard.Listen(Key.Tab, ButtonState.Down, StatWindow, ""); 
    160         Keyboard.Listen(Key.Tab, ButtonState.Released, HideStatWindow , null); 
     185        Keyboard.Listen(Key.Tab, ButtonState.Released, HideStatWindow, null); 
    161186        Keyboard.Listen(Key.Escape, ButtonState.Pressed, PauseGame, "Quit game"); 
    162187        Keyboard.Listen(Key.R, ButtonState.Pressed, StartGame, "Clear"); 
    163188        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Shoot, "Shoot"); 
    164189        Mouse.ListenMovement(0.0, KuunteleLiiketta, null); 
    165          
     190 
    166191    } 
    167192 
     
    192217    { 
    193218        //playercharacter.Velocity = suunta; 
    194         playercharacter.Push(suunta*40); 
    195          
     219        playercharacter.Push(suunta * 40); 
     220 
    196221    } 
    197222 
     
    199224    { 
    200225 
    201         playercharacter.Angle = (Mouse.PositionOnWorld - playercharacter.Position).Angle; 
    202         crosshairobject.Position = Mouse.PositionOnWorld; 
    203     } 
    204  
    205     void GenerateLevel() 
    206     { 
    207         ColorTileMap tiles = ColorTileMap.FromLevelAsset("level1"); 
     226        playercharacter.Angle = (crosshairobject.Position - playercharacter.Position).Angle; 
     227        //crosshairobject.Position = Mouse.PositionOnWorld; 
     228        crosshairobject.Move(hiirenTila.MouseMovement * 1); 
     229        if (crosshairobject.Position.X < Level.Left) 
     230        { 
     231            crosshairobject.Position = new Vector(Level.Left, crosshairobject.Position.Y); 
     232        } 
     233 
     234        if (crosshairobject.Position.X > Level.Right) 
     235        { 
     236            crosshairobject.Position = new Vector(Level.Right, crosshairobject.Position.Y); 
     237        } 
     238 
     239        if (crosshairobject.Position.Y < Level.Bottom) 
     240        { 
     241            crosshairobject.Position = new Vector(crosshairobject.Position.X, Level.Bottom); 
     242        } 
     243 
     244        if (crosshairobject.Position.Y > Level.Top) 
     245        { 
     246            crosshairobject.Position = new Vector(crosshairobject.Position.X, Level.Top); 
     247        } 
     248    } 
     249 
     250    void GenerateLevel(int level) 
     251    { 
     252        ColorTileMap tiles = ColorTileMap.FromLevelAsset("level" +level); 
    208253 
    209254        tiles.SetTileMethod(Color.White, GenerateWall); 
     
    211256        tiles.SetTileMethod(new Color(0, 38, 255), GenerateObstacle1); 
    212257        tiles.SetTileMethod(new Color(25, 255, 0), EnemySpider); 
     258        tiles.SetTileMethod(Color.Red, SwitchLevel, false); 
     259        tiles.SetTileMethod(new Color(72, 0, 255), SwitchLevel, true); 
    213260 
    214261        tiles.Execute(20, 20); 
     
    231278    void GenerateDoor(Vector paikka, double leveys, double korkeus) 
    232279    { 
    233         ovi = GenerateAll(paikka, leveys, korkeus, door); 
     280        PhysicsObject ovi = GenerateAll(paikka, leveys, korkeus, door); 
    234281        Add(ovi); 
     282        ovetLista.Add(ovi); 
     283    } 
     284 
     285    void SwitchLevel(Vector paikka, double leveys, double korkeus, bool horizontal) 
     286    { 
     287        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     288        if (horizontal) 
     289        { 
     290            if (paikka.X < 0) 
     291            { 
     292                seina.Tag = "levelSwitchLeft"; 
     293            } 
     294            else 
     295            { 
     296                seina.Tag = "levelSwitchRight"; 
     297            } 
     298        } 
     299        else 
     300        { 
     301            if (paikka.Y < 0) 
     302            { 
     303                seina.Tag = "levelSwitchBottom"; 
     304            } 
     305            else 
     306            { 
     307                seina.Tag = "levelSwitchTop"; 
     308            } 
     309        } 
     310 
     311        seina.Color = Color.Transparent; 
     312        seina.Position = paikka; 
     313        Add(seina); 
    235314    } 
    236315 
     
    254333    void EnemySpider(Vector paikka, double leveys, double korkeus) 
    255334    { 
    256         PhysicsObject enemy = new PhysicsObject(leveys, korkeus); 
     335        Vihu enemy = new Vihu(leveys*2, korkeus*2); 
    257336        enemy.Image = enemyspider; 
    258337        enemy.Position = paikka; 
     
    284363        //randombrain.Speed = 100; 
    285364        //enemy1.Brain = randombrain; 
    286          
     365 
    287366        //randombrain.Active = true; 
    288367 
     
    334413        //menu.Closed += delegate { menu.Destroy(); }; 
    335414        Add(menu); 
    336         MediaPlayer.Stop(); 
     415        MediaPlayer.IsMuted = true; 
    337416 
    338417    } 
     
    374453    void ProjectileHit(PhysicsObject ammus, PhysicsObject enemy) 
    375454    { 
    376         if (enemy.Tag == "enemy") 
    377         { 
    378  
    379             enemyHealth++; 
    380             if (enemyHealth >= 3) 
     455        if (enemy.Tag.ToString() == "enemy") 
     456        { 
     457            ammus.Destroy(); 
     458            (enemy as Vihu).ElamaLaskuri.Value--; 
     459 
     460            if ((enemy as Vihu).ElamaLaskuri.Value <= 0) 
     461                enemy.Destroy(); 
     462 
     463            var viholliset = GetObjectsWithTag("enemy"); 
     464 
     465            int elossa = 0; 
     466            foreach(var vihu in viholliset) 
    381467            { 
    382                 ammus.Destroy(); 
    383                 enemy.Destroy(); 
     468                if ((vihu as Vihu).ElamaLaskuri.Value > 0) 
     469                    elossa++; 
     470            } 
     471 
     472            if (elossa == 0)  
     473            { 
     474                foreach (PhysicsObject ovi in ovetLista) 
     475                { 
     476                    ovi.Destroy(); 
     477                } 
     478 
    384479            } 
    385480        } 
     
    394489    //    base.Update(time); 
    395490    //} 
     491 
     492    void ChooseLevel(PhysicsObject player, PhysicsObject seina, Vector uusipaikka) 
     493    { 
     494        enemycount = 0; 
     495        StartGame(); 
     496        playercharacter.Position = uusipaikka; 
     497    } 
     498 
    396499} 
     500 
     501class Vihu : PhysicsObject 
     502{ 
     503    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     504    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     505 
     506    public Vihu(double leveys, double korkeus) 
     507        : base(leveys, korkeus) 
     508    { 
     509    } 
     510} 
  • 2014/23/VilppuP/RogueMike/RogueMike/RogueMikeContent/RogueMikeContent.contentproj

    r4878 r4888  
    6767  </ItemGroup> 
    6868  <ItemGroup> 
    69     <Compile Include="level.png"> 
    70       <Name>level</Name> 
     69    <Compile Include="level3.png"> 
     70      <Name>level3</Name> 
    7171      <Importer>TextureImporter</Importer> 
    7272      <Processor>TextureProcessor</Processor> 
     
    176176    </Compile> 
    177177  </ItemGroup> 
     178  <ItemGroup> 
     179    <Compile Include="level2.png"> 
     180      <Name>level2</Name> 
     181      <Importer>TextureImporter</Importer> 
     182      <Processor>TextureProcessor</Processor> 
     183    </Compile> 
     184  </ItemGroup> 
    178185  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    179186  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.