[B3D] Helikopter

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

ZaP

Betreff: [B3D] Helikopter

BeitragSa, Nov 10, 2007 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin!

Ich habe gestern Mission Impossible 2 gesehen, und musste als ich die beiden Gehilfen von Tom Cruise in ihrem Helikopter sah, wieder an Battlefield 1942 mit Desert Combat mod denken. In diesem Mod gab es Helikopter, welche recht anspruchsvoll zu fliegen waren, die sie sich nich automatisch stabilisiert haben.
Also habe ich heute morgen genau dieses Flugverhalten nachgeschrieben:

Binary: (~500kb)

http://vteam.vt.ohost.de/heli.zip

Source:

Code: [AUSKLAPPEN]

;
;   Helicopter Flugverhalten
;      by ZaP
;

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

;----------------------------------------
;locals
;----------------------------------------

Local base = CreatePlane()
Local basetex = LoadTexture("default.png")

;----------------------------------------
;globals
;----------------------------------------

Global Piv = CreatePivot()
Global cam = CreateCamera(Piv)
Global VXSpeed# = 0
Global VYSpeed# = 0
Global VZSpeed# = 0
Global Vpitch#   = 0
Global Vyaw#      = 0
Global Vroll#      = 0
Global THup#      = 0

;----------------------------------------
;Vehicle properties
;----------------------------------------

Global DeathZone# = 0.2 ;for joystick

;----------------------------------------
;entity defs
;----------------------------------------

PositionEntity Piv,0,1,0
CameraZoom cam,1.6
EntityTexture base,basetex

;----------------------------------------
;MAINLOOP
;----------------------------------------

Repeat
   
   UpdateWorld
   RenderWorld
   
   MoveVehicle()
   
   Flip
   
Until KeyHit(1)

End

Function MoveVehicle()
   
   Local jpt# = JoyPitch()
   Local jyw# = JoyYaw()
   Local jrl# = JoyRoll()
   Local jx# = JoyX()
   Local jy# = JoyY()
   Local jz# = JoyZ()
   
   If jy# < DeathZone#*-1 Or jy# > DeathZone#
      Vpitch# = Vpitch#+jy#*-0.01
   EndIf
   
   If jrl# < DeathZone#*-1 Or jrl# > DeathZone#
      Vyaw# = Vyaw#+jrl#*-0.0001
   EndIf
   
   If jx# < DeathZone#*-1 Or jx# > DeathZone#
      Vroll# = Vroll#+jx#*-0.01
   EndIf
   
   If jz# < DeathZone#*-1 Or jz# > DeathZone# Then THup# = THup+jz#
   If JoyDown(1) Then THup# = THup#+0.001
   If JoyDown(2) Then THup# = THup#-0.001
   
   VYSpeed# = THup#-Abs(EntityPitch(Piv))*0.001
   VXSpeed# = THup#*EntityRoll(Piv)*-0.1
   VZSpeed# = EntityPitch(Piv)*0.00001+THup#
   
   If THup# =< 0 Then THup# = 0
   If THup# >= 0.1 Then THup# = 0.099
   
   MoveEntity Piv,VXSpeed#,VYSpeed#,VZSpeed#
   TurnEntity Piv,Vpitch#,Vyaw#,Vroll#,0
   
   Text 0,0,VXSpeed#+" - "+VYSpeed#+" - "+VZSpeed#+" - "+THup#
   Text 0,12,EntityPitch(Piv)+" - "+EntityYaw(Piv)+" - "+EntityRoll(Piv)
   
End Function



Viel Spaß beim Fliegen Wink

//EDIT:
Joystick benötigt!


Steuerung:

Joystick X,Y und Z-Achse + Schubregler ODER Joy1 und Joy2 (für Schub)
Starfare: Worklog, Website (download)

FireballFlame

BeitragSa, Nov 10, 2007 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Begreif ich nicht -.-
Was genau ist das? Wie testet man das?
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

ToeB

BeitragSa, Nov 10, 2007 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir ruckelt das die ganze zeit obwohl ich nichts machen....


mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ZaP

BeitragSa, Nov 10, 2007 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Stell dir vor du sitzt in einem Hubschrauber. Und vor dir ist ein Joystick, mit 3 Achsen und 2 Tasten. Auf der ersten Taste kannst du den Schub erhöhen, auf der zweiter wieder verringern. Mit den 3 Achsen bewegst du den Hubschrauber. Alles klar Wink

Btw, vielleicht ist es sinnvoll noch einen FPS limiter einzubauen, sonst wird das Fliegen noch schwerer als es ohnehin schon ist. Ich empfehle 60 FPS.


//EDIT: Das ganze ist für einen (halbwegs gut kalibrierten) Analogen Joystick geschrieben. Wer lieber mit Tastatur fliegen möchte, kann die Joystick funktionen durch die entsprechenden Tastaturabfragen ersetzen.
Starfare: Worklog, Website (download)

mabox

BeitragMo, Nov 12, 2007 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir kommt "Memory access violation""
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

StepTiger

BeitragMo, Nov 12, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
cannot execute heli.exe
gibt mir winrar aus...
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

#Reaper

Newsposter

BeitragMo, Nov 12, 2007 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
cannot execute heli.exe
gibt mir winrar aus...


Entpack es mal.

Aber ich seh dafür keinen Helikopter, nur ab und zu mal kurz was rotes "vorbeifliegen".
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

StepTiger

BeitragMo, Nov 12, 2007 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Beim entpacken kommt "unknown method in heli.exe"

ganz doof bin ich auch nicht ^^
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Silver_Knee

BeitragMo, Nov 12, 2007 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir geht die exe ich hab aber keinen joystick xD
 

Gast

BeitragMo, Nov 12, 2007 19:10
Antworten mit Zitat
ich kann auch net entpacken, warsch. ligt das an deinem winRAR/ZIP
 

timmeTheOnly

BeitragSo, Jan 13, 2008 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir gehts, aber ich kann nichts steuern und alles fliegt wild durch die Gegend, der Joy is frisch kalibriert. Mein Gamepad hat nur 2 Achsen...
 

Honesch

Betreff: für Tastertur

BeitragMo, Aug 11, 2008 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Da die meisten hier keinen joystick haben (wie auch ich) habe ich den code für die Tastertur umgeschrieben. Ich habe nur die Steuerabfragen geändert. Mit den Tasten "1" und "2" lässt sich der Schub regulieren. Code:
Code: [AUSKLAPPEN]

;
;   Helicopter Flugverhalten
;      by ZaP
;

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

;----------------------------------------
;locals
;----------------------------------------

Local base = CreatePlane()
Local basetex = LoadTexture("default.png")

;----------------------------------------
;globals
;----------------------------------------

Global Piv = CreatePivot()
Global cam = CreateCamera(Piv)
Global VXSpeed# = 0
Global VYSpeed# = 0
Global VZSpeed# = 0
Global Vpitch#   = 0
Global Vyaw#      = 0
Global Vroll#      = 0
Global THup#      = 0

;----------------------------------------
;Vehicle properties
;----------------------------------------

Global DeathZone# = 0.2 ;for joystick

;----------------------------------------
;entity defs
;----------------------------------------

PositionEntity Piv,0,1,0
CameraZoom cam,1.6
EntityTexture base,basetex

;----------------------------------------
;MAINLOOP
;----------------------------------------
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
Repeat
   
   UpdateWorld
   RenderWorld
   
   MoveVehicle()
   
   Flip
   
Until KeyHit(1)

End

Function MoveVehicle()
   
  ; Local jpt# = MouseY()
  ; Local jyw# = MouseZ()
  ; Local jrl# = MouseX()
   Local jx# = MouseXSpeed()
   Local jy# = MouseYSpeed()
   Local jz# = MouseZSpeed()
   
   If jy# < DeathZone#*-1 Or jy# > DeathZone#
      Vpitch# = Vpitch#+jy#*-0.01
   EndIf
   
   If jrl# < DeathZone#*-1 Or jrl# > DeathZone#
      Vyaw# = Vyaw#+jrl#*-0.0001
   EndIf
   
   If jx# < DeathZone#*-1 Or jx# > DeathZone#
      Vroll# = Vroll#+jx#*-0.01
   EndIf
   
   If jz# < DeathZone#*-1 Or jz# > DeathZone# Then THup# = THup+jz#
   If KeyDown(2) Then THup# = THup#+0.001
   If KeyDown(3) Then THup# = THup#-0.001
   
   VYSpeed# = THup#-Abs(EntityPitch(Piv))*0.001
   VXSpeed# = THup#*EntityRoll(Piv)*-0.1
   VZSpeed# = EntityPitch(Piv)*0.00001+THup#
   
   If THup# =< 0 Then THup# = 0
   If THup# >= 0.1 Then THup# = 0.099
   
   MoveEntity Piv,VXSpeed#,VYSpeed#,VZSpeed#
   TurnEntity Piv,Vpitch#,Vyaw#,Vroll#,0
   
   Text 0,0,VXSpeed#+" - "+VYSpeed#+" - "+VZSpeed#+" - "+THup#
   Text 0,12,EntityPitch(Piv)+" - "+EntityYaw(Piv)+" - "+EntityRoll(Piv)
   
End Function
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik !

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group