[B3d] 3d zeichnen (Functions Test)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Splitfatal

Betreff: [B3d] 3d zeichnen (Functions Test)

BeitragMi, Dez 06, 2006 8:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo erstmal. Wie man sieht ist dies mein erste Beitrag hier Embarassed

Also ich habe vor ca 3 tagen mit Blitz3d angefangen und bin richtig begeistert davon Smile

Momentan Bastel ich auch bissel an einem Ego Shooter (natürlich nur aus Test Zwecken um mich besser ins Programm einzuarbeiten (Habe noch nie gecodet das is schon etwas gewöhnungs bedürftig Embarassed )

Ja also heute wollte ich mal schauen wie Funktionen nun Funktionieren und habe mal ein kleines Spiel(?) gemacht.

Eigentlich total Sinnlos aber ich könnte ewig so rum fliegen Very Happy

Steuerung steht aufn Bildschirm.

PS.: Das einzigste was ich nicht geschrieben habe ist die FPS berechnung da ich keine ahnung habe wie man die FPS berechnet. ^^

Screen:

user posted image


Da gibt es sicher viele Fehler. Vielleicht könnt ihr mir ja sagen wir ich das alles etwas einfacher schreiben kann?

Oder kann mir jemand sagen wie ich es schaffe das der Speed nicht in den Minus bereich geht? Daran habe ich mich vergeblich versucht Embarassed

Ja hoffe auf Lob, Kritik oder angeschrien werden Wink

Gruß Splitfatal

So und nun der Code:

Zitat:


Graphics3D 800,600,16,1
HidePointer()

SetBuffer BackBuffer()

;Kamera und Licht;

camerakolli=CreatePivot()
camera=CreateCamera(camerakolli)

Licht=CreateLight (2, camera)
LightRange licht, 20


;Feste Variabeln;

Objektzaehler=0
wir=0
Speed#=1

While Not KeyHit(1)


;Steuerung;;;;;;;;;;;;;;;;;;;;;;;

;Mit der Maus umschauen;

sMx# = MouseXSpeed()
sMy# = MouseYSpeed()

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

TurnEntity camerakolli, 0,-(sMx#/3),0, True
TurnEntity camerakolli, (sMy#/3),0,0



;Laufen;
;W, S;
If KeyDown (17) Then MoveEntity camerakolli, 0,0,speed
If KeyDown (31) Then MoveEntity camerakolli, 0,0,-speed
;A, D;
If KeyDown (30) Then MoveEntity Camerakolli, -speed,0,0
If KeyDown (32) Then MoveEntity Camerakolli, speed,0,0

;Sonstiges;;;;;;;;;;;;;;;;;;;;;

;Zeichnen:
;S/W zeichnen;
If MouseDown(1) Then Objekterstellen (camerakolli) : Objektzaehler=Objektzaehler+1
;Bund zeichnen;
If MouseDown(2) Then Objekterstellenb (camerakolli) : Objektzaehler=Objektzaehler+1
;WireFrame an;
If Wir=0 And KeyHit (2) Then Wir=wir +1
;Wireframe aus;
If wir=1 And KeyHit(3) Then Wir=wir -1
;Speed erhöhen;
If KeyDown (78) Then Speed=Speed+0.1
;Speed verringern;
If KeyDown (74) Then Speed=Speed-0.1


WireFrame Wir
UpdateWorld
RenderWorld

Text 0,0, "FPS: " + GetFps() + " Anzahl der Objekte: " + Objektzaehler + " Anzahl der Polygone: " + Objektzaehler*12 + " Speed: " + speed + " Wireframe: " + wir
Text 0,20, "Steuerung:"
Text 0,35, "W,S,A,D = Bewegen"
Text 0,50, "Linke Maustaste: S/W zeichnen"
Text 0,65, "Rechte Maustaste: Bund zeichnen"
Text 0,80, "Speed erhöhren: +"
Text 0,95, "Speed verringern: -"
Text 0,110,"Wireframe an/aus: 1/2"
Text 0,585, "Toni Pusch 2006"
Flip



Wend
ClearWorld
End

;Funktionen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;FPS berechnen;
Global FPS, FPS_temp, FPS_time
Function GetFPS()
ctime = MilliSecs()
FPS_temp = FPS_temp + 1
If ctime - FPS_time > 500 Then
FPS = FPS_temp * 2
FPS_temp = 0
FPS_time = ctime
EndIf
Return FPS
End Function

;S/W zeichnen Funktion;
Function Objekterstellen (woran)

campox = EntityX (woran)
campoy = EntityY (woran)
campoz = EntityZ (woran)

Zufall = Rnd(1,360)
Zufall2 = Rnd(1,255)


Cube=CreateCube()
PositionEntity Cube, campox, campoy, campoz
TurnEntity Cube, zufall, zufall, zufall
EntityColor cube, Zufall2, Zufall2, Zufall2


End Function

;Bund zeichnen Funktion;
Function ObjekterstellenB (woran)


campox = EntityX (woran)
campoy = EntityY (woran)
campoz = EntityZ (woran)

Zufall = Rnd(1,360)

ZufallRot = Rnd(1,255)
ZufallGruen = Rnd(1,255)
ZufallBlau = Rnd(1,255)

Cube=CreateCube()
PositionEntity Cube, campox, campoy, campoz
TurnEntity Cube, zufall, zufall, zufall
EntityColor cube, ZufallRot, ZufallGruen, ZufallBlau


End Function
  • Zuletzt bearbeitet von Splitfatal am Mi, Dez 06, 2006 12:58, insgesamt einmal bearbeitet
 

antome

!!! gesperrt !!!

BeitragMi, Dez 06, 2006 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Du erstellt ja mit der Zeit immer mehr Objekte, das verringert die Speed natürlich auch immer mehr.
Da wird man nichts dran ändern können außer evtl. zwischendurch einen Screenshot machen und die Objekte löschen und das Bild als Hintergrund einfügen, dann weiter malen mit neuen Objekten.
Aber eine interessante Idee.
antome

DerHase

BeitragMi, Dez 06, 2006 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mag das Programm Smile Was cool wäre, wenn Du die Würfel vor der Kamera erstellen würdest, ich hab am anfang nicht gerafft was ich machen muss. Und mit HidePointer() nach dem Graphics Befehl kannst Du den Mauszeiger verstecken. Naja ich hab es im Fenstermodus probiert, im Vollbild ist er ja nicht da:)
Play Satyr!
 

Splitfatal

BeitragMi, Dez 06, 2006 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@Antome

Naja ich denke auch das es nen kleiner Test sein sollte wie viele Polygone mein Rechner wohl schafft.

@Der Hase

Ohh danke denn befehl kannt ich gar nicht Embarassed

BladeRunner

Moderator

BeitragMi, Dez 06, 2006 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.


netter Test, aber kein Fall für das Codearchiv.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group