Einfachste Kräftephysik

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Dez 07, 2006 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht hilft dir der folgende Code. Hab ich gestern mal schnell geschrieben und muß sagen das es Spaß macht aber auch nicht ganz einfach zu steuern. Mit Space kannst du die X-Achse spiegeln, da es für unterschiedliche Menschen unterschiedliche Ansichten zur Steuerung eines solchen Schiffes geben würde...

Code: [AUSKLAPPEN]
;Grafikkramm
Const gfx=1280
Const gfy=gfx*.75
Const ghx=gfx/2
Const ghy=gfy/2
Graphics3D gfx,gfy,0,1
SetBuffer BackBuffer()

;Kamera erstellen
camera=CreateCamera()
PositionEntity camera,0,0,-ghx
CameraZoom camera,1.0/ghx
CameraProjMode camera,2

;Licht erstellen
light=CreateLight()
RotateEntity light,40,-40,0

;Schiff erstellen
schiff=CreateSphere(16)
EntityColor schiff,160,160,160
ScaleMesh schiff,16,40,16
EntityOrder schiff,-1

;Triebwerk erstellen
triebwerk=CreateSphere(12,schiff)
PositionEntity triebwerk,0,-36,0
EntityColor triebwerk,96,96,96
ScaleMesh triebwerk,8,20,8
EntityOrder triebwerk,-2

;Flamme erstellen
flamme=CreateSphere(8,triebwerk)
PositionEntity flamme,0,-22,0
EntityColor flamme,255,255,0
ScaleMesh flamme,4,6,4
EntityOrder flamme,-3

xg#=0 ;X-Geschwindigkeit
yg#=0 ;Y-Geschwindigkeit
rg#=0 ;Rotations-Geschwindigkeit
ss%=-1 ;Schiffssteuerung




;HAUPTSCHLEIFE
While Not KeyHit(1)

 ;Schub
 If KeyDown(200)
  xg=xg-Sin(EntityRoll(schiff))*Cos(EntityRoll(triebwerk))*.01
  yg=yg+Cos(EntityRoll(schiff))*Cos(EntityRoll(triebwerk))*.01
  rg=rg-Sin(EntityRoll(triebwerk))*.01
  EntityColor flamme,255,Rnd(0,255),0
  EntityAlpha flamme,Rnd(0,1)
 Else
  EntityAlpha flamme,0
 End If

 ;Lenken
 If KeyDown(203) TurnEntity triebwerk,0,0,-ss
 If KeyDown(205) TurnEntity triebwerk,0,0,+ss

 ;Triebwerk langsam auf Nullstellung
 TurnEntity triebwerk,0,0,-Sgn(EntityRoll(triebwerk))/4

 ;Sowas wie ein Luftwiederstand
 yg=yg-.005
 xg=xg*.998
 yg=yg*.998
 rg=rg*.998

 ;Neue Koordianten einzeichnen
 TranslateEntity schiff,xg,yg,0
 TurnEntity schiff,0,0,rg

 ;Schiff im Bildschirm behalten
 If EntityX(schiff)<-ghx TranslateEntity schiff,gfx,0,0
 If EntityX(schiff)>ghx TranslateEntity schiff,-gfx,0,0
 If EntityY(schiff)<-ghy TranslateEntity schiff,0,gfy,0
 If EntityY(schiff)>ghy TranslateEntity schiff,0,-gfy,0

 ;Schiffssteuerung kippen
 If KeyHit(57) ss=-ss

 RenderWorld

 If ss=+1 Text 0,0,"[SPACE] - Schiffssteuerung Positiv"
 If ss=-1 Text 0,0,"[SPACE] - Schiffssteuerung Negativ"
 Flip
Wend
End

FireballFlame

BeitragDo, Dez 07, 2006 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
GEIL! Shocked

Macht echt Spaß ... wenn man das Ding erstmal unter Kontrolle hat, kann man sogar Loopings fliegen, ohne die Bildschirmränder zu berühren! ^^ Surprised

Ich hätt direkt Lust, da ein Spiel draus zu machen ... Flug über eine 2D-Landschaft, mit Lasten transportieren, Gegnern und so Wink
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

pixelshooter

BeitragDo, Dez 07, 2006 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
oO Shocked Oo das is cool vielen dank hectic!
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group