Changeset 6390 for 2015/26


Ignore:
Timestamp:
2015-06-25 19:08:42 (4 years ago)
Author:
sieerinn
Message:

Kolmannessa kentässä on laavaa ja toimiva kamera.

Location:
2015/26/ohjaajat/HillbillyRun
Files:
7 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2015/26/ohjaajat/HillbillyRun/HillbillyRun/HillbillyRun/HillbillyRun/HillbillyRun.cs

    r6386 r6390  
    176176 
    177177    # region Images 
    178     private Image[] groundImages = LoadImages("ground", "ground_forest", "ground");    //Näitä ei tosin kaikkia kenties jaksa tehdä erilaisiksi levelistä riippuen 
    179     private Image[] groundTopImages = LoadImages("ground_top", "ground_top_forest", "ground_top"); 
     178    private Image[] groundImages = LoadImages("ground", "ground_forest", "ground_volcano"); 
     179    private Image[] groundTopImages = LoadImages("ground_top", "ground_top_forest", "ground_top_volcano"); 
    180180    private Image[] foregroundDecorations = LoadImages("viljaa", "grass", "grass"); 
    181181    private Image[] blockImages = LoadImages("box2", "rock"); 
     
    196196    private Image treeBranchImage = LoadImage("bigtreebranch"); 
    197197    private Image forestBackgroundImage = LoadImage("forestbackground"); 
     198    private Image volcanoBackgroundImage = LoadImage("volcanobackground"); 
    198199    private Image swingTrapImage = LoadImage("tukki"); 
    199200 
     
    201202    private Image leverLeftImage = LoadImage("lever_left"); 
    202203    private Image leverRightImage = LoadImage("lever_right"); 
     204 
     205    private Image lavaWallImage = LoadImage("lavawall"); 
     206    private Image spikeImage = LoadImage("spikes"); 
     207    private Image spikeLeftImage = LoadImage("spikeleft"); 
    203208 
    204209    private Animation crawl; 
     
    403408        cameraTimer.Start(); 
    404409 
    405         //Background 
    406         GameObject forestBackground = new GameObject(Level.Width, Level.Height); 
    407         forestBackground.Image = forestBackgroundImage; 
    408         forestBackground.TextureWrapSize = new Vector(5, 1); 
    409         Add(forestBackground, -3); 
    410         Layers[-3].RelativeTransition = new Vector(0.5, 1.0); 
    411  
    412         if (levelNumber == 1) 
     410        // Background trees. 
     411        if (levelNumber < 2) 
     412        { 
     413            GameObject forestBackground = new GameObject(Level.Width, Level.Height); 
     414            forestBackground.Image = forestBackgroundImage; 
     415            forestBackground.TextureWrapSize = new Vector(5, 1); 
     416            Add(forestBackground, -3); 
     417            Layers[-3].RelativeTransition = new Vector(0.5, 1.0); 
     418        } 
     419 
     420        // Background color. 
     421        if (levelNumber == 0) 
     422        { 
     423            Level.Background.CreateGradient(Color.Black, Color.SkyBlue); 
     424        } 
     425        else if (levelNumber == 1) 
    413426        { 
    414427            Level.Background.CreateGradient(Color.Black, Color.FromHexCode("495147")); 
    415428        } 
    416         else 
    417         { 
    418             Level.Background.CreateGradient(Color.Black, Color.SkyBlue); 
     429        else if (levelNumber == 2) 
     430        { 
     431            Level.Background.Image = volcanoBackgroundImage; 
     432            Level.Background.FitToLevel(); 
    419433        } 
    420434    } 
     
    455469        level.SetTileMethod(Color.FromHexCode("4C7F00"), CreateLevel); 
    456470 
     471        level.SetTileMethod(Color.FromHexCode("FF00DC"), CreateSpike, spikeImage); 
     472        level.SetTileMethod(Color.FromHexCode("C600AC"), CreateSpike, spikeLeftImage); 
     473 
    457474        level.Optimize(Color.Brown);    //Color.Black   //Tekee jännittäviä asioita wheatille, jos optimoidaan (tietysti). Jotenn.  
    458  
    459475        level.Execute(TILE_SIZE, TILE_SIZE); 
     476 
     477        // Kolmanteen kenttään laavaseinä. 
     478        if (levelNumber == 2) 
     479        { 
     480            PhysicsObject lava = PhysicsObject.CreateStaticObject(300, Level.Height); 
     481            lava.Image = lavaWallImage; 
     482            lava.X = Camera.ScreenToWorld(new Vector(-Window.Width / 2.0, 0)).X; 
     483            //lava.Y = Camera.ScreenToWorld(new Vector(0, 0)).Y; 
     484            Add(lava); 
     485 
     486            var updateTimer = new Timer {Interval = 0.01}; 
     487            updateTimer.Timeout += delegate 
     488            { 
     489                lava.Left = Camera.X - Window.Width / 2.0; 
     490                //lava.Y = Camera.ScreenToWorld(new Vector(0, 0)).Y; 
     491            }; 
     492            updateTimer.Start(); 
     493        } 
     494    } 
     495 
     496    void CreateSpike(Vector position, double width, double height, Image img) 
     497    { 
     498        PhysicsObject spike = PhysicsObject.CreateStaticObject(width, height); 
     499        spike.Image = img; 
     500        spike.Position = position; 
     501        //spike.Tag = "burn"; 
     502        Add(spike); 
    460503    } 
    461504 
     
    715758    { 
    716759        PlatformCharacter shroom = new PlatformCharacter(width, height * 2); 
    717         shroom.Position = position + new Vector(0, shroom.Height/ 2); 
     760        shroom.Position = position + new Vector(0, shroom.Height / 2); 
    718761        shroom.Tag = "burn"; 
    719762        shroom.Tag += "shroom"; 
     
    747790            Timer.SingleShot(RandomGen.NextDouble(3, 5), delegate { shroom.Brain = attackBrain; }); 
    748791 
    749                 Timer.SingleShot(1.5, 
    750                     delegate 
     792            Timer.SingleShot(1.5, 
     793                delegate 
     794                { 
     795                    for (int i = 0; i < matoja; i++) 
    751796                    { 
    752                         for (int i = 0; i < matoja; i++) 
    753                        { 
    754                             CreateWorm(shroom.Position + RandomGen.NextVector(- 200, 0, 200, 0), TILE_SIZE, TILE_SIZE); 
    755                             shroom.Brain = brain; 
    756                         } 
    757                     }); 
    758  
    759             
     797                        CreateWorm(shroom.Position + RandomGen.NextVector(-200, 0, 200, 0), TILE_SIZE, TILE_SIZE); 
     798                        shroom.Brain = brain; 
     799                    } 
     800                }); 
     801 
     802 
    760803        }; 
    761804 
     
    772815            matoja += RandomGen.NextInt(1, 5); 
    773816            rahkeet--; 
    774             if(rahkeet<1) 
     817            if (rahkeet < 1) 
    775818            { 
    776819                shroom.Destroy(); 
     
    778821            } 
    779822        }); 
    780          
    781      
     823 
     824 
    782825    } 
    783826 
     
    9981041        bool wheat = probability < 20; 
    9991042 
    1000         if (wheat) 
     1043        if (wheat && levelNumber < 2) 
    10011044        { 
    10021045            GameObject wheatBlock = new GameObject(width * 1.5, height * 2); 
     
    11321175        Vector maxPosition = new Vector(minX, maxY); 
    11331176 
    1134         cameraTarget = (minPosition + maxPosition) * 0.5; 
    1135         cameraTarget.X = Math.Max(cameraTargetX, minX);     //Lellllll. 
    1136  
    1137         //cameraTarget.Y = Math.Max(cameraTarget.X, Level.Bottom + Window.Height/2.0); 
    1138  
    1139         cameraTargetX = Math.Max(cameraTargetX, minX); 
    1140  
    1141         cameraTarget.X = Math.Min(cameraTargetX, rightCamLimit); 
    1142         cameraTarget.Y = Math.Max(cameraTarget.Y, bottomCamLimit); 
    1143  
     1177        if (levelNumber < 2) 
     1178        { 
     1179            cameraTarget = (minPosition + maxPosition)*0.5; 
     1180            cameraTarget.X = Math.Max(cameraTargetX, minX); //Lellllll. 
     1181 
     1182            //cameraTarget.Y = Math.Max(cameraTarget.X, Level.Bottom + Window.Height/2.0); 
     1183 
     1184            cameraTargetX = Math.Max(cameraTargetX, minX); 
     1185 
     1186            cameraTarget.X = Math.Min(cameraTargetX, rightCamLimit); 
     1187            cameraTarget.Y = Math.Max(cameraTarget.Y, bottomCamLimit); 
     1188        } 
     1189        else if (levelNumber == 2) 
     1190        { 
     1191            cameraTarget.Y = ((minPosition + maxPosition) * 0.5).Y; 
     1192            cameraTarget.Y = Math.Max(cameraTarget.Y, bottomCamLimit); 
     1193 
     1194            // Pakotetaan kameraa eteenpäin. Jos kaikki pelaajat on näytön oikealla puolella, niin liikutetaan nopeammin. 
     1195            double cameraSpeed = players.All(p => Camera.WorldToScreen(p.Position).X > 0) ? 4.0 : 1.0; 
     1196            cameraTarget.X += cameraSpeed;             
     1197        } 
     1198 
     1199        // Pelaajien sijainnin rajaus ikkunaan. 
    11441200        double windowMax = Camera.ScreenToWorld(new Vector(Window.Width / 2.0, 0)).X; 
    11451201        double windowMin = Camera.ScreenToWorld(new Vector(-Window.Width / 2.0, 0)).X; 
  • 2015/26/ohjaajat/HillbillyRun/HillbillyRun/HillbillyRun/HillbillyRunContent/HillbillyRunContent.contentproj

    r6386 r6390  
    349349    </Compile> 
    350350  </ItemGroup> 
     351  <ItemGroup> 
     352    <Compile Include="prisoner.png"> 
     353      <Name>prisoner</Name> 
     354      <Importer>TextureImporter</Importer> 
     355      <Processor>TextureProcessor</Processor> 
     356    </Compile> 
     357    <Compile Include="spikeleft.png"> 
     358      <Name>spikeleft</Name> 
     359      <Importer>TextureImporter</Importer> 
     360      <Processor>TextureProcessor</Processor> 
     361    </Compile> 
     362  </ItemGroup> 
     363  <ItemGroup> 
     364    <Compile Include="ground_top_volcano.png"> 
     365      <Name>ground_top_volcano</Name> 
     366      <Importer>TextureImporter</Importer> 
     367      <Processor>TextureProcessor</Processor> 
     368    </Compile> 
     369    <Compile Include="ground_volcano.png"> 
     370      <Name>ground_volcano</Name> 
     371      <Importer>TextureImporter</Importer> 
     372      <Processor>TextureProcessor</Processor> 
     373    </Compile> 
     374  </ItemGroup> 
     375  <ItemGroup> 
     376    <Compile Include="volcanobackground.png"> 
     377      <Name>volcanobackground</Name> 
     378      <Importer>TextureImporter</Importer> 
     379      <Processor>TextureProcessor</Processor> 
     380    </Compile> 
     381  </ItemGroup> 
     382  <ItemGroup> 
     383    <Compile Include="lavawall.png"> 
     384      <Name>lavawall</Name> 
     385      <Importer>TextureImporter</Importer> 
     386      <Processor>TextureProcessor</Processor> 
     387    </Compile> 
     388  </ItemGroup> 
    351389  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    352390  <!--  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.