Requested:
- Penny the Pumpkin Directors: https://www.lexaloffle.com/bbs/?tid=142093
Me intersted in:
- Vegetables https://www.lexaloffle.com/bbs/?pid=162681#p
| -- 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 |
| -- function to add characters to the game | |
| -- at any point on the map | |
| function add_character(_x, _y) | |
| local p = { | |
| x = _x, | |
| y = _y, | |
| direction = 5, | |
| doReplaceOldTile = false, | |
| replaceTileId = 0 | |
| } |
| -- Or if you don't want to bother with drawing each pickup with every tile aviable to you, you can make them "objects". | |
| --For this, create an array, that will hold all our pickups: | |
| pickupCollection = {} | |
| -- and a function that you can call to add pickups. | |
| -- we include a _type so later you can differentiate them | |
| -- by checking the this. For ex: _type = 1 is a healing item, _type = 2 is a bomb etc... | |
| function add_pickup(_xPosition, _yPosition, _type) | |
| -- we create a local variable to hold the item |