Hexaverse

Gehe zu Seite 1, 2, 3  Weiter

Worklogs Hexaverse Kommentare

Donnerstag, 23. Februar 2012 um 15:28 Uhr von PSY

@Amazorn
Ich auch. Glaube Du hast mich falsch verstanden Smile
Bei meinem Post gings nur um die Zufallsgenerierung von Namen und Daten. Ich dachte, er kennts vllt noch nicht und kanns brauchen Smile

Donnerstag, 23. Februar 2012 um 12:36 Uhr von Amazorn

@ PSY
ich saube erst und teste und dann schreib ich was. Wink
Ich bin vermutlich der einzige der mit dem Programm nichts anfangen kann?

Elite Name Generator

Mittwoch, 22. Februar 2012 um 22:05 Uhr von PSY

Hoi,

sieht echt klasse aus bis jetzt Very Happy Bin uebrigens auch bekennender Elite, StarTrek und Perry Rhodan-Fan Wink

Es gab hier uebrigens mal ein Topic ueber den Algo, der hinter der Namensgebung der Planeten, Wirtschaftssysteme, Planetenattribute usw von ELITE steckt:
https://www.blitzforum.de/foru...ight=elite

Hoffe das Projekt wird bis zum Ende durchgezogen ^^
Werds jetzt mal saugen und testen Smile

L8er,
PSY

Planlos im Weltraum

Mittwoch, 22. Februar 2012 um 12:39 Uhr von Amazorn

Ich versteh das Spiel nicht. Wenn ich irgendwohin klicke wackelt der Bildschirm und das Icon rumpelt in eine Richtung.
Warum muss man es so kompliziert machen?

Freitag, 13. Januar 2012 um 22:13 Uhr von NathanielBlack

Wann gibt es hier mal wieder etwas zu hören?

Dreiecks-Kollision

Freitag, 9. September 2011 um 20:09 Uhr von ZEVS

Die Dreiecks-Kollision über den Flächeninhalt scheint mir recht unpraktisch, ein paar lineare Ungleichungen (f(x) > ax+b bzw. f(x) < ax+b) täten da ganz gut:
BlitzMax: [AUSKLAPPEN]

Function getLineInfo#[](point1#[], point2#[])     'Rückgabewert: [0] = Steigung, [1] = Y-Achsenabschnitt
'=> pointN[1] = result[0]*pointN[0]+result[1]
Local result#[] = [0.0, 0.0]
result[0] = (point1[1]-point2[1])/(point1[0]-point2[0])
result[1] = point1[1]-point1[0]*result[0]
Return result
End Function
Function pointInPoly%(poly#[][], point#[]) 'NUR konvexe, geordnete Polygone, da lineare Ungleichungen
SetColor 0, 255, 0
Local line#[], cmp1%, cmp2%, third%
For i=1 To poly.length
cmp1 = i Mod poly.length 'cmp1->cmp2 wird mit point verglichen
cmp2 = (i+1) Mod poly.length
third = (i+2) Mod poly.length 'Der 3. Punkt gibt die Seite an, auf der point liegen soll
If poly[cmp1][0] = poly[cmp2][0] Then 'X-Werte gleich => kein getLineInfo möglich
If Sgn(point[0]-poly[cmp1][0]) <> Sgn(poly[third][0]-poly[cmp1][0]) Then
'3. Punkt und Vergleichspunkt auf unterschiedlichen Seiten
Return False
EndIf
Else
line = getLineInfo(poly[cmp1], poly[cmp2])
'=> line[0]*triangle[cmp1/2][0]+line[1] = triangle[cmp1/2][1]
If Sgn(point[1]-(line[0]*point[0]+line[1])) <> Sgn(poly[third][1]-(line[0]*poly[third][0]+line[1])) Then
'3. Punkt und vergleichspunkt auf unterschiedlichen Seiten
Return False
EndIf
EndIf
Next
Return True
End Function



'''TEST'''
Local points#[][] = [[5.0, 0.0], [100.0, 100.0], [100.0, 200.0], [5.0, 300.0]]

Local point#[] = [1.0, 2.0]
Graphics 800, 600
Local poly#[] = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]
For i=0 To 3
poly[i*2] = points[i][0]
poly[i*2+1] = points[i][1]
Next
Local timer:TTimer = CreateTimer(30)
Repeat
WaitTimer timer
point[0] = MouseX()
point[1] = MouseY()
SetColor 255, 255, 255
DrawPoly poly
If pointInPoly(points, point) Then
SetColor 0, 0, 255
Else
SetColor 255, 0, 0
EndIf
DrawOval point[0]-2, point[1]-2, 4, 4
Flip
Cls
Until AppTerminate() Or KeyHit(KEY_ESCAPE)
End

(lauffähig, da mit test)
Die Funktion getLineInfo gibt die Parameter der linearen Gleichung.
Die Funktion pointInPoly gibt zurück, ob sich der Punkt im konvexen, geordneten (gegen oder mit dem Uhrzeigersinn) Polygon befindet. Das Polygon soll hierbei ein zweidimensioneles Array sein, erste Dimension Punkte, zweite Koordinaten. Für je zwei benachbarte Punkte des Polygons wird die lineare Gleichung ermittelt, und geschaut, ob sich ein dritter Punkt des Polygons auf der selben Seite befindet wie der Vergleichspunkt (durch Sgn).
Damit ist auch klar, dass sich kein Punkt genau zwischen seinen Nachbarn befinden darf. Strenge Vorgaben, aber mit einem Sechseck gut einzuhalten.

ZEVS

Samstag, 30. April 2011 um 11:43 Uhr von Xeres

@Silver_Knee
Auch wenn ich 2007 schrieb "Sind coole Namen dabei, wenn ich mal wieder unkreativ bin, werd ich's benutzen" hatte ich es bis dato doch glatt wieder vergessen. Bei Gelegenheit werfe ich da nochmal ein Blick drauf, das Lua Skript kann sicherlich Verbesserungen vertragen.

Samstag, 30. April 2011 um 08:29 Uhr von Silver_Knee

Du kannst die oberen beiden 3ecke und die unteren Beiden in einem 6eck zu einem zusammen fügen und das Prüfen.

PS hast du meinen Namens-Generator genutzt? (Abwechselnd Konsonant/Vokal bei den Planetennamen)

Donnerstag, 14. April 2011 um 09:19 Uhr von Xaron

Super Sache. Bei Deinen Hex-Feldern würde ich das einfach mit einem Kreis annähern. Läuft aufs gleiche hinaus, ist hinreichend genau.

Mittwoch, 13. April 2011 um 23:03 Uhr von Xeres

@darth: Danke dir, aber ich mach eher das, was ich auch selbst gut verstehen kann - und für N-Dimensionale, N-Polygonale Geometrie bin ich zu sehr Hobbyist. Da es keine offensichtlichen Performance Probleme gab/gibt, werd' ich nicht mit Kanonen auf Spatzen schießen. Noch nicht. Wink

Gehe zu Seite 1, 2, 3  Weiter


Kommentar schreiben

Titel:
Text: