3D - Jump`n´Run - Game
Übersicht

sxt-ghjlBetreff: 3D - Jump`n´Run - Game |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute!
Ich beschäftige mich jetzt schon seit einiger Zeit mit Blitz Basic, würde mich aber noch als etwas zwischen N00B und Anfänger bezeichen. Nun habe ich mir in den Kopf gesetzt, ein kleines 3D ala Jump`n´Run zu schreiben bzw. hege ich diesen Wunsch schon seit langem. Ich bräuchte allerdings etwas/viel Hilfe.... Was ich bis jetzt habe ist eine Landschaft mit einer Figur die ich bewegen kann und ein paar weiteren Objekten. Mein erstes Problem ist, dass wenn meine Spielfigur ein Mesh ist, es nur zu sehr ungenauen Kollisionen kommt, was aber anders ist, wenn ich eine von BB3D (=Cube) benutzte. Mein zweites Problem wäre dies: Ich hab es zwar schon hingekriegt, dass meine Figur springt wenn ich es will und auch wieder ordentlich landet, jedoch will ich es auch hinkriegen, dass der Player auch von anderen Gegenständen abspringen kann, also nicht nur vom Boden, aber trotzdem um einen bestimmten Wert springt, der je nach dem wie hoch der "Spring-Startpunkt" liegt, höher oder niedriger ausfällt und nicht immer nur bis z.B. Y=50... Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken und dass sich jemand findet, der mir helfen kann. MfG, SXT-GHJL |
||
- Zuletzt bearbeitet von sxt-ghjl am Sa, Sep 27, 2008 19:45, insgesamt einmal bearbeitet
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
[[EntityY()]] um die Y-Position eines Objekts rauszufinden. ![]() Dazu empfehle ich dir noch Collisions ![]() MfG |
||
sxt-ghjl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, schön das sich so schnell jemand meldet!
Danke auch für den Tipp, aber EntityY() hatte ich auch schon mal probiert... Ich weiß nicht recht, wie ich die Bedingungen da dann aufstellen muss. So würde ich es gerne haben: Wenn Spieler Gegenstand (irgendeine Oberfläche) berührt und Leertaste gedrückt wird, dann beweg Spieler um 10 Einheiten von der AKTUELLEN POSITION nach oben. Noch besser wäre es natürlich wenn nur gesprungen werden kann, wenn der Spieler AUF einem Gegenstand ist, das ist aber erstmal nicht so wichtig bzw. glaube ich nich wirklich das BB3D da irgendwie unterscheiden kann-Außerdem wüsste ich da schon ne Methode, die aber höchst umständlich wäre...(Wenn da vielleicht noch mal ein Tipp zu käme wäre es wirklich super!) Kann mir da jemand helfen? Meine momentane Sprung-Routine sieht so aus: ; Sprung-Routine Collisions 1,2,2,2 v=-1 MoveEntity player, 0, v, 0 If jump=0 And KeyHit(57) Then jump=1 : v=1 If EntityY(player)>10 Then jump=2: v=-0.6 If EntityCollided(player,2) Then jump=0 Player ist Type 1 und der Boden Type 2 Auch gebrauchen könnte ich eine Beschleunigungs-Routine, also das der Player immer schneller/langsamer wird (beim Springen und beim Laufen). Da hab ich auch schon was, das aber wirklich nicht viel, um nicht zu sagen überhaupt nichts hergibt: ; Beschleuniguns-Routine MoveEntity player, 0,0,v2 If KeyDown(30) Then v2=v2+0.6*1.1 If Not KeyDown(30) Then v2=0 If v2>2 Then v2=2 Toll wäre es, wenn ich die Beschleunigung irgendwie mit der vergangenen Zeit seit Beschleunigungs-Anfang verknüpfen könnte... |
||
sxt-ghjl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Yo, yo! Ich bin hoch erfreut!!
Das Problem mit dem Springen hab ich hingekriegt. Bei den anderen Probleme bräuchte ich aber doch noch Hilfe! |
||
![]() |
Der_Schläfer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öhm ja... ich denke es würde reichen wenndu einfach deine geschindigkeits-variable sinnvoll einsetzt
Code: [AUSKLAPPEN] ;am anfang local v2# ;floating point empfielt sich const beschleunigung#=0.1 const deampfung#=0.9 const maxspeed#=2 ;in der loop: ;geschwindigkeit ändern If KeyDown(30) Then v2#=v2#+beschleunigung# ;maximalspeed If v2#>maxspeed# Then v2#=maxspeed# ;dämpfung v2=daempfung#*v2 ; Ausführen MoveEntity player, 0,0,v2 die beschleunigung/maximalspeed/daempfung würde ich deshalb am anfang des codes als konstanten setzten weil du se dann einfacher ändern kannst ohne zuerst wieder die stelle im code zu suchen mfg |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group