Skip to content

Instantly share code, notes, and snippets.

View mgsx-dev's full-sized avatar

MGSX mgsx-dev

View GitHub Profile
@mgsx-dev
mgsx-dev / Basic3DGame.java
Created May 2, 2020 07:35
Basic libgdx 3D boilerplate
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
import com.badlogic.gdx.graphics.g3d.Environment;
import com.badlogic.gdx.graphics.g3d.Material;
import com.badlogic.gdx.graphics.g3d.Model;
@mgsx-dev
mgsx-dev / UniControl.java
Created April 30, 2020 03:47
Libgdx keyboard abstract controls for ARROWS, WSAD, ZSQD layouts
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
public class UniControl {
public static final int DOWN = 1, RIGHT = 3, UP = 0, LEFT = 2;
// Layouts ARROWS, WSAD, ZSQD
private static final int [][] keyLayouts = {
{Input.Keys.UP, Input.Keys.DOWN, Input.Keys.LEFT, Input.Keys.RIGHT},
@mgsx-dev
mgsx-dev / PixelPerfectViewport.java
Created December 30, 2019 14:24
LibGDX Pixel perfect viewport that scale to integer fraction of your world
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.utils.viewport.FitViewport;
public class PixelPerfectViewport extends FitViewport {
public PixelPerfectViewport(float worldWidth, float worldHeight) {
super(worldWidth, worldHeight);
}
@Override
@mgsx-dev
mgsx-dev / DesktopLauncherWithSplash.java
Created November 6, 2019 22:52
Custom splash screen with Libgdx and Lwjgl3 backend
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
@mgsx-dev
mgsx-dev / BlendingExportDemo.java
Last active February 25, 2021 00:13
How to draw into a FBO with proper blending function and save it to a PNG file
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.PixmapIO;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
@mgsx-dev
mgsx-dev / BatchBenmark.java
Created September 25, 2019 14:45
SpriteBatch VS PolygonSpriteBatch drawing quads benchmark
package com.mygdx;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.badlogic.gdx.graphics.FPSLogger;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.Texture;
@mgsx-dev
mgsx-dev / Fluid.java
Created March 6, 2019 22:47
Libgdx port of Coding Challenge #132: Fluid Simulation : https://www.youtube.com/watch?v=alhpH6ECFvQ
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.MathUtils;
public class Fluid {
public static final int N = 128 / 1;
public static final int SCALE = 1;
public static final int iter = 4; //16 / 8;
@mgsx-dev
mgsx-dev / ImageAnimation.java
Last active January 16, 2019 20:36
libgdx scene2d image with animation capability
import com.badlogic.gdx.graphics.g2d.Animation;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
public class ImageAnimation extends Image
{
private Animation<TextureRegion> animation;
private float time;
protected float speed = 1f;
import com.badlogic.gdx.graphics.g3d.model.NodeKeyframe;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.utils.Array;
public class AnimationControllerBench {
public static void main (String[] args) {
float entropyFactor = 0; // 0 for minimum entropy
@mgsx-dev
mgsx-dev / FBOStageSSCCE.java
Last active October 4, 2018 17:00
How to render stage in a FBO and display it on screen (doesn't work well with screen viewport for now)
package com.mygdx;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.Batch;