Skip to content

Instantly share code, notes, and snippets.

View KinoAR's full-sized avatar
🏠
Working from home

Kino KinoAR

🏠
Working from home
View GitHub Profile
@KinoAR
KinoAR / DepotMacros.hx
Last active June 23, 2021 13:39
Macro for Depot that turns your database elements/spreadsheet rows into a part of your code base.
package macros;
#if macro
import haxe.DynamicAccess;
import Types.DepotFile;
import sys.io.File;
import sys.FileSystem;
import haxe.macro.Expr.Field;
import haxe.Json;
import haxe.macro.Context;
@KinoAR
KinoAR / AsepriteBuildMacro.hx
Created June 6, 2021 15:36
Aseprite Build Macro example.
package buildMacros;
import Structs.ZoomT;
import sys.FileSystem;
#if macro
import Structs.ChangeColorT;
import Structs.ChangeBrushT;
import haxe.macro.ExprTools;
import haxe.macro.Expr.Field;
import haxe.macro.Context;
@KinoAR
KinoAR / RMMVNodejs1-3.js
Created May 19, 2017 05:42
RMMV Node.js tutorial for reading/writing files
//=============================================================================
// RMMVNodeP1.js
//=============================================================================
/*:
* @author PluginDev
* @plugindesc A plugin to read and write files using Node.js
*
*/
(function () {
@KinoAR
KinoAR / CollisionFix.hx
Created May 14, 2021 00:29
The fix for your collision detection problems in Flixel.
/*
* From The Flixel Documentation
* The dimensions of the game world, used by the quad tree for collisions and overlap checks.
* Use .set() instead of creating a new object!
* ------
* By updating the value of this element, we can fix our collision detection once again.
* Best to call this in your update function.
*/
FlxG.worldBounds.set();
@KinoAR
KinoAR / SetScreenPosition.hx
Created May 2, 2021 01:10
An example extension for translation of a screen position into a world position for FlxObjects.
import flixel.FlxCamera;
import flixel.FlxObject;
//Sets the screen position of a FlxObject using setPosition(which is in world coordinates)
function setScreenPosition(obj:FlxObject, point:FlxPoint, ?camera:FlxCamera) {
if (camera == null) {
camera = FlxG.camera;
}
if (obj.pixelPerfectPosition) {
@KinoAR
KinoAR / FlixelExample.hx
Created May 2, 2021 00:32
Example Function for getting the Screen Position. This is directly from the Flixel Code Base.
/**
* Call this function to figure out the on-screen position of the object.
*
* @param Point Takes a `FlxPoint` object and assigns the post-scrolled X and Y values of this object to it.
* @param Camera Specify which game camera you want.
* If `null`, it will just grab the first global camera.
* @return The Point you passed in, or a new Point if you didn't pass one,
* containing the screen X and Y position of this object.
*/
public function getScreenPosition(?point:FlxPoint, ?Camera:FlxCamera):FlxPoint
@KinoAR
KinoAR / ObjectPoolingExample.hx
Last active April 29, 2021 01:55
How to do Object Pooling in Flixel
import flixel.FlxState;
import flixel.group.FlxGroup;
import flixel.FlxSprite;
import flixel.util.FlxColor;
class PlayState extends FlxState {
//bullet group for holding player bullets
public var playerBulletGrp:FlxTypedGroup<FlxSprite>;
public static inline var PLAYER_BULLET_CAP:Int = 20;
override public function create() {
@KinoAR
KinoAR / EnumDirection.hx
Created April 21, 2021 11:13
Haxe simple example of using enums.
enum Direction {
Left;
Right;
Up;
Down;
}
function main() {
currentDirection(Left);
currentDirection(Right);
@KinoAR
KinoAR / PipeRest.hx
Last active April 21, 2021 00:40
Haxe Simple Pipe Example
import haxe.Rest;
function main() {
var result = pipe('A',
(val:String) -> val.toUpperCase(),
(val2:String) -> val2 += " " + "World");
trace(result); //A World
}
@KinoAR
KinoAR / SumRest.hx
Created April 21, 2021 00:32
Haxe Rest Summation Example
import haxe.Rest;
function main() {
trace(sum(1, 2, 3));
trace(sum('Hello', ' World'));
}
function sum(...rest:Dynamic) {
var result = null;
for(element in rest) {