Tutorial mit GTA kollision

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

cyby

Betreff: Tutorial mit GTA kollision

BeitragDi, Jan 27, 2004 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich suche eine Tutorial wo das mit einer GTA(sollte klar sein) kollision erklärt wird .
Ich frage weil ich mich in sin und cos nicht auskenne weis zwar das man damit irgentwie winkel berechnen kann oder so Laughing
wäre nett wenn mir da wer einen Link geben könnte

mfg
cyby

BigSnake

BeitragDi, Jan 27, 2004 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Kollision ist dabei auch nicht anders. Sin / Cos brauchst du dabei nur für die Bewegung, nicht für die Kollision

Suco-X

Betreff: ......

BeitragDi, Jan 27, 2004 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde es ziemlich sinnlos das hier nach Tutorials für irgendwelche Spielabschnitte von Games gefragt wird. Schau dir doch die befehle auf blitzbase an. Da liegt doch immer eine erklärung und beispielcode dabei. Lerne daraus zu lernen. Nur weil sich das internet immer weiter Verbreitet heißt es nicht das du nicht mal selbstständig paar Sachen rausfinden kannst. Früher gabs noch kein Internet und es hat mit dem erlernen einer Programmiersprache ja auch geklappt, auch wen das hieß mal 6-7 Stunden lang an einem Problem zu sitzen. Und heute kriegst du ja schon eine einfache Sprache + Jede menge kostenlose Hilfe. Also helf dir selber, hast deinen Verstand ja nicht umsonst bekommen.
bye
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

cyby

BeitragDi, Jan 27, 2004 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
nun jut dann werde ich mal schauen, kann mir villeicht wer sagen welcher befehl dafür denn am besten ist ?

ViciouS

BeitragDi, Jan 27, 2004 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
welcher befehl????

für ne gta steuerung + kollision brauchst du mehr als einen befehl...

wie gesagt sin + cos sind wichtig
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing
 

cyby

BeitragDi, Jan 27, 2004 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe jetzte eine steuerrung und brauche noch eine kollision und ich weis nicht wie die aussehen muss , also welche befehle braucht man da dann ?(gibt es doch sicher irgentwelche oder ...)

Mike Nike

BeitragMi, Jan 28, 2004 2:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm...falls du mit "Kollision" nur auf die Kollisionsabfrage hinaus willst kann ich dich mit dem Befehl ImagesCollide zufrieden stellen, denke ich.
Aber ich habe das unglückliche Gefühl, du willst gleich den kompletten Code für den ganzen physikalischen Stoßprozess, genau wie bei GTA, haben.
Falls du darauf hinauswillst, es gibt einige Tutorials dafür - es ist nur die Frage, welche Features du in deine Autobewegungen einbaust und ob sie 2D oder 3D sind und jenachdem...in wie weit du die Komplexität dieses physikalischen Problems, z.B. durch Vernachlässigung von Massen, reduzierst/reduzieren möchtest.

Google mal nach "rigid body dynamics" oder nach "car physics".
Ich glaube, da kannst du was brauchbares finden.
Ich habe sie vor nicht allzulanger Zeit mal angesehen, habe aber nicht viel Neues herausgefunden, da ich mich im Vorhinein schon mit dem Problem länger auseinandergesetzt habe und auf gut Deutsch das Rad neu erfand...
Spasseshalber habe ich auch ein Tutorial mal auf deutsch übersetzt, aber ich glaube auch nur zum Teil. Aber gebracht hats nicht viel, da das Englisch sowieso sehr einfach war...
..where the only limit is your imagination.

Mattis_the_brain

BeitragMi, Jan 28, 2004 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... Collision? Na ja im eigendlichen ist es ganz einfach.

Kollisions Abfrage zwischen Auto und jedem festen Gegenstand wo das auto gegenfahren kann. Das machst du am besten mit hilfe einer Schleife die alle objekte Prüft. So das ist erst mal der rechenaufwendige teil jetzt kommt der teil mit dem du das Auto anhältst wenn es irgendwo gegen fährt. Also speicher die x und y Position deines Autos und ändere sie dann mit deiner "Bewegungsformel"

Weis ich so in etwa wir das bei dir wohl aussehen:
x=x+cos(winkel)*speed
y=y+sin(winkel)*speed

Da nach wie gesagt prüfen ob dein auto wo gegen fährt wenn ja dann einfach deine Autoposition wieder auf die alten gespeicherten werte zurücksetzen. Verstanden? Hmmm... ....so wie ichs erklärt hab bestimmt nicht also...


Code: [AUSKLAPPEN]

;Eine Box Gegen die der Spieler gegen fahren kann
Type box
   Field x, y
   Field b, h
End Type

;Variablen für die Auflösung
Global grafx=1024
Global grafy=768

;Variablen für den Spieler
Global Px#, Py#, wi, sp

;zehn Boxen werden zufällig erstellt
For x=1 To 10
   CreateBox(Rand(0, grafx), Rand(0, grafy), Rand(10, 200), Rand(10, 200))
Next

;Grafikmodus wird gesetzt
Graphics(grafx, grafy, 16, 1)

;setzt den Buffer auf den gezeichnet werden soll fest
SetBuffer BackBuffer()
;beginn der Hauptschleife
While KeyHit(1)=0
   
   ;Winkel ändern
   If KeyDown(205) Then wi=wi+3
   If KeyDown(203) Then wi=wi-3
   If wi>360 Then wi=0
   If wi<0 Then wi=360
   
   ;vorwärts fahren?
   sp=KeyDown(200)*3
   ;rückwärts fahren?
   If sp=0 Then sp=0-KeyDown(208)*3
   
   ;Speichern der Spielerposition
   OPx=Px
   OPy=Py
   
   ;berechen der neuen Spielerposition
   Px=Px+Cos(wi)*sp
   Py=Py+Sin(wi)*sp
   
   ;wenn wo gegen gefahren dann die Spielerposition zurück setzen
   If Kollision()=1 Then
      Px=OPx
      Py=OPy
   EndIf 
   
   ;alles schwartz streichen^^
   Cls
   
   ;die boxen malen
   RenderBox()
   ;den Spieler malen
   Rect Px, Py, 32, 32, 0
   ;Den richtungspfeil malen
   Line Px+16, Py+16, Px+16+Cos(wi)*10, Py+16+Sin(wi)*10
   
   Flip
Wend
End

Function Kollision()
   ;eine Schleife die alle Boxen abfragt
   For box.box=Each box
      ;wenn Kollision dann gebe eins zurück
      If RectsOverlap(Px, Py, 32, 32, box\x, box\y, box\b, box\h) Then Return 1
   Next
End Function

;Function zum erstellen einer Box
Function CreateBox(x, y, b, h)
   box.box=New box
   box\x=x
   box\y=y
   box\b=b
   box\h=h
End Function

;zum zeichnen der Boxen
Function RenderBox()
   For box.box=Each box
      Rect(box\x, box\y, box\b, box\h, 0)
   Next
End Function
 

cyby

BeitragMi, Jan 28, 2004 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
danke euch ... habe jetzte die erste Demo Very Happy
gleich mal von slayer testen lassen was der meint ^^

Mattis_the_brain

BeitragMi, Jan 28, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hoffe doch das dus auch verstanden hast und nicht einfach meinen Code zurecht geschnitten hast Exclamation
 

cyby

BeitragMi, Jan 28, 2004 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ne, ich hatte schon bevor du mit dem code kamst die kolli Wink
 

HOT-BIT

Gast

BeitragMi, Jan 28, 2004 20:12
Antworten mit Zitat
...

LOL !

Also, warum helfen. wenn sie sowieso alles besser und schneller können Smile

Toni

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group