Requested:
- Penny the Pumpkin Directors: https://www.lexaloffle.com/bbs/?tid=142093
Me intersted in:
- Vegetables https://www.lexaloffle.com/bbs/?pid=162681#p
if btnp(4) then | |
local index = cursor.y*10+cursor.x | |
-- placing something will have to consider if it is an empty spot | |
-- and if we still have something to place (in hand is > 0 in id) | |
if (space_map[index] == vacant) and (in_hand_object != 0) then | |
-- if so place it | |
space_map[cursor.y*10+cursor.x] = in_hand_object | |
-- set our hand to "empty" | |
in_hand_object = 0 | |
-- only add objecst to hand if we still have them in pool |
-- borders around play area | |
line(8,7,87,7,1) | |
line(7,8,7,88,1) | |
line(88,8,88,88,1) | |
line(8,89,87,89,1) | |
-- fill pattern for grid | |
for i=1,10 do | |
fillp(▒) | |
--line((i*8)-1,8,(i*8),88,1) | |
local xpos = (i*8)-1 |
-- Insertion Sort by @impbox | |
-- this will sort our closed list by the A* F value. | |
function sort(array) | |
for i=1,#array do | |
local j = i | |
while j > 1 and array[j-1].f < array[j].f do | |
array[j],array[j-1] = array[j-1],array[j] | |
j = j - 1 | |
end | |
end |
-- a little helper function to print centered text | |
function print_center(text, x, y, color) | |
-- get the lenght of the text | |
-- if you did not know, print returns the position of the last character | |
-- so fi you print offscreen, starting from 0 you will get the exact lenght of the text | |
local len = print(text, 0, 400, color) | |
print(text, x-(len/2), y, color) | |
end | |
-- state machines might sound complicated, but when it comes down | |
-- they are just if statements that control how our code behaves. | |
-- based on certain conditions you can jump between "states" | |
-- and this can help you also organize stuff better, animate more freely, or | |
-- for example, let's use state machines to create a menu system for our game | |
function _init() | |
-- we will start on the game logo scene | |
-- and we will have the following: | |
-- menu: to show a nice menu if you want | |
-- gameplay: where the actual game code runs |
function _init() | |
-- create collection for players | |
players = {} | |
-- p1 | |
player1 = { | |
x = 0, | |
y = 2, | |
clr = 12, | |
health = 10 | |
} |
-- create a table to hold your objects | |
coins ={} | |
--now you can add things into here by hand, but you can also make a functionnsonyou can call that point | |
function add_coin(xpos, ypos) | |
-- now lets make a temporary local table to hold the coins atrributes, you want position mainly | |
local coin = { | |
x = xpos, | |
y = ypos |
Requested:
Me intersted in:
-- inside init have a collection called particles | |
-- this is where we will store each an every particles, so we can iterate | |
-- over them in the future (aka process them one by one) | |
particles = {} | |
-- adder function, you call this anytime you want to add a new particle | |
-- to the system. This will help us centralise every modification as this | |
-- function is the only thing that you will have to modifiy. | |
function add_particle(_x, _y, _sx, _sy, _lifetime, _color, _type) | |
-- create a local temporary particle where we create the data |
-- For this I whipped up my good ol’ reliable approach of having the following functions: | |
-- export the currently drawn map to the clipboard | |
-- I used this in copied .p8 files to draw levels, | |
-- run them and copy the given string into this main | |
-- file's map collection | |
function export_map() | |
-- start with empty string | |
local mapString = "" | |
-- loop over the map tile by tile | |
-- and append tile numbers by , after each other |