Changeset 2080


Ignore:
Timestamp:
2011-06-17 09:41:27 (12 years ago)
Author:
elalylon
Message:

Peli pian valmis. Kylät, ampuminen ja vihut puuttuu.

Location:
2011/24/EliasY/Pixel Quest/Pixel Quest
Files:
5 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2011/24/EliasY/Pixel Quest/Pixel Quest/Pixel Quest/Peli.cs

    r2035 r2080  
    1414    Image tiematsku = LoadImage("Tiematsku"); 
    1515    Image hallitsijankuva = LoadImage("Hallitsija"); 
     16    Image vihollinen = LoadImage("Vihu"); 
     17    Image paahivollinen = LoadImage("Paavihu"); 
     18    Image paatalo = LoadImage("Paatalo"); 
     19    Image paatalo_katto_kuva = LoadImage("Paatalo_katto"); 
     20    Image talokuva = LoadImage("Talo"); 
    1621    PhysicsObject Pelaaja; 
    1722    PhysicsObject hallitsija; 
     23    PhysicsObject vihu; 
     24    PhysicsObject paavihu; 
     25    PhysicsObject paatalo_katto; 
     26    PhysicsObject paatalo_vasen_seina; 
     27    PhysicsObject paatalo_yla_seina; 
     28    PhysicsObject paatalo_oikea_seina; 
     29    PhysicsObject paatalo_ala_seina; 
     30    PhysicsObject Talo; 
     31    GameObject Paatalo_pohja; 
    1832    GameObject tie; 
    1933    Vector ylos = new Vector(0, 200); 
     34    int pelinkulku = 0; 
     35    int pelaajanelamat = 5; 
    2036    public override void Begin() 
    2137    { 
    2238        LuoKentta(); 
     39 
     40        Timer elamanpalautus = new Timer(); 
     41        elamanpalautus.Interval = 10; 
     42        elamanpalautus.Trigger += delegate(Timer sender) 
     43        { 
     44            if (pelaajanelamat < 5) 
     45            { 
     46                pelaajanelamat += 1; 
     47            } 
     48            MessageDisplay.Add("Elämät:" + pelaajanelamat); 
     49        }; 
     50        elamanpalautus.Start(); 
    2351    } 
    2452    void LuoKentta() 
     
    2654        Level.Width = 2000; 
    2755        Level.Height = 2000; 
    28         Level.CreateBorders(); 
     56        Level.CreateBorders(0.1, false); 
    2957        Camera.ZoomFactor = 5.0; 
     58        Level.BackgroundColor = Color.Black; 
    3059        Level.Background.Image = Tausta; 
    3160        Level.Background.FitToLevel(); 
    32          
     61 
     62        MessageDisplay.TextColor = Color.LightBlue; 
     63 
     64        IsFullScreen = true; 
    3365 
    3466        LuoTie(1600, 30, 0, 0); 
     
    4375        Camera.Follow(Pelaaja); 
    4476 
     77        LuoKyla(0, 200); 
    4578        LuoOlennot(); 
    4679    } 
     
    67100        Pelaaja.Shape = Shape.FromImage(pelaajankuva); 
    68101        Pelaaja.CanRotate = false; 
     102        AddCollisionHandler(Pelaaja, Tormays); 
    69103        Add(Pelaaja); 
    70104        LuoLiikunta(); 
     
    73107    { 
    74108        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikuYlos, "Liikuta Pelaajaa ylös."); 
    75         Keyboard.Listen(Key.W, ButtonState.Released, Pysayta, null); 
     109        Keyboard.Listen(Key.W, ButtonState.Released, PysaytaY, null); 
    76110        Keyboard.Listen(Key.S, ButtonState.Pressed, LiikuAlas, "Liikuta Pelaajaa alas."); 
    77         Keyboard.Listen(Key.S, ButtonState.Released, Pysayta, null); 
     111        Keyboard.Listen(Key.S, ButtonState.Released, PysaytaY, null); 
    78112        Keyboard.Listen(Key.A, ButtonState.Pressed, LiikuVasemmalle, "Liikuta Pelaajaa vasemmalle."); 
    79         Keyboard.Listen(Key.A, ButtonState.Released, Pysayta, null); 
     113        Keyboard.Listen(Key.A, ButtonState.Released, PysaytaX, null); 
    80114        Keyboard.Listen(Key.D, ButtonState.Pressed, LiikuOikealle, "Liikuta Pelaajaa oikealle."); 
    81         Keyboard.Listen(Key.D, ButtonState.Released, Pysayta, null); 
     115        Keyboard.Listen(Key.D, ButtonState.Released, PysaytaX, null); 
    82116        Keyboard.Listen(Key.M, ButtonState.Pressed, Kartta, "Näytä kartta"); 
    83117        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     
    86120    { 
    87121        hallitsija = new PhysicsObject(10,10); 
    88         //hallitsija.Shape = Shape.FromImage(hallitsijankuva); 
     122        hallitsija.Shape = Shape.FromImage(hallitsijankuva); 
    89123        hallitsija.Image = hallitsijankuva; 
    90         hallitsija.X = -100; 
    91         hallitsija.Y = 100; 
    92         hallitsija.LinearDamping = 0.7; 
     124        hallitsija.X = -50; 
     125        hallitsija.Y = 30; 
     126        hallitsija.LinearDamping = 0.6; 
     127        hallitsija.Tag = "hallitsija"; 
     128        hallitsija.Angle = Angle.FromDegrees(180); 
    93129        hallitsija.CanRotate = false; 
    94         //Tee kääntymisenesto 
    95130        Add(hallitsija); 
    96131    } 
     132    void LuoKyla(double paatalonsijaintiX, double paatalonsijaintiY) 
     133    { 
     134        Paatalo_pohja = new GameObject(200, 200); 
     135        Paatalo_pohja.X = paatalonsijaintiX; 
     136        Paatalo_pohja.Y = paatalonsijaintiY; 
     137        Paatalo_pohja.Image = paatalo; 
     138 
     139        paatalo_yla_seina = PhysicsObject.CreateStaticObject(200, 10); 
     140        paatalo_yla_seina.X = paatalonsijaintiX; 
     141        paatalo_yla_seina.Y = paatalonsijaintiY += 97; 
     142        paatalo_yla_seina.IsVisible = false; 
     143 
     144        paatalo_vasen_seina = PhysicsObject.CreateStaticObject(10, 200); 
     145        paatalo_vasen_seina.X = paatalonsijaintiX -= 97; 
     146        paatalo_vasen_seina.Y = paatalonsijaintiY -= 97; 
     147        paatalo_vasen_seina.IsVisible = false; 
     148 
     149        paatalo_oikea_seina = PhysicsObject.CreateStaticObject(10, 200); 
     150        paatalo_oikea_seina.X = paatalonsijaintiX += 194; 
     151        paatalo_oikea_seina.Y = paatalonsijaintiY -= 0; 
     152        paatalo_oikea_seina.IsVisible = false; 
     153 
     154        paatalo_ala_seina = PhysicsObject.CreateStaticObject(148, 10); 
     155        paatalo_ala_seina.X = paatalonsijaintiX -= 70; 
     156        paatalo_ala_seina.Y = paatalonsijaintiY -= 95; 
     157        paatalo_ala_seina.IsVisible = false; 
     158 
     159        Add(paatalo_ala_seina); 
     160        Add(paatalo_oikea_seina); 
     161        Add(paatalo_vasen_seina); 
     162        Add(paatalo_yla_seina); 
     163        Add(Paatalo_pohja,-1); 
     164 
     165        LuoTalo(paatalonsijaintiX - 50, paatalonsijaintiY + 250); 
     166        LuoTalo(paatalonsijaintiX - 200, paatalonsijaintiY + 150); 
     167        LuoTalo(paatalonsijaintiX + 140, paatalonsijaintiY + 120); 
     168        LuoTalo(paatalonsijaintiX - 180, paatalonsijaintiY - 10); 
     169        LuoTalo(paatalonsijaintiX - 100, paatalonsijaintiY - 150); 
     170 
     171        LuoViholliset(Paatalo_pohja.X - 75, Paatalo_pohja.Y - 150); 
     172    } 
     173    void LuoTalo(double x, double y) 
     174    { 
     175        Talo = PhysicsObject.CreateStaticObject(70, 70); 
     176        Talo.Image = talokuva; 
     177        Talo.X = x; 
     178        Talo.Y = y; 
     179        Add(Talo); 
     180    } 
     181    void LuoViholliset(double x, double y) 
     182    { 
     183        FollowerBrain vihunaivot = new FollowerBrain(); 
     184        vihunaivot.Target = Pelaaja; 
     185        vihunaivot.TargetFollowDistance = 100; 
     186        vihunaivot.Speed = 70; 
     187        vihunaivot.TargetCloseDistance = 15; 
     188        vihunaivot.TargetClose += Damage1; 
     189        vihunaivot.Active = true; 
     190 
     191        vihu = new PhysicsObject(15, 15); 
     192        vihu.Image = vihollinen; 
     193        vihu.Brain = vihunaivot; 
     194        vihu.X = x + RandomGen.NextDouble(-40, 40); 
     195        vihu.Y = y + RandomGen.NextDouble(-40, 40); 
     196 
     197        Add(vihu); 
     198    } 
     199    #region Liikunta 
    97200    void LiikuYlos() 
    98201    { 
     
    119222        Pelaaja.Hit(oikealle); 
    120223    } 
    121     void Pysayta() 
    122     { 
    123         Pelaaja.Velocity = Vector.Zero; 
    124     } 
     224    void PysaytaY() 
     225    { 
     226        Pelaaja.StopVertical(); 
     227    } 
     228    void PysaytaX() 
     229    { 
     230        Pelaaja.StopHorizontal(); 
     231    } 
     232    #endregion 
    125233    void Kartta() 
    126234    { 
    127235        if (Camera.ZoomFactor >= 5.0) 
    128236        { 
    129             Camera.ZoomFactor = 1.0; 
    130         } 
    131         else if (Camera.ZoomFactor <= 1.0) 
     237            Camera.ZoomFactor = 0.5; 
     238        } 
     239        else if (Camera.ZoomFactor <= 5.0) 
    132240        { 
    133241            Camera.ZoomFactor = 5.0; 
    134242        } 
    135243    } 
     244    void Tormays(PhysicsObject pelaaja, PhysicsObject kohde) 
     245    { 
     246        if (kohde.Tag.ToString() == "hallitsija") 
     247        { 
     248            if (pelinkulku == 0) 
     249            { 
     250                MessageDisplay.Add("Hallitsija: Lähde matkaan, ja valtaa takaisin erilaisten olioiden hallussaan pitämät kylät!"); 
     251                MessageDisplay.Add("Sinun kannattaa aloittaa kylien valtaaminen lähtemällä länteen."); 
     252                pelinkulku++; 
     253            } 
     254            if (pelinkulku == 1) 
     255            { 
     256                 
     257            } 
     258            if (pelinkulku == 2) 
     259            { 
     260                MessageDisplay.Add("Hallitsija: Kiitos, olet vallannut ensimmäisen kylän takaisin!Se ei kuitenkaan vielä riitä..."); 
     261            } 
     262            if (pelinkulku == 3) 
     263            { 
     264                MessageDisplay.Add("Hallitsija: Hyvää työtä, mutta kyliä on silti vielä valtaamatta."); 
     265            } 
     266        } 
     267    } 
     268    void Damage1(object lahettajaAivot, EventArgs e) 
     269    { 
     270        pelaajanelamat -= 1; 
     271        MessageDisplay.Add("Elämät" + pelaajanelamat); 
     272        if (pelaajanelamat == 0) 
     273        { 
     274            Pelaaja.Destroy(); 
     275            MessageDisplay.Add("KUOLIT!!! Peli alkoi uudestaan."); 
     276        } 
     277    } 
    136278} 
  • 2011/24/EliasY/Pixel Quest/Pixel Quest/Pixel QuestContent/Pixel QuestContent.contentproj

    r2035 r2080  
    7777    </Compile> 
    7878  </ItemGroup> 
     79  <ItemGroup> 
     80    <Compile Include="Paatalo.bmp"> 
     81      <Name>Paatalo</Name> 
     82      <Importer>TextureImporter</Importer> 
     83      <Processor>TextureProcessor</Processor> 
     84    </Compile> 
     85    <Compile Include="Paatalo_katto.bmp"> 
     86      <Name>Paatalo_katto</Name> 
     87      <Importer>TextureImporter</Importer> 
     88      <Processor>TextureProcessor</Processor> 
     89    </Compile> 
     90    <Compile Include="Paavihu.bmp"> 
     91      <Name>Paavihu</Name> 
     92      <Importer>TextureImporter</Importer> 
     93      <Processor>TextureProcessor</Processor> 
     94    </Compile> 
     95    <Compile Include="Vihu.bmp"> 
     96      <Name>Vihu</Name> 
     97      <Importer>TextureImporter</Importer> 
     98      <Processor>TextureProcessor</Processor> 
     99    </Compile> 
     100  </ItemGroup> 
     101  <ItemGroup> 
     102    <Compile Include="Talo.bmp"> 
     103      <Name>Talo</Name> 
     104      <Importer>TextureImporter</Importer> 
     105      <Processor>TextureProcessor</Processor> 
     106    </Compile> 
     107  </ItemGroup> 
    79108  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    80109  <!--  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.