Hier will ich euch die Robot Class von Java näher bringen, denn mit ihr kann man eniges Anfangen was man auch für Bots nutzen kann wie die Attacken durch Tastendrücken ausführen, Pixel auslesen um z.b den HP Status dadurch zu erkennen usw.
1. Was ist die Robot Class und was kann sie ?
2. Aller Anfang ist leicht
2.1 Die Robot Class einbinden
2.2 Ein Robot Objekt erstellen
3. Pixel Auswertung und Bearbeitung
4. Übernimmt die Kontrolle !
4.1 Die Maus
4.2 Die Tastatur
4.3 Delay
5. Anmerkung
1. Was ist die Robot Class und was kann sie ?
Die Robot Class stammt von der AWT Class von Java ab, ihre eigenschaft ist es das sie die Kontrolle über die Maus und Tastatur übernehmen kann und man somit einiges Anstellen kann. Außerdem kann sie auch dazu dienen den Bildschirm nach Pixel abzusuchen und zu bestimmen.
Die Robot Class besitzt dazu enige Methoden welche man gut in dieser Grafik sehen kann:
Was die Methoden genau machen werd ich gleich erklären.
2. Aller Anfang ist leicht
2.1 Die Robot Class einbinden
Um die Robot Class überhaupt nutzen zu können muss man die KLasse ersteinmal in unser Programm einbinden, dies geschiet unter Java mit dem "import" Befehl.
Da die Robot Class zu "AWT" gehört schreiben wir:
Code:
import java.awt.Robot;
2.2 EIn Robot Objekt erstellen
Um die Methoden der Robot Klasse nutzen zu können muss man vorher ein Objekt erstellen, dieses Objekt ist die Schnittstelle für unsere Werte die wir übergeben wollen und den Methoden der Klasse.
Dafür schreiben wir:
Code:
Robot Robo = new Robot();
3. Pixel Auswertung und Bearbeitung
Da Bots öfters mal die Pixel aus dem Bildschirm Auslesen müssen sind unsere Robot Methoden perfekt dafür geeignet.
Dafür verwenden wir folgende Methode:
Code:
Robo.getPixelColor(x, y);
Doch um diese Farben speichern zu können brauchen wir noch eine Variable welche auch unsere Daten speichern kann. Dies geht nur durch ein Objekt der Klasse Color. Wie bei Robot müssen wir zuerst die Klasse importieren:
Code:
import java.awt.Color;
Code:
Color Pixel = new Color(0,0,0);
So jetzt wieder zum Eigentlichen Thema dem Pixel auslesen.
Damit unsere getPixelColor Methode weiß von wo sie Überhaupt die Pixel auslesen soll müssen wir ihr Koordinaten übergeben, dies machen wir durch den x und y wert. Wir können entwerder Direkt Werte in die Klammern setzen, oder wir werden Variablen dafür.
Hier zwei Beispiele:
Code:
Pixel = Robo.getPixelColor(100, 100);
Code:
int x = 150, y = 200; Pixel = Robo.getPixelColor(x, y);
Doch was kann man damit jetzt Anstellen ?
Man kann damit auf bestimmte Sachen reagieren wie zum Beispiel wir Wissen das falls an einer Stelle die Farbe Rot auftaucht er das Programm beenden soll.
Code:
Color Rot = new Color(100,0,0);
Color Pixel = new Pixel(0,0,0);
Pixel = Robo.getPixelColor(100, 100);
if(Rot.equals(Pixel))
System.exit();
4. Übernimmt die Kontrolle !
4.1 Die Maus
Wie schon gesagt können wir auch die Kontrolle der Maus übernehmen um z.b bestimmte Knöpfe drücken zu lassen. Dafür nutzen wir die Methoden:
Code:
Robo.mouseMove(x, y); Robo.mousePress(buttons); Robo.mouseRelease(buttons);
Um wieder was anschauliches zu haben ein kleines Beispiel:
Code:
Robo.mouseMove(100,300);
Code:
int x = 200, y = 600; Robo.mouseMove(x,y);
Und jetzt Kombinieren wir das ganze mit unseren Maustasten gedrücke =) Vorher müsst ihr aber wieder mal was importieren um die Maustasten nutzen zu können:
Code:
import java.awt.event.InputEvent; import java.awt.event.MouseEvent;
Code:
Robo.mouseMove(100,300); Robo.mousePress( InputEvent.BUTTON3_MASK ); Robo.mouseRelease(InputEvent.BUTTON3_MASK );
4.2 Die Tastatur
Das gleiche wie mit der Maus können wir auch mit der Tastatur anstellen, nur das wir hier auch mehrere Tasten gleichzeitig drücken lassen können um zum Beispiel ein Alt + F4 drücken zu lassen.
Für die Tastatur verwenden wir folgende Methoden:
Code:
Robo.keyPress(keycode); Robo.keyRelease(keycode);
Ein einfaches Beispiel:
Code:
Robo.keyPress(KeyEvent.VK_V); Robo.keyRelease(KeyEvent.VK_V);
Dies kann man unendlich oft wiederholen lassen mit einer while schleife, oder einfach in dem man die Events hintereinander wiederholt:
Code:
Robo.keyPress(KeyEvent.VK_H); Robo.keyRelease(KeyEvent.VK_H); Robo.keyPress(KeyEvent.VK_a); Robo.keyRelease(KeyEvent.VK_a); Robo.keyPress(KeyEvent.VK_l); Robo.keyRelease(KeyEvent.VK_l); Robo.keyPress(KeyEvent.VK_l); Robo.keyRelease(KeyEvent.VK_l); Robo.keyPress(KeyEvent.VK_o); Robo.keyRelease(KeyEvent.VK_o);
Code:
Robo.keyPress(KeyEvent.VK_ALT); Robo.keyPress(KeyEvent.VK_F4); Robo.keyRelease(KeyEvent.VK_ALT); Robo.keyRelease(KeyEvent.VK_F4);
4.3 Delay
Da wir bis jetzt die Tasten, die Maus und die Pixelabfragen immer gleich beendet haben, haben wir meistens nicht viel davon.
Das beste Beispiel dafür ist falls wir wollen das sich unsere Spielfigur bewegen soll, falls wir
Code:
Robo.keyPress(KeyEvent.VK_w); Robo.keyRelease(KeyEvent.VK_w);
Dafür gibt es die Delay Methode:
Code:
Robo.delay(ms);
Code:
Robo.keyPress(KeyEvent.VK_w); Robo.delay(2000); Robo.keyRelease(KeyEvent.VK_w);
Dies kann man an sich für alles Verwenden.
5. Anmerkung
Ich habe hier nicht alle Methoden gezeigt weil man diese für den Anfang gar nicht braucht, doch die wichtigsten Sachen sind dabei um anzufangen mit der Klasse rumzuspielen, doch dies sind nur die Grundlagen um damit ein Bot schreiben zu können muss man noch viele andere Dinge einsetzen wie Keyevents usw.
Ihr solltet beim Ausprobieren darauf Aufpassen was ihr Codet! Falls ihr auf die Idee kommt sowas wie zu schreiben:
Code:
do
{
Robo.keyPress(KeyEvent.VK_w);
Robo.keyRelease(KeyEvent.VK_w);
}
while(true);
Viel spaß !
mfg
obi







