Changeset 8245


Ignore:
Timestamp:
2016-07-29 11:35:54 (3 years ago)
Author:
jolehto
Message:
 
Location:
2016/30/JoonasL/Arrow
Files:
2 added
2 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • 2016/30/JoonasL/Arrow/Arrow/Arrow/Arrow.cs

    r8218 r8245  
    22using System.Collections.Generic; 
    33using Jypeli; 
    4 using Jypeli.Assets; 
    54using Jypeli.Controls; 
    65using Jypeli.Effects; 
     
    1615    private ExplosionSystem redEffect = new ExplosionSystem(LoadImage("particle_2"), 250); 
    1716 
     17    private SoundEffect explosionSound = LoadSoundEffect("explosion"); 
     18 
    1819    private Label[] menuLabels = new Label[4]; 
    1920 
    20     private bool down_1 = true, down_2 = true, dead_1 = true, dead_2 = true, singlePlayer, launched = false; 
     21    private bool down_1 = true, down_2 = true, dead_1 = true, dead_2 = true, singlePlayer = true, launched = false; 
    2122 
    2223    private float MOVEMENT_SPEED = 0, multiplier = 1000, difficulty = 1, seconds_1 = 0, seconds_2 = 0; 
     
    2627 
    2728    public override void Begin() 
    28     { 
     29    {  
    2930        Window.Fullscreen = true; 
    3031 
     
    6162        Mouse.ListenOn(menuLabels[1], MouseButton.Left, ButtonState.Pressed, Menu_Second, null, false); 
    6263        Add(menuLabels[1]); 
    63     
    64         menuLabels[2] = new Label("Lopeta Peli"); 
     64  
     65        menuLabels[2] = new Label("Näppäimet"); 
    6566        menuLabels[2].X = Screen.Left * 0.885; 
    6667        menuLabels[2].Y = Screen.Top * 0.76; 
    6768        menuLabels[2].TextScale = new Vector(1.5, 1.5); 
    68         Mouse.ListenOn(menuLabels[2], MouseButton.Left, ButtonState.Pressed, Exit, null); 
     69        Mouse.ListenOn(menuLabels[2], MouseButton.Left, ButtonState.Pressed, ShowControls, null); 
    6970        Add(menuLabels[2]); 
    7071 
    71         menuLabels[3] = null; 
     72        menuLabels[3] = new Label("Lopeta Peli"); 
     73        menuLabels[3].X = Screen.Left * 0.885; 
     74        menuLabels[3].Y = Screen.Top * 0.675; 
     75        menuLabels[3].TextScale = new Vector(1.5, 1.5); 
     76        Mouse.ListenOn(menuLabels[3], MouseButton.Left, ButtonState.Pressed, Exit, null); 
     77        Add(menuLabels[3]); 
    7278    } 
    7379 
     
    116122    } 
    117123 
     124    private void ShowControls () 
     125    { 
     126        ClearAll(); 
     127 
     128        Level.Background.Color = Color.Black; 
     129 
     130        Level.Background.Image = LoadImage("background"); 
     131 
     132        Mouse.IsCursorVisible = true; 
     133 
     134        Label label = new Label("R - Aloita peli alusta \n\nVasen hiiren painike - Nosta punaista pelaajaa \n\nVälilyönti - Nosta sinistä pelaajaa \n\nEscape - Peruuta"); 
     135        label.X = Screen.Left * 0.73; 
     136        label.Y = Screen.Top * 0.8; 
     137        Add(label); 
     138 
     139        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Menu_First, null); 
     140    } 
     141 
    118142    private void Start (float i) 
    119143    { 
     
    128152 
    129153        ball_1 = new PhysicsObject(50, 50, Shape.Circle); 
     154        ball_1.X = Screen.Left * 1.5; 
     155        ball_1.Tag = "Obstacle"; 
     156        ball_1.Width *= 5; 
     157        ball_1.Height *= 5; 
    130158        ball_1.Color = Color.Black; 
    131         ball_2 = new PhysicsObject(50, 50, Shape.Circle); 
    132159        ball_1.IsVisible = false; 
    133         ball_2.IsVisible = false; 
    134160 
    135161        Add(ball_1); 
    136         Add(ball_2); 
    137162 
    138163        difficulty = i; 
     
    173198 
    174199        player_1 = new PhysicsObject(50, 50, Shape.Triangle); 
    175         player_1.Image = LoadImage("arrow"); 
    176         player_1.Angle = Angle.FromDegrees(325); 
     200        player_1.Color = Color.Black; 
     201        player_1.Angle = Angle.FromDegrees(225); 
    177202        Add(player_1); 
    178203 
    179204        if (!singlePlayer) 
    180205        { 
     206            ball_2 = new PhysicsObject(50, 50, Shape.Circle); 
     207            ball_2.X = Screen.Left * 1.5; 
     208            ball_2.Tag = "Obstacle"; 
     209            ball_2.Width *= 2.5; 
     210            ball_2.Height *= 2.5; 
     211            ball_2.Color = Color.Black; 
     212            ball_2.IsVisible = false; 
     213 
     214            Add(ball_2); 
     215 
     216            ball_1.Width = ball_2.Width; 
     217            ball_1.Height = ball_2.Height; 
     218 
    181219            label_2.Y = Screen.Top - label_1.Width * 2 - label_1.Height * 2; 
    182220            label_2.TextScale = new Vector(1.25, 1.25); 
     
    185223 
    186224            player_2 = new PhysicsObject(50, 50, Shape.Triangle); 
    187             player_2.Image = LoadImage("arrow"); 
    188             player_2.Angle = Angle.FromDegrees(325); 
     225            player_2.Color = Color.Black; 
     226            player_2.Angle = Angle.FromDegrees(225); 
    189227            Add(player_2); 
    190228 
    191             AddCollisionHandler(player_2, "Percent", Die_2); 
    192         } 
    193  
    194         AddCollisionHandler(player_1, "Percent", Die_1); 
     229            AddCollisionHandler(player_2, "Obstacle", Die_2); 
     230        } 
     231 
     232        AddCollisionHandler(player_1, "Obstacle", Die_1); 
    195233    } 
    196234 
     
    199237        Mouse.Listen(MouseButton.Left, ButtonState.Down, MoveUp_1, null); 
    200238        Mouse.Listen(MouseButton.Left, ButtonState.Up, MoveDown_1, null); 
     239 
    201240        Keyboard.Listen(Key.R, ButtonState.Pressed, Restart, null); 
     241 
    202242        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Menu_First, null); 
    203243 
     
    213253        player_1.IsVisible = true; 
    214254        player_1.Y = 0; 
     255 
    215256        points_1 = new List<Vector>(); 
    216257        points_1.Add(new Vector(Screen.Left * 1.5, 0)); 
     258 
    217259        dead_1 = false; 
     260 
     261        ball_1.X = Screen.Left * 1.5; 
    218262 
    219263        if (!singlePlayer) 
     
    221265            player_2.IsVisible = true; 
    222266            player_2.Y = 0; 
     267 
    223268            points_2 = new List<Vector>(); 
    224269            points_2.Add(new Vector(Screen.Left * 1.5, 0)); 
     270 
    225271            dead_2 = false; 
     272 
     273            ball_2.X = Screen.Left * 1.5; 
    226274        } 
    227275 
     
    388436            } 
    389437 
    390             double value = 0.75; 
     438            double value = RandomGen.NextInt(0, 500); 
    391439 
    392440            if (!launched) 
    393441            { 
    394                 if (value == 0.75) 
     442                if (value == 250) 
    395443                { 
    396444                    launched = true; 
    397                     ball_1.X = 4000; 
     445 
     446                    ball_1.X = Screen.Left * 1.5; 
     447                    ball_1.Y = player_1.Y; 
    398448                    ball_1.IsVisible = true; 
    399                     ball_2.IsVisible = true; 
     449 
     450                    if (!singlePlayer) 
     451                    { 
     452                        ball_2.X = Screen.Left * 1.5; 
     453                        ball_2.Y = player_2.Y; 
     454                        ball_2.IsVisible = true; 
     455                    } 
    400456                } 
    401457            } 
    402458            else 
    403459            { 
    404                 Vector direction = ball_1.Position - player_1.Position; 
    405                 float length = (float) Math.Sqrt(Math.Pow(direction.X, 2) + Math.Pow(direction.Y, 2)); 
    406                 direction.X /= length; 
    407                 direction.Y /= length; 
    408                 ball_1.Position -= direction * 10; 
    409             } 
    410         } 
    411     } 
    412  
    413    private void RandomPercentPosition (PhysicsObject physicsObject, int index) 
    414    { 
     460                if (!singlePlayer) 
     461                { 
     462                    ball_1.X += 1500 * difficulty * time.SinceLastUpdate.TotalSeconds; 
     463 
     464                    ball_2.X += 1500 * difficulty * time.SinceLastUpdate.TotalSeconds; 
     465 
     466                    if (ball_1.X >= Screen.Right * 1.5 && ball_2.X >= Screen.Right * 1.5) 
     467                    { 
     468                        launched = false; 
     469                        ball_1.IsVisible = false; 
     470                        ball_2.IsVisible = false; 
     471                    } 
     472                } 
     473                else if (!dead_1) 
     474                { 
     475                    ball_1.X += 1500 * difficulty * time.SinceLastUpdate.TotalSeconds; 
     476 
     477                    if (ball_1.X >= Screen.Right * 1.5) 
     478                    { 
     479                        launched = false; 
     480                        ball_1.IsVisible = false; 
     481                    } 
     482                } 
     483            } 
     484        } 
     485    } 
     486 
     487    private void RandomPercentPosition (PhysicsObject physicsObject, int index) 
     488    { 
    415489        physicsObject.X = RandomGen.NextDouble(Level.Right * 2.5, Level.Right * 6.5); 
    416490         
     
    430504                break; 
    431505        } 
    432  
    433    } 
    434  
    435    private void Die_1 (PhysicsObject a, PhysicsObject percent) 
    436    { 
     506    } 
     507 
     508    private void Die_1 (PhysicsObject a, PhysicsObject percent) 
     509    { 
    437510        if (dead_1) { return; } 
     511 
     512        explosionSound.Play(); 
    438513 
    439514        player_1.IsVisible = false; 
     
    447522        if (dead_2) { return; } 
    448523 
     524        explosionSound.Play(); 
     525 
    449526        player_2.IsVisible = false; 
    450527        dead_2 = true; 
     
    454531 
    455532    private void MoveUp_1() 
    456    { 
     533    { 
    457534        if (dead_1) { return; } 
    458535 
    459536        points_1.Add(player_1.Position - new Vector(5, 0)); 
    460         player_1.Angle = Angle.FromDegrees(45); 
     537        player_1.Angle = Angle.FromDegrees(315); 
    461538        down_1 = false; 
    462    } 
     539    } 
    463540 
    464541    private void MoveDown_1() 
     
    467544 
    468545        points_1.Add(player_1.Position - new Vector(5, 0)); 
    469         player_1.Angle = Angle.FromDegrees(325); 
     546        player_1.Angle = Angle.FromDegrees(225); 
    470547        down_1 = true; 
    471548    } 
     
    476553 
    477554        points_2.Add(player_2.Position - new Vector(5, 0)); 
    478         player_2.Angle = Angle.FromDegrees(45); 
     555        player_2.Angle = Angle.FromDegrees(315); 
    479556        down_2 = false; 
    480557    } 
     
    485562 
    486563        points_2.Add(player_2.Position - new Vector(5, 0)); 
    487         player_2.Angle = Angle.FromDegrees(325); 
     564        player_2.Angle = Angle.FromDegrees(225); 
    488565        down_2 = true; 
    489566    } 
     
    493570        PhysicsObject physicsObject = new PhysicsObject(100, 100); 
    494571        physicsObject.Color = new Color(RandomGen.NextInt(0, 225), RandomGen.NextInt(0, 225), RandomGen.NextInt(0, 225)); 
    495         physicsObject.Tag = "Percent"; 
     572        physicsObject.Tag = "Obstacle"; 
    496573        obstacles[index] = physicsObject; 
    497574        RandomPercentPosition(physicsObject, index); 
  • 2016/30/JoonasL/Arrow/Arrow/Arrow/Arrow.csproj.Debug.cachefile

    r8218 r8245  
    1 Content\note.xnb 
    2 Content\coin.xnb 
    31Content\background.xnb 
    4 Content\arrow.xnb 
    52Content\particle_2.xnb 
    63Content\particle_1.xnb 
     4Content\explosion.xnb 
  • 2016/30/JoonasL/Arrow/Arrow/Arrow/obj/x86/Debug/Arrow.csproj.FileListAbsolute.txt

    r8218 r8245  
    88C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\obj\x86\Debug\Arrow.pdb 
    99C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\background.xnb 
    10 C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\arrow.xnb 
    1110C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\particle_2.xnb 
    1211C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\particle_1.xnb 
     12C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\explosion.xnb 
  • 2016/30/JoonasL/Arrow/Arrow/Arrow/obj/x86/Debug/ContentPipeline-{2DF1C49F-6BF7-4BA9-9FE6-D0E53C97361E}.xml

    r8218 r8245  
    1010      <Output>C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\background.xnb</Output> 
    1111      <Time>2016-07-27T13:30:15.3441023+03:00</Time> 
    12     </Item> 
    13     <Item> 
    14       <Source>arrow.png</Source> 
    15       <Name>arrow</Name> 
    16       <Importer>TextureImporter</Importer> 
    17       <Processor>TextureProcessor</Processor> 
    18       <Options>None</Options> 
    19       <Output>C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\arrow.xnb</Output> 
    20       <Time>2016-07-27T14:39:40.043614+03:00</Time> 
    2112    </Item> 
    2213    <Item> 
     
    3728      <Output>C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\particle_1.xnb</Output> 
    3829      <Time>2016-07-28T13:16:20.4270486+03:00</Time> 
     30    </Item> 
     31    <Item> 
     32      <Source>explosion.wav</Source> 
     33      <Name>explosion</Name> 
     34      <Importer>WavImporter</Importer> 
     35      <Processor>SoundEffectProcessor</Processor> 
     36      <Options>None</Options> 
     37      <Output>C:\MyTemp\JoonasL\Arrow\Arrow\Arrow\bin\x86\Debug\Content\explosion.xnb</Output> 
     38      <Time>2016-07-29T10:57:19.8262212+03:00</Time> 
    3939    </Item> 
    4040    <BuildSuccessful>true</BuildSuccessful> 
  • 2016/30/JoonasL/Arrow/Arrow/Arrow/obj/x86/Debug/cachefile-{2DF1C49F-6BF7-4BA9-9FE6-D0E53C97361E}-targetpath.txt

    r8218 r8245  
    11Content\background.xnb 
    2 Content\arrow.xnb 
    32Content\particle_2.xnb 
    43Content\particle_1.xnb 
     4Content\explosion.xnb 
  • 2016/30/JoonasL/Arrow/Arrow/ArrowContent/ArrowContent.contentproj

    r8218 r8245  
    5353  </ItemGroup> 
    5454  <ItemGroup> 
    55     <Compile Include="arrow.png"> 
    56       <Name>arrow</Name> 
    57       <Importer>TextureImporter</Importer> 
    58       <Processor>TextureProcessor</Processor> 
    59     </Compile> 
    60   </ItemGroup> 
    61   <ItemGroup> 
    6255    <Compile Include="particle_2.png"> 
    6356      <Name>particle_2</Name> 
     
    7366    </Compile> 
    7467  </ItemGroup> 
     68  <ItemGroup> 
     69    <Compile Include="explosion.wav"> 
     70      <Name>explosion</Name> 
     71      <Importer>WavImporter</Importer> 
     72      <Processor>SoundEffectProcessor</Processor> 
     73    </Compile> 
     74  </ItemGroup> 
    7575  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    7676  <!--  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.