Springen auf Terrain

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen

 

Stani

BeitragMo, Apr 19, 2010 10:07
Antworten mit Zitat
Benutzer-Profile anzeigen
So jetzt bin ich gerade an dem Schuss dran.Dazu hab ich mir ein Type erstellt mit x,y,z,speed
Aber irgendwie weiß ich nicht ,wie ich das machen soll.Im Forum gibts auch viele Threads aber irgendwie versteh ich das nicht so.
Kann mir das einer erklären??

Danke

Midimaster

BeitragMo, Apr 19, 2010 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ein Schuss gliedert sich in 3 Phasen.

In deiner Steuerung() kannst du ihn nur lostreten. Meist ist der Schuss ein Sprite oder ein eigenes 3D-Objekt. Er wird als Child der Waffe geboren und fliegt dann einen ersten Schritt in genau in die z-Richtung der Waffe. Dann löst du die Parent-Child Beziehung. Dann schaltst du die Waffe für einige msec tot, sonst kommen gleich zu viele Schüsse raus.

In der zweiten Phase fliegt er alleine in seine z-Richtung. Damit fliegt er genau dahin, wohin die Waffe beim Abschuss gezeigt hat. Dieser Code wird nicht mehr als Teil der Steuerung() geschrieben. Mach eine eigene Funktion. Spätestens jetzt sollte er auch einen EntityType bekommen und die Collisions() werden abgecheckt.

In der dritten Phase trifft er auf was. Das wird aber meist in einer Kollisions()-Funktion entdeckt und da wird reagiert: Gegner stirbt, Schuss auch. Wenn er nix trifft wird er nach x msec automatisch deleted.
 

Stani

BeitragMo, Apr 19, 2010 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich hab bei meiner Minugun einen timer gemacht.Die soll sich drehen und ich glaub jede 60 millisecs(oder sowas) geht der Ton an vom Schuss.

Aber wie soll ich die den kopieren oder so wenn ich in der secunde mehrfach schieße.dan muss ich ja die ganze Zeit Kugel2=copyentity....kugel3=copyentity.......

Beispiel code währe hilfreich:D
 

Stani

BeitragMo, Apr 19, 2010 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich hab jetzt mal sowas gemacht und es fuzt auch.Da hab ich x,y,z und die muss ich irgendwie zur Waffe hinzufügen(parent).Mit entityx,y,z geht das nicht,weil der ja nur den Anfagswert anzeigt.Und mit createcylinder hab ich das Geschoss gemacht und in die Klammern kann man nicht Waffe reintun ,da da steht illegal segment oder sowas(nicht memory).

Wie kann man das noch machen??

Midimaster

BeitragMo, Apr 19, 2010 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, wenn nur ein Schuss zu einer Zeit losfliegen soll ist es leichter:

BlitzBasic: [AUSKLAPPEN]
Global Schuss

;beim Start:
Schuss=CreateCylinder(8,1,waffe)
MoveEntity Schuss, 0,0,0.1
EntityParent Schuss,0

;während des Flugs
MoveEntity Schuss 0,0,0.1



wenn gleichzeitig mehrere Schüsse fliegen können sollen, must du schon mit Typen arbeiten:

BlitzBasic: [AUSKLAPPEN]
Global SchussVorlage=CreateCylinder(8,1)

Type SchussTyp
Field Entity
End Type

;beim Start:
locSchuss.SchussTyp = New SchussTyp
locSchuss\Entity=CopyEntity(SchussVorlage,waffe)
MoveEntity locSchuss\Entity, 0,0,0.1
EntityParent locSchuss\Entity,0

;während des Flugs
For locSchuss = Each SchussTyp
MoveEntity locSchuss\Entity 0,0,0.1
Next
 

Stani

BeitragDi, Apr 20, 2010 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool danke klappt super.Hab jetzt ein Mesh als Geschoss geladen.Komisch ist,das wenn ich die eigendliche Z-Richtung als Schussrichtung angeben,fliegen die nach oben und bei Y gerade aus.
 

Stani

BeitragFr, Apr 23, 2010 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir bitte einer sagen wie ich das mit dem springen hinbekomme.Denn wenn ich auf eine Kiste springe dan kann ich nicht mehr höher,da er ja erst bei Y=2 erst resetet.Wie soll ich das sonst machen??

Midimaster

BeitragFr, Apr 23, 2010 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Springen kannst du so machen:

Im Moment des Sprungstarts wird die aktuelle y-Pos abgefragt und daraus der "Wendepunkt", z.b.
BlitzBasic: [AUSKLAPPEN]
 y= EntityY(Player)+2 

...errechnet. Dadurch kommst du von dem festen Wert 2 weg.
 

CO2

ehemals "SirMO"

BeitragFr, Apr 23, 2010 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
wie kann ich denn ein mesh einem anderen mesh zuordnen also z.b.: ein rad an einem auto?
gibt es da einen befehl?

(sryy passt jtz ned zum thema Smile)
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragFr, Apr 23, 2010 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Forensuche sollte dir dazu EntityParent ausspucken - und was hindert dich ein eigenes Thema zu erstellen wenn du nach eingehender Suche trotzdem nichts gefunden hast?
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)
 

CO2

ehemals "SirMO"

BeitragFr, Apr 23, 2010 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
hier wurde doch sowieso schon im grobe über das problem was ich auch habe gesprochen, wieso also das forum zumüllen?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

Stani

BeitragSa, Apr 24, 2010 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ne das Problemm ist ja,dass ich wenn ich z.b auf ein cube springe und dan weiter(höher) springen will,das das nicht geht.
Der hat ja immer ein festen Wert.d.h wenn ich bei jeden 20 msecs höher gehe und bei 200 wieder runter hab ich 10 mal "Y höher"

Ich weiß auch nicht wieso,da da ja steht Y=Y +.5 und das ist egal ob ich bei Y = 100 bin oder bei 20000000.

Midimaster

BeitragSo, Apr 25, 2010 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
wie sieht denn derzeit der code aus?

also, wenn ich dich richtig verstehe, willst du erst mal auf den cube und dann von dieser neuen höhe noch weiter hoch springen können.

1. soll das neue Springen erst erlaubt sein, wenn das alte beendet wurde?

2. normalerweise springt man ja von da wo man steht einen gewissen betrag hoch. das landen geschiht dann bis runter auf ein level, wo man wieder einen boden trifft. Erst dort kann man erneut springen. willst du das auch so?

dann wird im moment des absprungs die aktuelle y-koordinate als 0 punkt genommen und dann kann man von da aus eben 2 höher springen. danach erfolgt das landen entweder auf eine höhere eben oder zurück zur alten ebene oder man fällt sogar tiefer. Oder?

das lässt sich doch alles machen...
 

Stani

BeitragSo, Apr 25, 2010 8:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja genau so.Es soll ja die aktuelle Y Pos angegeben werden um dan von der weiter zugehen.
Der Code ist im Moment nicht verändert,d.h den einen den du mir geschickt hast(mit ST und so) der ist gerade drin.Beim runtergehen hab ich aber 0.01 gemacht ,weil ich eine Function mit Gravitation hab,also das er immer 0.5 runtergeht und deshalb brauch ich das nicht,da er sonst viel zu schnell runtergehen würde.

Ich weiß halt nicht wie man die aktuelle Entity vom player berechnet.
Da man das ja oben bei den ganzen Globalen eingibt.

Danke Voraus

Midimaster

BeitragSo, Apr 25, 2010 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
die steht dir unter EntityY(Player) jederzeit zur Verfügung
  • Zuletzt bearbeitet von Midimaster am Mo, Mai 03, 2010 18:04, insgesamt einmal bearbeitet
 

Stani

BeitragFr, Apr 30, 2010 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch ne Frage:

Ich hab mal ein Paar Waffen dazugetan,nur das dumme ist,dass ich in die Waffe reinsehen kann.Kann man das irgendwie verhindern??

N0X

BeitragFr, Apr 30, 2010 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst mit CameraRange die Reichweite deiner Kamera auf unter 1 setzten.

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

Stani

BeitragFr, Apr 30, 2010 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke endlich siehts mal geil aus ..........
 

Stani

BeitragFr, Apr 30, 2010 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab irgendwie schon die ganze Zeit so ne ******* ,dass bei mir die etwas größeren Meshs nicht ganz geladen werden.Ein Teil der Wand fehlt oder an einer 'Seite der Box ist garkeine Wand,erst wenn ich in sie sprinte komm ich von drine nicht mehr raus,weil sie dan da ist.

Warum ist das so??
 

Stani

BeitragMo, Mai 03, 2010 10:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ales gelöst hab alles Problemme beseitigt.Das Spiel kann sich sehen lassen nur muss noch irgendwie BSP Maps machen.Das dumme ist eigendlich,dass Google sketchup keine Texturen mit exportiert,dan hätte ich das genommen.

Nur das dumme ist,da ich Grav habe,das ich keine Treppen hoch kann.d.h ich hab immer Y=Y-.1 ,aber nicht bei springen.Ich hab z.b G,das die Gravitation anmacht.Bei springen mach ich die einfach aus.

Wenn ich keine Gravitation hab kann ich auch prima Treppen hoch aber mit muss ich die immer hochspringen.

Kann man das iwie anders machen??

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group