• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Zufällige X,Y,Z Koordinaten

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Hallo,ich wollte gerne programmieren,dass ein Spieler zu einer zufälligen Position tpt wird,diese Koordinaten müssen dann aber in einem Quadrat zwischen zwei Koordinaten liegen,wäre nett wenn mir jemand helfen könnte!

mfg YellowPhoenix18
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Ziemlich simple:

Definitionen
p1 := Punkt 1
p2 := Punkt 2

vk := Ortsvektor der kleinste Position
vm := Ortsvektor der größte Position
vd := Differenz von vk und vm

xN := X-Pos. von N
yN := Y-Pos von N
zN := Z-Pos von N


Bestimmen von va / vb:
X-Position = minimum / Maximum von x1 und x2
Y-Position = minimum / Maximum von y1 und y2
Z-Position = minimum / Maximum von z1 und z2

Differenzvektor bilden:
vd = vm - vk

Koordinaten bestimmen:
m = vd(x | y | z) // Ensprechende Koordinate bekommen
return random.nextInt(m) + vm(x | y | z); // wie oben auch
 

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Ok,danke an euch beide,leider verstehe ich die Methode von Howha nicht so gut und würde mich drüber freuen,wenn manf mir nen kleinen Code schicken kann.
P.S. versuche mich hier das erste mal an soetwas,habe generell noch nicht so viele Kentnisse.

Danke im vorraus.

mfg YellowPhoenix18
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Ich erkläre hier nur die mathematischen Grundlagen.

Howha hat einen Code gezeigt, der dir einen zufälligen Wert zwischen low und high zurückgibt.

Dies kannst du dann praktisch benutzen, wenn du den Min und den Max Vektor hast.

Geht also etwas einfacher, wenn man diesen Trick benutz, also es wie ich beschrieben habe über die simplere Methode.

Code:
double minX = Math.min(a.getX(), b.getX());
//...
Vector min = new Vector(minX, minY,minZ);
Vector max = new Vector(maxX, maxY, maxZ);
// Siehe Hohwas post
double rX = myRandom(min.getX(), max.getX());
Vector to = new Vector(rX, rY, rZ);
 

Howha

Redstoneengineer
Registriert
10 April 2013
Beiträge
42
Diamanten
0
Minecraft
Howha
So wie ich das verstehe, möchte @Yellowphoenix18 einfach eine Location innerhalb eines bestimmten Quadrats. Das heißt, er hat je einen minimalen und maximalen Wert von X und Z.

Dann kann man das doch einfach so lösen, oder nicht?

Code:
public Location getRandomLocation(World world, int minx, int maxx, int y, int minz, int maxz) {

  int x = myRandom(minx, maxx); // Methode von oben
  int z = myRandom(minz, maxz);

  return new Location(world, x, y, z);

}
 
Oben