Kollisionen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

PhillipB

Betreff: Kollisionen

BeitragSo, Feb 27, 2011 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich entschuldiege mcih an dieser Stelle noch einmal für meine codebrocken!
Ich hab ein problem mit dem Kollisioenen.
Ich fahre mit einem Bus eine straße herunter zu erst ist sie gerade und dann geht sie nach unten.
Doch der Bus geht ersteinmal nach oben und dann einfach gerade aus.
Diesen code könnt ihr leider nicht testen aber ich habe cam und so eingebaut.
Code: [AUSKLAPPEN]

Graphics3D 1920,1080,32, 1
SetBuffer BackBuffer()
cam1=CreateCamera(O405)
PositionEntity cam1, -2.2355, 1.7946 , 6.6
RotateEntity cam1, 20, 0, 0


map = LoadMesh("Strecken/map2.3ds")
EntityType map, 2
O405=LoadMesh("O405\O405.3ds")
EntityType O405, 1

;Kollis
Collisions 1, 2, 2, 3

While Not KeyHit (1)

RenderWorld   
;Gas geben
If KeyDown (200) Then
speed# = speed# + 0.0005
EndIf

;Bremsen
If KeyDown (208) Then
speed# = speed# - 0.001
EndIf

UpdateWorld
Flip
Wend
End



Ich hoffe ihr könnt/woll mir noch helfen.
mfg
PhillipB.
 

PacMani

BeitragSo, Feb 27, 2011 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist der ganze Code? Du bewegst den Bus überhaupt nicht.

PhillipB

BeitragSo, Feb 27, 2011 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohh sry ich hatte mehrere bb ´s sry hier ist der ganze code Embarassed
Code: [AUSKLAPPEN]
[code]
Graphics3D 1920,1080,32, 1
SetBuffer BackBuffer()
cam1=CreateCamera(O405)
PositionEntity cam1, -2.2355, 1.7946 , 6.6
RotateEntity cam1, 20, 0, 0


map = LoadMesh("Strecken/map2.3ds")
EntityType map, 2
O405=LoadMesh("O405\O405.3ds")
EntityType O405, 1

;Kollis
Collisions 1, 2, 2, 3

While Not KeyHit (1)

RenderWorld   
;Gas geben
If KeyDown (200) Then
speed# = speed# + 0.0005
EndIf

;Bremsen
If KeyDown (208) Then
speed# = speed# - 0.001
EndIf

MoveEntity  Model,  0, 0,speed#

UpdateWorld
Flip
Wend
End

[/code]
 

PacMani

BeitragSo, Feb 27, 2011 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, und was ist dann die Variable Model?

Wenn du schon nur Teilcode postest, dann die richtigen Teile!!!!!!!!!!!!!!!

PhillipB

BeitragSo, Feb 27, 2011 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
misst schon wieder ein Fehler so jertz is aber richtig!
Code: [AUSKLAPPEN]
[code]
Graphics3D 1920,1080,32, 1
SetBuffer BackBuffer()
cam1=CreateCamera(O405)
PositionEntity cam1, -2.2355, 1.7946 , 6.6
RotateEntity cam1, 20, 0, 0


map = LoadMesh("Strecken/map2.3ds")
EntityType map, 2
O405=LoadMesh("O405\O405.3ds")
EntityType O405, 1

;Kollis
Collisions 1, 2, 2, 3

While Not KeyHit (1)

RenderWorld   
;Gas geben
If KeyDown (200) Then
speed# = speed# + 0.0005
EndIf

;Bremsen
If KeyDown (208) Then
speed# = speed# - 0.001
EndIf

MoveEntity  O405,  0, 0,speed#

UpdateWorld
Flip
Wend
End

[/code]
 

PacMani

BeitragSo, Feb 27, 2011 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Schwerkraft wird nichts die Straße runtergehen.

PhillipB

BeitragSo, Feb 27, 2011 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann man eine machen?
 

dont_know_to_use

BeitragSo, Feb 27, 2011 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Programmieren kann man die

PhillipB

BeitragSo, Feb 27, 2011 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja schon kal hat einer ein Tutorial ?

Xeres

Moderator

BeitragSo, Feb 27, 2011 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Schwerkraft bedeutet, dass lose Objekte in eine Richtung (beschleunigt) bewegt werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

TimBo

BeitragSo, Feb 27, 2011 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
du verschiebst ein Objekt nach unten, indem man die Y-Werte erhöht.

Um welchen Faktor und dass mit dem 1/2 g t² ist auch erstmal egal.

Einfach bei den Draw-Befehlen den Y-Wert erhöhen.
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Midimaster

BeitragMo, Feb 28, 2011 0:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfaches Modell:

ändere mal in einem ersten einfachen Schritt das...

BlitzBasic: [AUSKLAPPEN]
MoveEntity  O405,  0, 0,speed#


in ein....


BlitzBasic: [AUSKLAPPEN]
....
MoveEntity O405, 0, -0.1,speed#
....


damit kriegt der Bus ständig eine Verschiebung nach unten. So wie eben Erdanziehung wirkt. Folge ist, dass jetzt der Bus auf die Straße gedrückt wird und wenn die Collisionen richtig eingestellt sind kann er auch nicht durch sie durch.

Wenn nun die Straße nach unten wegknickt, "fällt" ihr der Bus hinterher und landet dann wieder auf ihr. So wie in amerik. Actionstreifen. Je größer Du den Y-Wert wählst, desto heftiger wird er auf die Straße gedrückt. Experimentiere mit verschiedenen Werten.



Modell mit "Beschleunigung".

Im vorherigen Modell fällt der Bus mit der konst. Geschwindigkeit 0.1. In der Realität würde aber etwas, das fällt, immer schneller fallen. (->Beschleunigung). Dies kannst Du in deinem code so verwirklichen:

BlitzBasic: [AUSKLAPPEN]
....
Gravi=Gravi+0.01
MoveEntity O405, 0, -Gravi#,speed#
....


Jetzt musst Du aber zusätzlich abfragen, ob den überhaupt ein Fall stattgefunden hat. Wenn der nämlich nicht möglich war (z.b. weil der Bus aktuell auf einer waagrechten Straße fährt, oder die Straße sogar ansteigt, dann fängt das Ganze von vorne an:

BlitzBasic: [AUSKLAPPEN]
....
Gravi=Gravi+0.01
MoveEntity O405, 0, -Gravi#,speed#
GeplantBusY#=EntityY(O405)
.....
UpdateWorld
If GeplantBusY#<EntityY(O405) Then
Gravi=0
EndIf
....

PhillipB

BeitragMo, Feb 28, 2011 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@Midimaster beim 2 Modle rutscht der Bus einfach durch den Boden!+Abe alles genaustens übernommen außer bei gravi haste bei mehreren # vergessen aber habe ich dazu gefügt!

BlitzMoritz

BeitragMo, Feb 28, 2011 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
PhillipB hat Folgendes geschrieben:
´...bei gravi haste bei mehreren # vergessen aber habe ich dazu gefügt!
Deine fleißigen Korrekturen des fehlerhaften Codes erfahrener User entbehren nicht einen gewissen Unterhaltungsfaktor. Hast du's auch einmal ohne deine Korrekturen probiert? Hmmm, dann ändert sich nichts, oder? Aber du weißt ja bestimmt, warum. Wenn nicht, probier mal
BlitzBasic: [AUSKLAPPEN]
Zahl = 1.5
Print Zahl
AndereZahl# = 1.5
Print AndereZahl ;fehlt hier wirklich ein #???
Merkst du was?
Kümmer' dich doch wirklich erst einmal um die Basics, z.B. hier.

PhillipB

BeitragMo, Feb 28, 2011 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehh das beispeil verstehe ich ned!
ich musste es verbessern sonst kommt doch type mismatch Wink

skey-z

BeitragMo, Feb 28, 2011 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMoritz meint, dass du nur beinm ersten Aufruf einer Variablen den Datentyp festelgen muss, bei jedem weiteren aufruf weiß BB von welchem Datentyp eine Variable ist.

Der Übersicht wegen sollte man aber bei jeder Verwendung den Datentyp mit angeben, da man so schnell Fehler ausschließen kann, gerade wenn der Code länger wird und somit unübersichtlicher.

Code: [AUSKLAPPEN]

Zahl = 1.5
Print Zahl#
AndereZahl# = 1.5
Print AndereZahl

Hier würde bei "Zahl#" ein Type mismatch auftreten, da Zahl als Integer definiert wurde und es somit kein Float sein kann.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

PhillipB

BeitragMo, Feb 28, 2011 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok vielen dank aber das kommt ja nicht zu meinenm Problem der Bus sinkt einfach in den boden ein!

Xeres

Moderator

BeitragMo, Feb 28, 2011 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du auch mit EntityBox oder EntityRadius gearbeitet?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

PhillipB

BeitragMo, Feb 28, 2011 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch nciht so richtig ich habe gedacht midimasters code fürde eig fuktionieren !

skey-z

BeitragMo, Feb 28, 2011 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Und das ist dein großes Problem, du verlässt dich darauf, dass andere dir deinen Code in mundgerechten Stücken servieren, ein wenig eigeninitative und mal nachschauen was welcher Befehl bewirkt und welche verwandten Befehle es gibt.
Wozu haben sich hier einige User die Mühe gemacht Tutorials bzw. die komplette Hilfe zu schreiben.

Wie BlitzMoritz schon sagte, fang noch mal mit den Basics an, versuche erst einmal einen Pong- oder Breakout-Klon zu erstellen, dabei lernst du mehr, als wenn du solche sachen wie in den letzten 3 Themen versuchst.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group