2016-02-27 6 views
0

Это основное внимание вопроса:Small Basic - более «естественное» поколение местности для простого клона Minecraft Я нашел в Интернете

For BlockX = 0 To 900 Step 30 'Try to carve out Hills 
GraphicsWindow.BrushColor = "SkyBlue" 
depth = Math.GetRandomNumber(5) 
GraphicsWindow.FillRectangle(BlockX,BlockY,30,depth*30) 
EndFor 

И вся программа:

GraphicsWindow.Clear() 
GraphicsWindow.CanResize = 0 
GraphicsWindow.BackgroundColor = "SkyBlue" 


gw = GraphicsWindow.Width 
gh = GraphicsWindow.Height 
gw = 900 
gh = 600 

For BlockX = 0 To 900 Step 30 
For BlockY = 420 to 270 Step -30 
    b = Math.GetRandomNumber(2)  
    If b = 1 Then 'Stone 
     GraphicsWindow.DrawImage("C:\AllVersions\Versions\v0.4\SBCraft\assets\rock.png",BlockX,BlockY) 
    EndIf 
If b = 2 Then 'Dirt 
     GraphicsWindow.DrawImage("C:\AllVersions\Versions\v0.4\SBCraft\assets\dirt.png",BlockX,BlockY) 
    EndIf 
    EndFor 
EndFor 

For BlockX = 0 To 900 Step 30 'Grass Layer 
    BlockY = 240 
    GraphicsWindow.DrawImage("C:\AllVersions\Versions\v0.4\SBCraft\assets\grass.png",BlockX,BlockY) 
EndFor 

For BlockX = 0 To 900 Step 30 'Try to carve out Hills 
    GraphicsWindow.BrushColor = "SkyBlue" 
    depth = Math.GetRandomNumber(5) 
    GraphicsWindow.FillRectangle(BlockX,BlockY,30,depth*30) 
EndFor 

Объяснения : Я нашел очень простой клон Minecraft онлайн, и я пытаюсь расширить его, добавив генератор ландшафта. Генератор рельефа поддерживает 3 блока грязи, травы и камня. Для нижних 6 слоев, грязь и камень случайным образом генерируются, и слой травы сверху. Основное внимание в этом вопросе является последнее утверждение For. Для каждого столбца выбрано случайное число. Выбранное случайное число - это количество блоков, удаленных в каждом столбце. Но это делает очень зубчатый и неестественный ландшафт. Есть ли какая-то странная тригонометрическая вещь, которую я могу сделать, чтобы сделать холмы/естественную местность или другим способом?

ответ

0

Вы можете использовать уравнение абсолютного графа y = - | x |. как бы вы реализовали это, я не знаю, но если вы посмотрите на график этого уравнения, это выглядит как pointyhill, благодаря чему вы можете пойти и сделать свой холм.

 Смежные вопросы

  • Нет связанных вопросов^_^