Processing vizualizációs könyvtár beállítása Java-ban

Processing vizualizációs könyvtár beállítása Java-ban

Processing vizualizációs könyvtár beállítása Java-ban

Loading Likes...

Egy program írása során gyakran előfordul, hogy valami grafikus elemeket szeretnénk megjeleníteni, főleg, ha az adott program egy játék, játékot kijátszó program, vagy szimuláció. Mindezekhez az eddigi legjobb könyvtár, amit találtam a Processing nevű library, amit többek között kiadtak JavaScriptre (webre), Pythonra, és Java-ra is.

Ebben a Java-ban való használatát mutatom be a rendszernek, de mielőtt belekezdenénk, mutatok pár képet az így elkészült programokról futás közben:

Coding Tomorrow Cup
Coding Tomorrow Cup 2019 – Önvezető autó irányítása
2D-s Rubik kocka játék && meg
oldó
Android élő háttérkép

1. Processing Core Library letöltése

Meglévő vagy új projektünkbe be kell importálni a Processing Core könyvtárat. Erre több út is nyílik, az egyik, hogy letöltjük a könyvtár .jar kiterjesztésű fájlját, és beimportáljuk a Project Structure (ctrl+shift+alt+S) –> Libraries menüben:

A másik mód a beimportálásra egy csomagkezelő szolgáltatás használata, de ha ezzel a kifejezéssel tisztában vagy, akkor szerintem elég belinkelnem a processing Maven repository-ját: https://mvnrepository.com/artifact/org.processing/core

A Drawer osztály létrehozása

A programozásban van egy olyan elv, hogy ami egybe tartozik, az a programban is legyen egyben, viszont amiknek semmi köze egymáshoz, azokat jól szeparáljuk el. Ezért minden grafikus program írása elején létre szoktam hozni egy Drawer class-t, ami extend-eli a PApplet osztályt a Processing Library-ből. Ezen a class-on belül írok meg minden olyan függvényt, ami a megjelenítést végzi el (például egy autó kirajzolása x, y koordinátákra, vagy egy animáció lekezelése). A Drawer class-om alapesetben így szokott kinézni, aztán ebbe írom bele a plusz függvényeket:

package hu.johetajava;

import processing.core.PApplet;

public class Drawer extends PApplet {

    static final String title = "Processing...";
    static final int width = 600;
    static final int height = 600;

    /* A kód elején lefutó blokk, minden inicializálást itt végezzünk el, ami a megjelenítéshez szükséges (ez automatikusan meghívódik) */
    public void setup() {

        // Az ablak címének beállítása
        surface.setTitle(title);

    }

    /* Hasonló a setup-hoz, de van pár függvény, amit csak itt enged lefuttatni */
    public void settings() {
        /* Belerakjuk a példányt egy statikus változóba, hogy bárhonnan elérhető legyen */
        Main.drawer = this; 

        // Ablak méretének beállítása
        size(width, height);

    }

    /* Minden frame-ben lefut egyszer. Itt hívhatunk meg kirazjoló függvényeket, vagy figyelhetjük a felhasználó által kiadott bemeneti paramétereket. */
    public void draw() {
        // Lefestjük az egész ablakot pirossal - visszaállítjuk a héttérszínt
        background(color(255, 0, 0));

        // Egy random kört rajzol minden frame-ben
        circle(random(width), random(height), random(30));
    }
}

Ezt a kódot használhatod minden programodban, de bővítheted például egy Colors osztállyal, ahol definiálod a gyakran használt színeidet.

A main függvényben így kell hivatkoznod a Drawer osztályra minden kódod elején, hogy inicializáld:

package hu.johetajava;

import processing.core.PApplet;

public class Main {
    public static Drawer drawer;

    public static void main(String[] args) {
        PApplet.main(Drawer.class, args);

        // A drawer class használata...
        drawer.carsToDraw.add(new Car(10, 20, Colors.RED));
        
        ...
    }
}

A könyvtár használatáról és az előre megírt hasznos függvényeiről itt tudhatsz meg többet: https://processing.org/reference/

Leave a Comment

Az email címedet nem tesszük publikussá. A kötelező mezők *-ként vannak jelölve.

Show Buttons
Hide Buttons