Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Minecraft Game : Terrain Generation

This is my first post, so if thee are any mistakes, please tell me.

So I am coding a Minecraft type game right now (I have owned Codea for a year, so I am not trying to overwhelm myself). I have finished most of the menus and interactions, but I still have a question about terrain generation.
What I plan to do is use the method in Brickout Codea example for this. In the example, you have a class file with your class name, {...}, and a series of 1 and 0. A 1 representing a type of block in a table projected onto the screen, and a 0 representing an "air" pocket where another class file will place another type of block. I have sequences written, but I need help with using these sequences to place these blocks. I saw the example in Brickout, but didn't quite understand.
So what I am asking is, what methods could I use to put the sequences through a formula and project all true number onto the screen.

If anyone wants example code, I am happy to provide :)

Also, check out my other code examples (even my first professional (and quite funny) first app)

(By the way...
Ignatz, if you are reading this, you give me so much inspiration for going further :)
)

Comments

  • IgnatzIgnatz Mod
    Posts: 5,396

    have you seen these? They use a map like the one you describe.

    https://coolcodea.wordpress.com/2014/09/09/156-creating-a-2d-platform-game-part-1/

    https://coolcodea.wordpress.com/2014/09/17/164-2d-platform-game-code-and-instructions/

    (thank you for the kind words. I was where you are, not so long ago. Just keep practising!)

  • Thanks, Ignatz :) These websites were just what I was asking for, so useful

    The first website was VERY helpful because I was going to create multiple different classes for EACH type of block. But the example showed you could have MULTIPLE ids of blocks in a class, yay!

  • edited August 2016 Posts: 8

    Sorry, Ignatz to bother you again...
    But I couldn't understand how the matrix and sprite generation worked...

    I found another Codea example that would work perfectly, but I need help understanding it... the Drum Machine example

    I started a new project, but decided to go at it with a different method.

    Please explain how the equations work so I can understand how it works. Thanks!

    (I want to know how the boxes-selection-thing works (tap the box and it highlights))

  • dave1707dave1707 Mod
    edited August 2016 Posts: 7,470

    @gilbertASTUDENTios Are you after something like this. This is a 25x18 grid that has 1 of 4 random sprites drawn. Of course the grid can be any dimension you want, even larger than the screen. The sprites can be anything you want to draw at each position.

    EDIT: Changed code to hide or show the sprites.

    displayMode(FULLSCREEN)
    supportedOrientations(LANDSCAPE_ANY)
    
    function setup()
        spriteMode(CORNER)
        tab={}
        size=38
        for x=1,25 do
            tab[x]={}
            for y=1,18 do
                tab[x][y]=0 
            end
        end
        tx,ty=0,0
    end
    
    function draw()
        background(40, 40, 50)
        fill(255)
        for x=1,25 do
            for y=1,18 do
                rect(x*size,y*size,size,size)
                if tab[x][y]==1 then
                    sprite("Platformer Art:Block Grass",x*size,y*size,size,size)
                end
            end
        end
    end
    
    function touched(t)
        if t.state==BEGAN then
            tx=t.x//size
            ty=t.y//size
            if tab[tx][ty]==0 then
                tab[tx][ty]=1
            else
                tab[tx][ty]=0
            end
        end
    end
    
  • It is sort of... but I was wondering how to sort of toggle the blocks (i.e. tap somewhere on the grid and a sprite goes there, tap again and it is removed)

  • IgnatzIgnatz Mod
    Posts: 5,396

    There are many, many threads up here about using touch, and I have written an explanation here

    https://coolcodea.wordpress.com/2014/12/28/188-understanding-touch/

  • dave1707dave1707 Mod
    Posts: 7,470

    @gilbertASTUDENTios I changed the code above to put a Sprite where you tap or to remove a tapped Sprite.

  • edited August 2016 Posts: 8

    Oh my! Thank you so much! This was the perfect solution!
    I will have to share my code for an app I am working on thats really cool!

    I tested the code, edited it so it has a 'spritemode' variable... but when I change the settings for the sprite, all of the sprites change

    (what I mean is...
    I have a variable that changes a number, if the variable is 1, then a grass block is made
    And when the variable is 2, a dirt block is made
    but when switching between the variables, all of the sprites change)

    I saw a 'nil' variable to save sprites... but I dont know how to use it... I was hoping that this variable could help save the sprites generated between transitions with spritemode.

    Please share some code and thanks for the support!

  • You said you would share your code if asked — so I'm asking! Sounds fascinating. (By the way, I think it's a little humorous to say "I decided not to challenge myself too much, so I'm just building Minecraft."). :)

  • Hey Uber,
    I kind have moved on from MINECRAFT, I was aiming to make a quick game with all concepts imagined translated into LUA by these wonderful moderators :smiley:

    So now I moved on to a new invaders type game with 1000+ lines which is all in standard code (no matrixes or any complicated equations). So you can take the above code and apply it to your own 2D minecraft, but now I have no code :neutral:

    Sorry for any inconvinience but check out other examples. Good luck coding,

Sign In or Register to comment.