Morphy hat einen kleinen Code fertig und will Tipps

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Morpheus

Betreff: Morphy hat einen kleinen Code fertig und will Tipps

BeitragSo, Jun 18, 2006 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will vorab klarstellen, dass es kein Meisterwerk ist, aber ich bin für den Anfang zufrieden:

Code: [AUSKLAPPEN]

Graphics3D 1280,1024,16,1
SetBuffer BackBuffer()

;Kamera
camera=CreateCamera()
cx#=8
cy#=5
cz#=-10
RotateEntity camera,15,0,0
PositionEntity camera,cx,cy,cz
CameraRange camera,1,10000

light=CreateLight()
RotateEntity light,45,0,0

Global cube=CreateCube()
cubetex=LoadTexture ("Gfx/kiefernholz.bmp")
EntityTexture cube,cubetex
EntityType cube,1
EntityRadius cube,1
PositionEntity cube,8,0,0
EntityShininess cube,1


plane=CreatePlane()
EntityType plane,1
planetex = LoadTexture("Gfx/kiefernholz.bmp")
EntityTexture plane,planetex
ScaleTexture planetex ,2,2
PositionEntity plane,0,-5,0
ScaleEntity plane,10,1,10
EntityShininess plane,0.3

For cyl = -5 To 10 Step 1
cylinder=CreateCylinder(32)
cylindertex = LoadTexture ("Gfx/kiefernholz.bmp")
EntityTexture cylinder,cylindertex
EntityType cylinder,1
PositionEntity cylinder,0,cyl*16,0
ScaleEntity cylinder,1,1,1
EntityShininess cylinder,1    
Next
   
Collisions 1,1,2,2

EntityParent camera,cube,1

sprung = 0
imsprung=0

Function physic_casual ()
MoveEntity cube,0,-0.25,0
End Function

Function physic_jump ()
MoveEntity cube,0,-0.1,0
End Function
      
While Not KeyDown(1);looooooooooooooooooooooooooooooooooooooooooooooop
x#=0
y#=0
z#=0

TurnEntity light,0.00694444444,0,0;Sonnenlicht

If KeyDown(203)=1 Then TurnEntity cube ,0,1,0
If KeyDown(205)=1 Then TurnEntity cube ,0,-1,0
If KeyDown(208)=1 Then MoveEntity cube,0,0,-1
If KeyDown(200)=1 Then MoveEntity cube,0,0,1
 
If KeyHit(57) And Sprung=0 Sprung=1
If Sprung=1
MoveEntity cube,0,5,2
MoveEntity cube,0,0,3
physic_jump ()
Sprung=0
EndIf

If KeyDown (17) Then MoveEntity camera,0,0,0.1
If KeyDown (31) Then MoveEntity camera,0,0,-0.1

If KeyDown (30) Then MoveEntity camera,0,0.1,0
If KeyDown (44) Then MoveEntity camera,0,-0.1,0

If KeyHit (14) Then wire=1-wire
WireFrame wire

If KeyHit (2) Then alias=1-alias
AntiAlias alias

If KeyHit (13) Then debug=1-debug

;Physikengine
If Sprung = 0
physic_casual()
EndIf
UpdateWorld
RenderWorld
If debug = 1 Then
col=CountCollisions(cube)
Text 0,0,"Kollision(en):"
For i=1 To col
Text 000,i*20,"Entity="+CollisionEntity(cube,i)
Text 150,i*20,"Surface="+CollisionSurface(cube,i)
Text 300,i*20,"Triangle="+CollisionTriangle(cube,i)
Text 0,40,"Antialias= "+alias
Text 0,60,"Debug= "+debug
Text 100,40,"Wirefrane = "+wire
Next
Else If debug = 0 Then
Text 0,0,"Debug = "+debug
EndIf
Flip
Wend
FlushKeys
ClearWorld
End

Man kann den Würfel horizontal über den Boden bewegen, vorwärts/rückwärts und ihn l/r bewegen.
Das Unendlich-oft-in-der-Luft-springen-Problem ist leider noch nicht gelöst.

Ich hoffe, dass dies zeigt, dass ich kein Ich-copy-paste-mir-alles-aus-dem-Forum-möchtegern-Progger bin.
Aber ich kann Tipps brauchen, zB was braucht man für ein erstes Werk an Features?

Die Welt ist noch schrecklich leer, wie kann ich sie am besten "beleben"?
Wie ihr sehen könnt habe ich die Säule durch eine Schleife aus Cylindern erstellt. Auf diese Weise wollte ich auch noch weitere Säule machen, aber das ging nicht. Es kamen einfach keine Säulen, höchstens ein Cylinder, der mitten in der Luft hing.

Ich habe die nötigen Programme, um eine Welt im 3ds Format zu bauen, aber ihr habt ja geschrieben, dass ich erst den Code machen soll. Aber jetzt a)weiß ich nicht mehr viel, was ich an Code schreiben soll
b) Habe ich noch nicht die nötigen Fähigkeiten.
Ich hätte die Idee, dass die Schatten richtig berechnet werden, aber ich habe keinen blassen Schimmer davon wie ich das machen sollte.

Bilder:
user posted image
user posted image

MfG, Morpheus

Firstdeathmaker

BeitragSo, Jun 18, 2006 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest an deinem Stil arbeiten. Durchgängige Formatierungen nehmen, anstatt:

Code: [AUSKLAPPEN]
sprung = 0
imsprung=0


Bei Schleifen oder If-Bedingungen, den Inhalt einrücken:

Code: [AUSKLAPPEN]
For i = 0 To 20
   dosomething()
   dosomethingelse()
Next


Du solltest, wenn du hier schon Code postest, auch die dazu benötigten Dateien (Texturen) bereit stellen. Vielleicht sogar eher ein kleines Archiv mit allem drin. Die meisten hier sind zu faul um sich eine Textur zu suchen und diese an dein Program anzugleichen damit es klappt (vor allem wenn es bisher noch nicht so viel bringt).

Das "Unendlich in die Luft springen" Problem kannst du doch dadurch lösen, dass du einfach überprüfst wie weit der Spieler vom Boden entfernt ist (Ich glaub der Befehl hieß terrainy() oder so)

Was an Features? Vielleicht versuchst du mal was mit Schüssen und der damit verbundenen Kollisionsabfrage.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group