Changeset 9173 for 2017/utsjoki/NilláN


Ignore:
Timestamp:
2017-07-27 14:52:25 (6 years ago)
Author:
sieerinn
Message:
 
Location:
2017/utsjoki/NilláN/Speargear
Files:
3 added
11 edited

Legend:

Unmodified
Added
Removed
  • 2017/utsjoki/NilláN/Speargear/Speargear/Speargear/Speargear.cs

    r9132 r9173  
    1212    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    1313    public Vector suunta; 
     14    public bool saalyödä = true; 
     15    public bool puolustaa = false; 
     16 
    1417    public Pelaaja(double leveys, double korkeus) 
    1518        : base(leveys, korkeus) 
     
    3841    Image oikeaKuva = LoadImage("oikea"); 
    3942    Image vasenKuva = LoadImage("peliukko"); 
    40  
     43    Image taustakuva = LoadImage("taso"); 
     44     
    4145    bool vasen = false; 
    4246    bool oikea = false; 
     
    4448    bool vasen2 = false; 
    4549    bool oikea2 = false; 
     50 
    4651 
    4752    public override void Begin() 
     
    6469        pelaaja.CanRotate = false; 
    6570        pelaaja.Image = LoadImage("peliukko"); 
     71 
     72        ProgressBar elamaPalkki = new ProgressBar(50, 10); 
     73        elamaPalkki.X = 0; 
     74        elamaPalkki.Y = 50; 
     75        elamaPalkki.BindTo(pelaaja.ElamaLaskuri); 
     76        pelaaja.Add(elamaPalkki); 
     77 
     78        elamaPalkki.BarColor = Color.FromHexCode("64FE2E"); 
     79        elamaPalkki.Color = Color.Red; 
     80 
    6681        return pelaaja; 
    6782 
     
    7186    void LuoKentta() 
    7287    { 
    73         pelaaja1 = LuoPelaaja(0, 0); 
    74         pelaaja2 = LuoPelaaja(-100, 0); 
    75  
    76         AddCollisionHandler<Pelaaja,PhysicsObject>(pelaaja1, "keihäs2", osuuKeihääseen); 
     88        pelaaja1 = LuoPelaaja(370, 250); 
     89        pelaaja2 = LuoPelaaja(-370, -250); 
     90 
     91        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja1, "keihäs2", osuuKeihääseen); 
    7792        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja2, "keihäs1", osuuKeihääseen); 
    7893 
     
    8297        alaReuna = Level.CreateBottomBorder(); 
    8398 
     99        Level.Background.Image = taustakuva; 
     100        Level.Background.FitToLevel(); 
     101 
    84102    } 
    85103 
     
    90108        pelaaja.Image = uusikuva; 
    91109 
    92         //if (nopeus.X < 0 && oikea == false) 
    93         //{ 
    94         //    pelaaja.MirrorImage(); 
    95         //    oikea = true; 
    96         //    vasen = false; 
    97  
    98         //} 
    99         //if (nopeus.X > 0 && vasen == false) 
    100         //{ 
    101         //    pelaaja.MirrorImage(); 
    102         //    oikea = false; 
    103         //    vasen = true; 
    104         //} 
    105     } 
    106  
    107     //void Pelaaja2Liike(Pelaaja pelaaja, Vector nopeus) 
    108     //{ 
    109     //    pelaaja.Push(nopeus); 
    110     //    pelaaja.suunta = nopeus; 
    111  
    112     //    if (nopeus.X < 0 && oikea == false) 
    113     //    { 
    114     //        pelaaja.MirrorImage(); 
    115     //        oikea2 = true; 
    116     //        vasen2 = false; 
    117  
    118     //    } 
    119     //    if (nopeus.X > 0 && vasen == false) 
    120     //    { 
    121     //        pelaaja.MirrorImage(); 
    122     //        oikea2 = false; 
    123     //        vasen2 = true; 
    124     //    } 
    125     //} 
     110    } 
     111 
     112 
    126113 
    127114    void Ohjaimet() 
     
    132119        Keyboard.Listen(Key.Left, ButtonState.Down, PelaajaLiike, null, pelaaja1, nopeusVasen, vasenKuva); 
    133120 
     121        Keyboard.Listen(Key.M, ButtonState.Pressed, Lyönti, null, pelaaja1, "keihäs1"); 
     122        Keyboard.Listen(Key.Comma, ButtonState.Pressed, torjunta, null, pelaaja1); 
     123        Keyboard.Listen(Key.Period, ButtonState.Pressed, heitäKeihäs, null, pelaaja1, "keihäs1"); 
     124 
     125 
    134126        Keyboard.Listen(Key.W, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusYlos, ylösKuva); 
    135127        Keyboard.Listen(Key.S, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusAlas, alasKuva); 
     
    137129        Keyboard.Listen(Key.A, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusVasen, vasenKuva); 
    138130 
    139         Keyboard.Listen(Key.Period, ButtonState.Pressed, Lyönti, null, pelaaja1, "keihäs1"); 
    140         Keyboard.Listen(Key.T, ButtonState.Pressed, Lyönti, null, pelaaja2, "keihäs2"); 
    141  
    142  
     131        Keyboard.Listen(Key.Y, ButtonState.Pressed, Lyönti, null, pelaaja2, "keihäs2"); 
     132        Keyboard.Listen(Key.U, ButtonState.Pressed, torjunta, null, pelaaja2); 
     133        Keyboard.Listen(Key.T, ButtonState.Pressed, heitäKeihäs, null, pelaaja2, "keihäs2"); 
    143134 
    144135    } 
     
    146137    void Lyönti(Pelaaja pelaaja, string tägi) 
    147138    { 
     139        if (!pelaaja.saalyödä) 
     140            return; 
     141        pelaaja.saalyödä = false; 
     142        Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 
     143 
    148144        PhysicsObject keihäs = new PhysicsObject(50, 10); 
    149145        keihäs.Image = LoadImage("keppi"); 
    150         keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 50; 
     146        keihäs.Position = pelaaja.Position; 
    151147        keihäs.CanRotate = false; 
    152         keihäs.LifetimeLeft = TimeSpan.FromSeconds(0.5); 
    153         keihäs.IgnoresCollisionResponse = true; 
     148        keihäs.LifetimeLeft = TimeSpan.FromSeconds(0.1); 
     149        keihäs.IgnoresCollisionResponse = false; 
    154150        keihäs.Tag = tägi; 
    155151        Add(keihäs); 
     
    157153        keihäs.Angle = pelaaja.suunta.Angle; 
    158154 
     155        double paikka = 0; 
     156 
    159157        Timer ajastin = new Timer(); 
    160158        ajastin.Interval = 0.02; 
    161         ajastin.Timeout += delegate { 
    162             keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 50; 
     159        ajastin.Timeout += delegate 
     160        { 
     161            paikka += 10; 
     162            keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * paikka; 
    163163            keihäs.Velocity = pelaaja.Velocity; 
     164            keihäs.Angle = pelaaja.suunta.Angle; 
    164165        }; 
    165166        ajastin.Start(); 
     
    167168    } 
    168169 
    169     void osuuKeihääseen(Pelaaja pelaaja, PhysicsObject keihäs) 
    170     { 
    171         pelaaja.ElamaLaskuri.Value -= 1; 
    172         pelaaja.Hit((pelaaja.Position - keihäs.Position).Normalize() * 5000); 
    173     } 
     170    void osuuKeihääseen(Pelaaja puolustaja, PhysicsObject keihäs) 
     171    { 
     172        Pelaaja hyökkääjä = (puolustaja == pelaaja1) ? pelaaja2 : pelaaja1; 
     173        bool vastakkain = hyökkääjä.suunta.Angle.MainDirection == (puolustaja.suunta.Angle + Angle.FromDegrees(180)).MainDirection; 
     174 
     175        if (puolustaja.puolustaa && vastakkain) 
     176        { 
     177            hyökkääjä.Hit((puolustaja.Position - keihäs.Position).Normalize() * -5000); 
     178        } 
     179        else 
     180        { 
     181            puolustaja.ElamaLaskuri.Value -= 1; 
     182            puolustaja.Hit((puolustaja.Position - keihäs.Position).Normalize() * 5000); 
     183        } 
     184 
     185    } 
     186 
     187    void torjunta(Pelaaja pelaaja) 
     188    { 
     189        if (!pelaaja.saalyödä) 
     190            return; 
     191        pelaaja.saalyödä = false; 
     192        pelaaja.puolustaa = true; 
     193        Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 
     194 
     195        PhysicsObject keihäs = new PhysicsObject(50, 10); 
     196        keihäs.Image = LoadImage("keppi"); 
     197        keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 25; 
     198        keihäs.CanRotate = false; 
     199        keihäs.LifetimeLeft = TimeSpan.FromSeconds(0.4); 
     200        keihäs.IgnoresCollisionResponse = true; 
     201        keihäs.Destroyed += delegate { pelaaja.puolustaa = false; }; 
     202        Add(keihäs); 
     203 
     204        keihäs.Angle = pelaaja.suunta.Angle + Angle.FromDegrees(90); 
     205 
     206        Timer ajastin2 = new Timer(); 
     207        ajastin2.Interval = 0.02; 
     208        ajastin2.Timeout += delegate 
     209        { 
     210            keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 30; 
     211            keihäs.Velocity = pelaaja.Velocity; 
     212            keihäs.Angle = pelaaja.suunta.Angle + Angle.FromDegrees(90); 
     213        }; 
     214        ajastin2.Start(); 
     215 
     216 
     217    } 
     218 
     219    void heitäKeihäs(Pelaaja pelaaja, String tag) 
     220    { 
     221        if (!pelaaja.saalyödä) 
     222            return; 
     223        pelaaja.saalyödä = false; 
     224        Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 
     225 
     226        PhysicsObject keihäs = new PhysicsObject(50, 10); 
     227        keihäs.Image = LoadImage("keppi"); 
     228        keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 60; 
     229        keihäs.CanRotate = false; 
     230        keihäs.LifetimeLeft = TimeSpan.FromSeconds(3); 
     231        keihäs.IgnoresCollisionResponse = false; 
     232        keihäs.Tag = tag; 
     233        Add(keihäs); 
     234 
     235        keihäs.Angle = pelaaja.suunta.Angle; 
     236        keihäs.Velocity = pelaaja.suunta * 0.2; 
     237 
     238        AddCollisionHandler(keihäs, osu); 
     239 
     240 
     241    } 
     242 
     243    void osu(PhysicsObject keihäs, PhysicsObject kohde) 
     244    { 
     245        keihäs.Destroy(); 
     246 
     247    } 
     248 
    174249} 
    175250 
  • 2017/utsjoki/NilláN/Speargear/Speargear/Speargear/Speargear.csproj.Debug.cachefile

    r9092 r9173  
    55Content\alas.xnb 
    66Content\oikea.xnb 
     7Content\taso.xnb 
  • 2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/ContentPipeline-{2D890E8B-0405-4957-9033-337AC1B0214F}.xml

    r9092 r9173  
    5656      <Time>2017-07-25T13:29:47.1671963+03:00</Time> 
    5757    </Item> 
     58    <Item> 
     59      <Source>taso.png</Source> 
     60      <Name>taso</Name> 
     61      <Importer>TextureImporter</Importer> 
     62      <Processor>TextureProcessor</Processor> 
     63      <Options>None</Options> 
     64      <Output>C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\taso.xnb</Output> 
     65      <Time>2017-07-27T12:04:36.163918+03:00</Time> 
     66    </Item> 
    5867    <BuildSuccessful>true</BuildSuccessful> 
    5968    <Settings> 
  • 2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/Speargear.csproj.FileListAbsolute.txt

    r9092 r9173  
    1313C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\alas.xnb 
    1414C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\oikea.xnb 
     15C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\taso.xnb 
  • 2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/cachefile-{2D890E8B-0405-4957-9033-337AC1B0214F}-targetpath.txt

    r9092 r9173  
    55Content\alas.xnb 
    66Content\oikea.xnb 
     7Content\taso.xnb 
  • 2017/utsjoki/NilláN/Speargear/Speargear/SpeargearContent/SpeargearContent.contentproj

    r9092 r9173  
    8787    </Compile> 
    8888  </ItemGroup> 
     89  <ItemGroup> 
     90    <Compile Include="taso.png"> 
     91      <Name>taso</Name> 
     92      <Importer>TextureImporter</Importer> 
     93      <Processor>TextureProcessor</Processor> 
     94    </Compile> 
     95  </ItemGroup> 
    8996  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    9097  <!--  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.