MinePrime - Minecraft on a HP Prime
alexgt
May 05, 2016, 01:28:23 am
https://codewalr.us/index.php?topic=404.0

Hello this is a 2D Minecraft game for the HP Prime. It is now in version 4.0 
and has moved on to Applications. version 1.0 was a program and was mostly me 
experimenting with HP-PPL, 2.0 included block breaking and placing but was 
scrapped after technical problems and replaced with 3.0, 3.0 was just a menu 
system I developed so I am not even sure it is worthy of a version in itself, 
4.0 is just as far along a 3.0 except it is moving along much quicker.

So that is the history of MinePrime but practice makes perfect so May the 
Fourth be with you :P

More technical outline of how world data will be stored and loaded and also 
collision:

Collision / Block durability:
    What I do here is I use a GROB that is the same size as the world 
    dimensions. If the pixel at your coordinates is black then it is free to 
    move through, if it is anything else and you will not be able to go 
    through it. And its color value is the block durability.

Storing worlds and world data:
    This is where I really need Apps. With AFilesB() you can return and store 
    individual bytes directly into the App files. So I can use this as a super 
    compact and small list that makes up the world, they will then be formed 
    into a matrix that will be used to store data while the game is executing. 
    Then when the user quits it turns the matrix into a list and stores it 
    into the App. If this is a acceptable way to do it it would be nice to 
    have some feedback, especially from @timwessman.

Drawing the world/ terrain:
    For this I am going to use a method I used in the last versions quite a 
    lot. I will make a GROB which will be one block larger on all sides, this 
    will allow for smooth scrolling and also decrease lag if you are not 
    moving much.

Player Movement:
    This will be where 4.0 really shines, it will have movement like Zampy's 
    Quest (for those that don't remember, it let you move one pixel at a time) 
    not that it is super cool but it is something the other versions lacked. 
    But unlike Zampy's Quest it will have impeccable collision because it uses 
    pixels. Why Pixels are so great at collision is because they will only 
    position at the integral part of the number 
    (ex: PIXON_P(1.9999,1.9999,#FFFFFF) and PIXON_P(1,1,#FFFFFF) both make the 
    pixel at (1,1) white).

I hope this wan't so confusing but I explained it all the best I could :)

Block list: OUTDATED!!!

Times all block ID's after 1-10 by 10 (so block 2(dirt) would be 20 and 
block 3(grass) would be 30 this gives me room to add block durability ;))
1-9 - Break animations
10-Stone
20-Dirt
30-Grass
40-Cobblestone
50-Bedrock
60-Oak Leaves
70-Tall Grass
80-Bricks
90-Refined Stone
100-Oak Planks
110-Mossy Cobblestone
120-Gold
130-Iron
140-Coal
150-Diamond
160-RedStone
170-Glass
180-Monster Spawner
190-Torch
200-Lapiz lazuli ore
210-Lapiz lazuli Block
220-Iron Block
230-Gold Block
240-Diamond Block
250-Emerald Block
260-Sand
270-Sandstone
280-Netherbrick
290-White Wool
300-Black wool
310-Dark gray wool
320-red wool
330-Pink wool
340-Green wool
350-Lime green wool
360-Brown wool
370-yellow wool
380-blue wool
390-light blue wool
400-magenta wool
410-Purple wool
420-Cyan wool
430-orange wool
440-light gray wool
450-Obsidian
460-enchanting table
470-dragon egg
480-command block
490-jungle leaves
500-cactus
510-spruce leaves
520-foot of bed
530-head of bed
540-Iron bars
550-ladder
560-bottom door
570-top door
580-mossy stone brick
590-cracked stone brick
600-spruce log
610-birch log
620-pumpkin
630-jack o'lantern


Current list of blocks (Will be updated upon additons) OUTDATED!!!

NAME - ID - MODIFIER / DAMAGE (Blank if none, once mining is added all blocks 
                               will have a damage count)
AIR - 0
BEDROCK - 1
DIRT - 2
GRASS - 3

Thanks for the support and helpful comments :)