kollision - kreis, rechteck

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Apollo30

Betreff: kollision - kreis, rechteck

BeitragMi, Jun 23, 2010 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin dabei bei einem Spiel Kollision einzubauen dafür benutze ich:
Code: [AUSKLAPPEN]
If r <> 1 Then
x1# = info\x+scrollx
y1# = info\y+scrolly
x2# = gpx+breit/2
y2# = gpy+hoch/2
x_ab# = x1# - x2#
y_ab# = y1# - y2#
abstand# = Abs(Sqr((x_ab# ^ 2) + (y_ab# ^ 2)))

x1# = info\x+scrollx
y1# = info\y+scrolly+info\hoch
x2# = gpx+breit/2
y2# = gpy+hoch/2
x_ab# = x1# - x2#
y_ab# = y1# - y2#
abstand1# = Abs(Sqr((x_ab# ^ 2) + (y_ab# ^ 2)))

If abstand# <  breit/2 Or abstand1# <  breit/2 Then
r = 1
Else
r = 2
End If
End If



Mein Problem ist eigentlich ganz einfach bei dem ganzen werden hier beim gehen nach rechts zwei Punkte benutzt oben und unten nur dazwischen kommt man logischerweise durch.

Ich finde einfach keinen weg das zu beheben.

ozzi789

BeitragDo, Jun 24, 2010 9:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Das ganze nennt sich "Lines Intersect" such mal danach Wink
Das ist eine Funktion die prüfen kann ob 2 Linien sich berührern/schneiden.

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Apollo30

BeitragDo, Jun 24, 2010 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du mir eine beschreibung der Funktion geben ich finde den befehl weder hier noch in der wiki.

Außerdem kommt ein neues problem auf mich zu:
Ich habe punkt a und will eine rute nach punkt b berechnen also lass ich mir den winkel geben.
problem ist nur das ich keine formel kenne um den winkel in
0,4x und 0,6y umzurechnen um das dann etwa so auszurechnen:
Code: [AUSKLAPPEN]

if xx > yy then
kordy + 1
yy = yy + y
end if
if yy > xx then
kordx + 1
xx = xx + x
end if


schonmal danke

ozzi789

BeitragDo, Jun 24, 2010 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Die findest du zu genüge auf Google Wink
zB. http://zonalandeducation.com/m...ines1.html


/edit/ achso hab dich falsch verstanden Very Happy
Den Winkel rechnest du so aus
winkel = atan (x,y)


mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
  • Zuletzt bearbeitet von ozzi789 am Do, Jun 24, 2010 19:36, insgesamt einmal bearbeitet
 

Apollo30

BeitragDo, Jun 24, 2010 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso ist also garkeine funktion. Gut ich probiere es einfach einmal.

Ich kann bereits den Winkel ausrechnen mein Problem ist es nur auch was damit anzufangen und x und y zu erstellen wie ich bereits vorher angegeben habe.

Hubsi

BeitragDo, Jun 24, 2010 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
px#=px#+speed*Cos(w#) 
py#=py#+speed*-Sin(w#)

Wobei px bzw. py die Spielerkoordinaten sind und w# der Winkel.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Apollo30

BeitragDo, Jun 24, 2010 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke an euch beide ich war schon am verzweifeln

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group