Yep. Everything works well now. I will submit it after I add the inventory menus and the ability to use some items.Oh cool! Also, you based your sprites off Celestrium’s which were in turn based off Terraria’s sprites? Okay.Yes. My player sprites are based off of swan's sprites for Celestrium. My world generator generates worlds in about a minute, and the game can properly load maps. You can see the ice biome in my profile picture.The rest of my game should be pretty easy from here, I finished world generation/loading.Have you finished saving yet?
Spooky Scary Programming Contest 2018
Root / Site Discussion / [.]
I assume that SIM.3D is ok, to use right? (http://smilebasicsource.com/page?pid=1053 Key = HEAEP3). I have been playing with that one a little bit.
What about code you find and port over from the internet. Something like say https://www.youtube.com/watch?v=Y37-gB83HKE Javidx9's maze generation algorithm for example? Good? Bad?
By the way, if anyone is interested, the code I ported over and a screen shot is right below. Anyone else a fan?

What about code you find and port over from the internet. Something like say https://www.youtube.com/watch?v=Y37-gB83HKE Javidx9's maze generation algorithm for example? Good? Bad?
By the way, if anyone is interested, the code I ported over and a screen shot is right below. Anyone else a fan?
OPTION STRICT
VAR SCREEN_W = 400
VAR SCREEN_H = 240
VAR CONSOLE_W = 200 'DIFFERENT NUMBERS FOR
VAR CONSOLE_H = 120 'INTEGER CHARACTER SIZE
VAR CHAR_W = SCREEN_W / CONSOLE_W
VAR CHAR_H = SCREEN_H / CONSOLE_H
VAR MAZE_W, MAZE_H, MAZE[0], VISITED_CELLS
VAR CELL_PATH_N = &H01
VAR CELL_PATH_E = &H02
VAR CELL_PATH_S = &H04
VAR CELL_PATH_W = &H08
VAR CELL_VISITED = &H10 '16
VAR PATH_W = 3
'UNLIKE THE VIDEO I WILL JUST PUSH
'TWO ENTRIES PER XY PAIR. JUST NEED TO
'REMEMBER TO POP AND PUSH IN REVERSE ORDER
'PUSH X,Y THEN POP Y,X
VAR STACK[0]
'Maze algorithm adapted from the video
'"Programming Mazes" by javidx9 on Youtube
'https://www.youtube.com/watch?v=Y37-gB83HKE
'
MAIN
END
DEF MAIN
VAR B, GAME_OVER = FALSE, T1, T2, DT
VAR PAGE_DRAW = 0, PAGE_SHOW = 1
ACLS
GPAGE PAGE_SHOW, PAGE_DRAW
ON_USER_CREATE
T2 = MILLISEC - 16
WHILE !GAME_OVER
T1 = T2
T2 = MILLISEC
DT = T2 - T1
B = BUTTON()
ON_USER_UPDATE DT, B
IF (B AND #X) != 0 THEN GAME_OVER = TRUE
SWAP PAGE_SHOW, PAGE_DRAW
GPAGE PAGE_SHOW, PAGE_DRAW
'VSYNC
WEND
END
DEF ON_USER_CREATE
VAR I
MAZE_W = 50
MAZE_H = 30
'Allocate maze
'Remove if too many
WHILE LEN(MAZE) > (MAZE_W * MAZE_H)
I = POP(MAZE)
WEND
'Add if too small
WHILE LEN(MAZE) < (MAZE_W * MAZE_H)
PUSH MAZE, 0
WEND
'Now zero everything out
FOR I = 0 TO (MAZE_W * MAZE_H) - 1
MAZE[I] = 0
NEXT I
'Clear out the stack
WHILE LEN(STACK) > 0
I = POP(STACK)
WEND
'Add the starting position
PUSH STACK, 0 'Start at 0, 0
PUSH STACK, 0
'Mark it visited
MAZE[0] = CELL_VISITED
VISITED_CELLS = 1
END
DEF ON_USER_UPDATE DT, B
VAR I, J, PX, PY, X, Y, CLR
VAR NEIGHBORS[0]
VAR NORTH = 1
VAR EAST = 2
VAR SOUTH = 3
VAR WEST = 4
VAR NEXT_DIR
'Do Maze Algorithm
IF VISITED_CELLS < (MAZE_W * MAZE_H) THEN
'Peek top of stack for current x, y
Y = STACK[LEN(STACK) - 1]
X = STACK[LEN(STACK) - 2]
'Step 1: Create a set of unvisited neighbors
'
'North neighbor
IF Y > 0 THEN
IF (MAZE[((Y - 1) * MAZE_W) + X] AND CELL_VISITED) == 0 THEN
PUSH NEIGHBORS, NORTH
ENDIF
ENDIF
'East neighbor
IF X < MAZE_W - 1 THEN
IF (MAZE[(Y * MAZE_W) + X + 1] AND CELL_VISITED) == 0 THEN
PUSH NEIGHBORS, EAST
ENDIF
ENDIF
'South neighbor
IF Y < MAZE_H - 1 THEN
IF (MAZE[((Y + 1) * MAZE_W) + X] AND CELL_VISITED) == 0 THEN
PUSH NEIGHBORS, SOUTH
ENDIF
ENDIF
'West neighbor
IF X > 0 THEN
IF (MAZE[(Y * MAZE_W) + X - 1] AND CELL_VISITED) == 0 THEN
PUSH NEIGHBORS, WEST
ENDIF
ENDIF
IF LEN(NEIGHBORS) > 0 THEN
'Choose one available neighbor at random
NEXT_DIR = NEIGHBORS[RND(LEN(NEIGHBORS))]
'Create a path between the neighbor and
'the current cell
IF NEXT_DIR == NORTH THEN
MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_N)
MAZE[(Y - 1) * MAZE_W + X] = (MAZE[(Y - 1) * MAZE_W + X] OR CELL_PATH_S)
PUSH STACK, X
PUSH STACK, Y - 1
ELSEIF NEXT_DIR == EAST THEN
MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_E)
MAZE[Y * MAZE_W + X + 1] = (MAZE[Y * MAZE_W + X + 1] OR CELL_PATH_W)
PUSH STACK, X + 1
PUSH STACK, Y
ELSEIF NEXT_DIR == SOUTH THEN
MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_S)
MAZE[(Y + 1) * MAZE_W + X] = (MAZE[(Y + 1) * MAZE_W + X] OR CELL_PATH_N)
PUSH STACK, X
PUSH STACK, Y + 1
ELSEIF NEXT_DIR == WEST THEN
MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_W)
MAZE[Y * MAZE_W + X - 1] = (MAZE[Y * MAZE_W + X - 1] OR CELL_PATH_E)
PUSH STACK, X - 1
PUSH STACK, Y
ELSE
ENDIF
'New cell
'Mark new cell visited and increase count
'Peek top of stack for current x, y
Y = STACK[LEN(STACK) - 1]
X = STACK[LEN(STACK) - 2]
'Mark it visited
MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_VISITED)
VISITED_CELLS = VISITED_CELLS + 1
ELSE
Y = POP(STACK)
X = POP(STACK)
ENDIF
ENDIF
'IF VISITED_CELLS < MAZE_W * MAZE_H THEN RETURN
GCLS
FOR J = 0 TO MAZE_H - 1
FOR I = 0 TO MAZE_W - 1
IF MAZE[J * MAZE_W + I] AND CELL_VISITED THEN
CLR = #WHITE
ELSE
CLR = #BLUE
ENDIF
IF I == X && J == Y AND VISITED_CELLS < MAZE_W * MAZE_H THEN
CLR = #LIME
ENDIF
DRAW_CELL I * (PATH_W + 1), J * (PATH_W + 1), CLR
'South wall
IF (MAZE[J * MAZE_W + I] AND CELL_PATH_S) != 0 THEN
CLR = #WHITE
ELSE
CLR = #BLACK
ENDIF
FOR PX = 0 TO PATH_W - 1
DRAW_PIXEL I * (PATH_W + 1) + PX, J * (PATH_W + 1) + PATH_W, CLR
NEXT PX
'East wall
IF (MAZE[J * MAZE_W + I] AND CELL_PATH_E) != 0 THEN
CLR = #WHITE
ELSE
CLR = #BLACK
ENDIF
FOR PY = 0 TO PATH_W - 1
DRAW_PIXEL I * (PATH_W + 1) + PATH_W, J * (PATH_W + 1) + PY, CLR
NEXT PX
NEXT I
NEXT J
END
DEF DRAW_PIXEL X, Y, CLR
GFILL X * CHAR_W, Y * CHAR_H, (X + 1) * CHAR_W - 1, (Y + 1) * CHAR_H - 1, CLR
END
DEF DRAW_CELL X, Y, CLR
GFILL X * CHAR_W, Y * CHAR_H, (X + 1 + PATH_W) * CHAR_W - CHAR_W - 1, (Y + 1 + PATH_W) * CHAR_H - CHAR_H - 1, CLR
END
I assume that SIM.3D is ok, to use right? (http://smilebasicsource.com/page?pid=1053 Key = HEAEP3). I have been playing with that one a little bit.What about code you find and port over from the internet. Something like say https://www.youtube.com/watch?v=Y37-gB83HKE Javidx9's maze generation algorithm for example? Good? Bad? By the way, if anyone is interested, the code I ported over and a screen shot is right below. Anyone else a fan?
Content
OPTION STRICT VAR SCREEN_W = 400 VAR SCREEN_H = 240 VAR CONSOLE_W = 200 'DIFFERENT NUMBERS FOR VAR CONSOLE_H = 120 'INTEGER CHARACTER SIZE VAR CHAR_W = SCREEN_W / CONSOLE_W VAR CHAR_H = SCREEN_H / CONSOLE_H VAR MAZE_W, MAZE_H, MAZE[0], VISITED_CELLS VAR CELL_PATH_N = &H01 VAR CELL_PATH_E = &H02 VAR CELL_PATH_S = &H04 VAR CELL_PATH_W = &H08 VAR CELL_VISITED = &H10 '16 VAR PATH_W = 3 'UNLIKE THE VIDEO I WILL JUST PUSH 'TWO ENTRIES PER XY PAIR. JUST NEED TO 'REMEMBER TO POP AND PUSH IN REVERSE ORDER 'PUSH X,Y THEN POP Y,X VAR STACK[0] 'Maze algorithm adapted from the video '"Programming Mazes" by javidx9 on Youtube 'https://www.youtube.com/watch?v=Y37-gB83HKE ' MAIN END DEF MAIN VAR B, GAME_OVER = FALSE, T1, T2, DT VAR PAGE_DRAW = 0, PAGE_SHOW = 1 ACLS GPAGE PAGE_SHOW, PAGE_DRAW ON_USER_CREATE T2 = MILLISEC - 16 WHILE !GAME_OVER T1 = T2 T2 = MILLISEC DT = T2 - T1 B = BUTTON() ON_USER_UPDATE DT, B IF (B AND #X) != 0 THEN GAME_OVER = TRUE SWAP PAGE_SHOW, PAGE_DRAW GPAGE PAGE_SHOW, PAGE_DRAW 'VSYNC WEND END DEF ON_USER_CREATE VAR I MAZE_W = 50 MAZE_H = 30 'Allocate maze 'Remove if too many WHILE LEN(MAZE) > (MAZE_W * MAZE_H) I = POP(MAZE) WEND 'Add if too small WHILE LEN(MAZE) < (MAZE_W * MAZE_H) PUSH MAZE, 0 WEND 'Now zero everything out FOR I = 0 TO (MAZE_W * MAZE_H) - 1 MAZE[I] = 0 NEXT I 'Clear out the stack WHILE LEN(STACK) > 0 I = POP(STACK) WEND 'Add the starting position PUSH STACK, 0 'Start at 0, 0 PUSH STACK, 0 'Mark it visited MAZE[0] = CELL_VISITED VISITED_CELLS = 1 END DEF ON_USER_UPDATE DT, B VAR I, J, PX, PY, X, Y, CLR VAR NEIGHBORS[0] VAR NORTH = 1 VAR EAST = 2 VAR SOUTH = 3 VAR WEST = 4 VAR NEXT_DIR 'Do Maze Algorithm IF VISITED_CELLS < (MAZE_W * MAZE_H) THEN 'Peek top of stack for current x, y Y = STACK[LEN(STACK) - 1] X = STACK[LEN(STACK) - 2] 'Step 1: Create a set of unvisited neighbors ' 'North neighbor IF Y > 0 THEN IF (MAZE[((Y - 1) * MAZE_W) + X] AND CELL_VISITED) == 0 THEN PUSH NEIGHBORS, NORTH ENDIF ENDIF 'East neighbor IF X < MAZE_W - 1 THEN IF (MAZE[(Y * MAZE_W) + X + 1] AND CELL_VISITED) == 0 THEN PUSH NEIGHBORS, EAST ENDIF ENDIF 'South neighbor IF Y < MAZE_H - 1 THEN IF (MAZE[((Y + 1) * MAZE_W) + X] AND CELL_VISITED) == 0 THEN PUSH NEIGHBORS, SOUTH ENDIF ENDIF 'West neighbor IF X > 0 THEN IF (MAZE[(Y * MAZE_W) + X - 1] AND CELL_VISITED) == 0 THEN PUSH NEIGHBORS, WEST ENDIF ENDIF IF LEN(NEIGHBORS) > 0 THEN 'Choose one available neighbor at random NEXT_DIR = NEIGHBORS[RND(LEN(NEIGHBORS))] 'Create a path between the neighbor and 'the current cell IF NEXT_DIR == NORTH THEN MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_N) MAZE[(Y - 1) * MAZE_W + X] = (MAZE[(Y - 1) * MAZE_W + X] OR CELL_PATH_S) PUSH STACK, X PUSH STACK, Y - 1 ELSEIF NEXT_DIR == EAST THEN MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_E) MAZE[Y * MAZE_W + X + 1] = (MAZE[Y * MAZE_W + X + 1] OR CELL_PATH_W) PUSH STACK, X + 1 PUSH STACK, Y ELSEIF NEXT_DIR == SOUTH THEN MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_S) MAZE[(Y + 1) * MAZE_W + X] = (MAZE[(Y + 1) * MAZE_W + X] OR CELL_PATH_N) PUSH STACK, X PUSH STACK, Y + 1 ELSEIF NEXT_DIR == WEST THEN MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_PATH_W) MAZE[Y * MAZE_W + X - 1] = (MAZE[Y * MAZE_W + X - 1] OR CELL_PATH_E) PUSH STACK, X - 1 PUSH STACK, Y ELSE ENDIF 'New cell 'Mark new cell visited and increase count 'Peek top of stack for current x, y Y = STACK[LEN(STACK) - 1] X = STACK[LEN(STACK) - 2] 'Mark it visited MAZE[Y * MAZE_W + X] = (MAZE[Y * MAZE_W + X] OR CELL_VISITED) VISITED_CELLS = VISITED_CELLS + 1 ELSE Y = POP(STACK) X = POP(STACK) ENDIF ENDIF 'IF VISITED_CELLS < MAZE_W * MAZE_H THEN RETURN GCLS FOR J = 0 TO MAZE_H - 1 FOR I = 0 TO MAZE_W - 1 IF MAZE[J * MAZE_W + I] AND CELL_VISITED THEN CLR = #WHITE ELSE CLR = #BLUE ENDIF IF I == X && J == Y AND VISITED_CELLS < MAZE_W * MAZE_H THEN CLR = #LIME ENDIF DRAW_CELL I * (PATH_W + 1), J * (PATH_W + 1), CLR 'South wall IF (MAZE[J * MAZE_W + I] AND CELL_PATH_S) != 0 THEN CLR = #WHITE ELSE CLR = #BLACK ENDIF FOR PX = 0 TO PATH_W - 1 DRAW_PIXEL I * (PATH_W + 1) + PX, J * (PATH_W + 1) + PATH_W, CLR NEXT PX 'East wall IF (MAZE[J * MAZE_W + I] AND CELL_PATH_E) != 0 THEN CLR = #WHITE ELSE CLR = #BLACK ENDIF FOR PY = 0 TO PATH_W - 1 DRAW_PIXEL I * (PATH_W + 1) + PATH_W, J * (PATH_W + 1) + PY, CLR NEXT PX NEXT I NEXT J END DEF DRAW_PIXEL X, Y, CLR GFILL X * CHAR_W, Y * CHAR_H, (X + 1) * CHAR_W - 1, (Y + 1) * CHAR_H - 1, CLR END DEF DRAW_CELL X, Y, CLR GFILL X * CHAR_W, Y * CHAR_H, (X + 1 + PATH_W) * CHAR_W - CHAR_W - 1, (Y + 1 + PATH_W) * CHAR_H - CHAR_H - 1, CLR END
I know for sure Sim.3D is fine, but I don’t know about the other stuffThey should both be fine since they've been posted online for others to use
I just decided to make XL worlds available for all 3DS systems.Wait, so were you trying to make 3DS XL-exclusive worlds for your game or something? They both have the same screen resolution, so all programs look and perform the same between the two systems. You can try making New 3DS-exclsuive levels by using the HARDWARE variable (0 on 3DS, 1 on New 3DS), although there's really no point to it.
I know. That's why I made it not n3DS exclusive. Also, the game has awesome music, thanks to RWIIUG0129.I just decided to make XL worlds available for all 3DS systems.Wait, so were you trying to make 3DS XL-exclusive worlds for your game or something? They both have the same screen resolution, so all programs look and perform the same between the two systems. You can try making New 3DS-exclsuive levels by using the HARDWARE variable (0 on 3DS, 1 on New 3DS), although there's really no point to it.
Sorry, looks like I won't have time to work on anything this week. I wanted to make something, but I am pretty much already out of free time until next week.
I may not be able to participate this time...
If I had started later and my motivation for completely coding an emulator stayed this month I'd have a 16 fake computer running an operating system uploaded as my entry but oh well
Why did the week i was going to actually implement the game part of my game since i finished the main mechanic of it have to be the week where i literally have 4 or 5 school projects due ahhhG
Why did the week i was going to actually implement the game part of my game since i finished the main mechanic of it have to be the week where i literally have 4 or 5 school projects due ahhhGJust do them before that week. Or is that this week? (duh) Or were they assigned the same week? I have to write a 7 page legal brief for history, but that's not due until December.