auf dem boden plazieren

Übersicht BlitzBasic Blitz3D

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

Mr Hopp

BeitragSa, Mai 28, 2005 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mein ja nur, mein Mathe-Lehrer würde sich krumm lachen. Aber ich kann sogar EntityRadius player, 50, 30000 eingeben und ich bin noch so dicht am Terrain
 

Klaas

BeitragSa, Mai 28, 2005 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityRADIUS heißt ja nicht das es ein Kugel sein muß! ... das sollte auch dein Lehrer einsehen.

wo ist das Problem ??

Code: [AUSKLAPPEN]

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

;******************Globals

;Gelände - Terrain
Global Fels=CreateTexture(64,64);LoadTexture ("Texturen\Fels.bmp")
SetBuffer(TextureBuffer(fels))
Color 255,255,255
Rect 0,0,32,32
Rect 32,32,64,64
SetBuffer(BackBuffer())
ScaleTexture Fels, 10, 10

;Textur - Wasser
Global wassertext=CreateTexture(64,64);LoadTexture ("Texturen\Wasser.bmp",4)
ScaleTexture wassertext,100,100

;Textur - Stein_1
Global stein = CreateTexture(64,64);LoadTexture("Texturen\Stein.png")
ScaleTexture stein, 100, 100

;*****************Funktionen
Function Endlevel()

;Gelände
terrain = CreateTerrain(32);LoadTerrain("Hightmaps\Festung.bmp")
EntityTexture terrain, Fels, 0, 0
ScaleEntity terrain, 20, 600, 20
EntityType terrain, 1

wasser=CreatePlane()
EntityTexture wasser,wassertext
MoveEntity wasser,0,10,0
EntityAlpha wasser,0.6

;Gebäude
Burg = CreateCube();LoadMesh("Meshes\Gebaeude\Burg.3ds")
PositionMesh Burg, 34, 6, 32
ScaleMesh Burg, 200, 200, 200
EntityTexture Burg, stein

;Kamera
player = CreateCone()
PositionEntity(player,50,100,50);<--------- höhe muß hier größer als der radius sein
EntityRadius player, 10,80;<---------- hier am 2.ten Wert rumschrauben

cam = CreateCamera(player)
MoveEntity cam,0, 10, 0
CameraFogMode cam,1
CameraRange cam,1,30000
CameraFogRange cam,100,4000
CameraFogColor cam,40,140,255
CameraClsColor cam,40,140,255
light=CreateLight()
TurnEntity light,45,45,0

EntityType player, 2

;Spiel

Repeat
TranslateEntity player,0,-2,0

If KeyDown(200) Then MoveEntity player, 0, 0, 3
If KeyDown(208) Then MoveEntity player, 0, 0, -3
If KeyDown(203) Then MoveEntity player, -3, 0, 0
If KeyDown(205) Then MoveEntity player, 3, 0, 0

TurnEntity cam,MouseYSpeed(),0,0
TurnEntity player,0,-MouseXSpeed(),0
MoveMouse 400, 300

If KeyDown(57) Then WireFrame(1)
Collisions 2, 1, 2, 2
UpdateWorld
RenderWorld

Flip
Until KeyHit(1)
End Function


;Hauptschleife

Endlevel()

ClearWorld
End
  • Zuletzt bearbeitet von Klaas am Sa, Mai 28, 2005 19:48, insgesamt einmal bearbeitet
 

Mr Hopp

BeitragSo, Mai 29, 2005 10:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich hab nochmal nachgeschaut, Cone heißt ja Kegel Exclamation

Edit: Trotzdem, ich laufe direkt auf dem Terrain!
  • Zuletzt bearbeitet von Mr Hopp am So, Mai 29, 2005 12:33, insgesamt einmal bearbeitet
 

Klaas

BeitragSo, Mai 29, 2005 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
gib mal deinen jetzigen Code!
 

Mr Hopp

BeitragSo, Mai 29, 2005 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics3D 800,600,32,1
SetBuffer BackBuffer()

;MeshTypes:
;
;1: Endlevel - Terrain
;2: Player
;3: Endlevel - Wasser
;4: EndLevel - Burg

;******************Globals

;Gelände - Terrain
Global Fels=LoadTexture ("Texturen\Fels.bmp")
ScaleTexture Fels, 50, 50

;Textur - Wasser
Global wassertext=LoadTexture ("Texturen\Wasser.bmp",4)
ScaleTexture wassertext,100,100

;Textur - Stein_1
Global stein = LoadTexture("Texturen\Stein.bmp")
ScaleTexture stein, 100, 100

;*****************Funktionen
Function Endlevel()

;Gelände
terrain = LoadTerrain("Hightmaps\Festung.bmp")
EntityTexture terrain, Fels, 0, 0
ScaleEntity terrain, 50, 600, 50
EntityType terrain, 1

wasser=CreatePlane()
EntityTexture wasser,wassertext
MoveEntity wasser,0,10,0
EntityAlpha wasser,0.6
EntityType wasser, 3

;Himmel
dome = CreateSphere()
wolken = LoadTexture("Texturen\Wolken.bmp")
EntityTexture dome, wolken
FlipMesh dome
PositionEntity dome, 3000, 1000, 3000
ScaleEntity dome, 3500, 2000, 3500

AmbientLight 75, 75, 75

;Gebäude
Burg = LoadMesh("Meshes\Gebaeude\Burg.3ds")
PositionMesh Burg, 34, 6, 32
ScaleMesh Burg, 100, 100, 100
EntityTexture Burg, stein
EntityType Burg, 4

;Geräusche
Donner = LoadSound("Sounds\Donner.wav")
Regen = LoadSound("Sounds\Regen.wav")
Wasser = LoadSound("Sounds\Wasser.wav")
Wind = LoadSound("Sounds\Wind.wav")
;Texte
T_Einleitung = LoadSound("Sounds\Texte\Endlevel_Einleitung.wav")

LoopSound Regen
LoopSound Wind

Regen_k = PlaySound(Regen)
Wind_k = PlaySound(Wind)

T_Einleitung_k = PlaySound(T_Einleitung)

;Kamera
player = CreateSphere()
PositionEntity(player,50,80,50)
EntityRadius player, 10,80

cam = CreateCamera(player)
cam_x = 1000
cam_y = 800
cam_z = 1000
MoveEntity cam,cam_x, cam_y, cam_z
TurnEntity cam, 0, -45, 0
CameraFogMode cam,1
CameraRange cam,1,300000
CameraFogRange cam,100,4000
CameraFogColor cam,150,150,150
CameraClsColor cam,40,140,255
;light=CreateLight()
;TurnEntity light,45,45,0

EntityType player, 2
EntityType cam, 2

Player_b = 1

Collisions 2, 1, 2, 3
Collisions 2, 3, 2, 3
Collisions 2, 4, 2, 2

RenderWorld
Flip
Delay(17000)

;****************Spiel

Repeat

;Spieler
If Player_b = 1 Then
MoveEntity cam, 0, -1, 0
sz = sz + 1
EndIf

If sz > 750 And Player_b = 1 Then
Player_b = 0
FlushMouse
FlushKeys
MoveMouse 512, 384
EndIf

If Player_b = 0 Then
If KeyDown(200) Then MoveEntity cam, 0, 0, 3
If KeyDown(208) Then MoveEntity cam, 0, 0, -3
If KeyDown(203) Then MoveEntity cam, -3, 0, 0
If KeyDown(205) Then MoveEntity cam, 3, 0, 0

RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
MoveMouse 512, 384

EndIf

;Geräusche durch Spieler verursacht
;If EntityCollided(player, 3) And ChannelPlaying(tappen_k) = 0 Then tappen_k = PlaySound(Wasser)

;Blitz & Donner
If Ausloesen = 0 Then
Blitzausloeser = Rnd(5000,15000)
Ausloesen = 1
Blitz_l_Messung_2 = MilliSecs()
EndIf

Blitz_l_Messung = MilliSecs() - Blitz_l_Messung_2

If Blitz_l_Messung > Blitzausloeser And Blitz_a = 0 Then
Blitz_a = 1
AmbientLight 255, 255, 255
Donner_k = PlaySound(Donner)
Messung = MilliSecs()
EndIf

If Blitz_a = 1 Then
Blitzlicht = MilliSecs() - Messung
If Blitzlicht > 50 Then
AmbientLight 75, 75, 75
Blitz_a = 0
Blitzausloeser = 0
Ausloesen = 0
EndIf
EndIf


If KeyDown(17) Then WireFrame(1)
UpdateWorld
RenderWorld


Flip
Until KeyHit(1)
End Function


;Hauptschleife

Endlevel()

ClearWorld
  • Zuletzt bearbeitet von Mr Hopp am So, Mai 29, 2005 14:02, insgesamt einmal bearbeitet
 

Klaas

BeitragSo, Mai 29, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir das mal genauer an

Code: [AUSKLAPPEN]

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

;MeshTypes:
;
;1: Endlevel - Terrain
;2: Player
;3: Endlevel - Wasser
;4: EndLevel - Burg

Const col_terrain = 1
Const col_player = 2
Const col_wasser = 3
Const col_burg = 4

;******************Globals

Global tex=CreateTexture(64,64);LoadTexture ("Texturen\Fels.bmp")
SetBuffer(TextureBuffer(tex))
Color 255,255,255
Rect 0,0,32,32
Rect 32,32,64,64
SetBuffer(BackBuffer())
ScaleTexture tex, 10, 10

;Gelände - Terrain
Global Fels=tex;LoadTexture ("Texturen\Fels.bmp")
ScaleTexture Fels, 50, 50

;Textur - Wasser
Global wassertext=tex;LoadTexture ("Texturen\Wasser.bmp",4)
ScaleTexture wassertext,100,100

;Textur - Stein_1
Global stein = tex;LoadTexture("Texturen\Stein.bmp")
ScaleTexture stein, 100, 100

;*****************Funktionen
Function Endlevel()

;Gelände
terrain = CreateTerrain(128);LoadTerrain("Hightmaps\Festung.bmp")
EntityTexture terrain, Fels, 0, 0
ScaleEntity terrain, 50, 600, 50
EntityType terrain, col_terran

wasser=CreatePlane()
EntityTexture wasser,wassertext
MoveEntity wasser,0,10,0
EntityAlpha wasser,0.6
EntityType wasser, col_wasser

;Himmel
dome = CreateSphere()
wolken = tex;LoadTexture("Texturen\Wolken.bmp")
EntityTexture dome, wolken
FlipMesh dome
PositionEntity dome, 3000, 1000, 3000
ScaleEntity dome, 3500, 2000, 3500

AmbientLight 75, 75, 75

;Gebäude
Burg = CreateCube();LoadMesh("Meshes\Gebaeude\Burg.3ds")
PositionMesh Burg, 34, 6, 32
ScaleMesh Burg, 100, 100, 100
EntityTexture Burg, stein
EntityType Burg, col_burg

;Geräusche
If 1=0 Then
Donner = LoadSound("Sounds\Donner.wav")
Regen = LoadSound("Sounds\Regen.wav")
Wasser = LoadSound("Sounds\Wasser.wav")
Wind = LoadSound("Sounds\Wind.wav")
;Texte
T_Einleitung = LoadSound("Sounds\Texte\Endlevel_Einleitung.wav")

LoopSound Regen
LoopSound Wind

Regen_k = PlaySound(Regen)
Wind_k = PlaySound(Wind)

T_Einleitung_k = PlaySound(T_Einleitung)
End If

;<--------------- Immer schön Variablen benutzen
player_height = 400

;Kamera
player = CreatePivot();player = CreateSphere()  ;<------------------ der player braucht keine Geometrie
PositionEntity(player,500,player_height,500)
EntityRadius player, player_height/2,player_height/4

cam = CreateCamera(player)
cam_x = 1000
cam_y = 800
cam_z = 1000
;MoveEntity cam,cam_x, cam_y, cam_z <---------- immer das player objekt bewegen
MoveEntity cam,0, player_height/2,0

;TurnEntity cam, 0, -45, 0
CameraFogMode cam,1
CameraRange cam,1,300000
CameraFogRange cam,100,4000
CameraFogColor cam,150,150,150
CameraClsColor cam,40,140,255
;light=CreateLight()
;TurnEntity light,45,45,0

EntityType player, col_player
;EntityType cam, 2 <----------- brauchst du erstmal nichtmehr

Player_b = 1

Collisions 2, 1, 2, 3
Collisions 2, 3, 2, 3
Collisions 2, 4, 2, 2

RenderWorld
Flip
;Delay(17000)

;****************Spiel

Repeat
   
   ;Das hier hab ich erstmal ausgeklammert
   If 1=0 Then
   If Player_b = 1 Then
      MoveEntity cam, 0, -1, 0
      sz = sz + 1
   EndIf
   
   If sz > 750 And Player_b = 1 Then
      Player_b = 0
      FlushMouse
      FlushKeys
      MoveMouse 512, 384
   EndIf
   End If
   
;   If Player_b = 0 Then
   TranslateEntity player,0,-4,0
   
   If KeyDown(200) Then MoveEntity player, 0, 0, 3
   If KeyDown(208) Then MoveEntity player, 0, 0, -3
   If KeyDown(203) Then MoveEntity player, -3, 0, 0
   If KeyDown(205) Then MoveEntity player, 3, 0, 0
   
   TurnEntity cam,MouseYSpeed(),0,0
   TurnEntity player,0,-MouseXSpeed(),0
   MoveMouse 400, 300    
   
;   EndIf
   
   ;Geräusche durch Spieler verursacht
   ;If EntityCollided(player, 3) And ChannelPlaying(tappen_k) = 0 Then tappen_k = PlaySound(Wasser)
   
   ;Blitz & Donner
   If Ausloesen = 0 Then
   Blitzausloeser = Rnd(5000,15000)
   Ausloesen = 1
   Blitz_l_Messung_2 = MilliSecs()
   EndIf
   
   Blitz_l_Messung = MilliSecs() - Blitz_l_Messung_2
   
   If Blitz_l_Messung > Blitzausloeser And Blitz_a = 0 Then
   Blitz_a = 1
   AmbientLight 255, 255, 255
   ;Donner_k = PlaySound(Donner)
   Messung = MilliSecs()
   EndIf
   
   If Blitz_a = 1 Then
   Blitzlicht = MilliSecs() - Messung
   If Blitzlicht > 50 Then
   AmbientLight 75, 75, 75
   Blitz_a = 0
   Blitzausloeser = 0
   Ausloesen = 0
   EndIf
   EndIf
   
   
   If KeyDown(17) Then WireFrame(1)
   UpdateWorld
   RenderWorld
   
   
   If EntityCollided(player,col_terrain)
      t$ = "Ich bin auf dem Terrain"
   ElseIf EntityCollided(player,col_wasser)
      t$ = "Ich steh auf dem wasser"
   ElseIf EntityCollided(player,col_burg)
      t$ = "Ich hab die Burg berührt"
   End If
      
   Color 0,0,0
   Text 10,10,"Kollision:"+t
   Text 10,30,"Höhe der Cam:"+EntityY(cam,1)
   
   Flip
Until KeyHit(1)
End Function


;Hauptschleife

Endlevel()

ClearWorld
 

Mr Hopp

BeitragSo, Mai 29, 2005 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Blöd, das jedes Tutorial, das ich kenne nur Meshs und Terrain beschreibt, das ist völlig unbekannt für mich, vielen Dank! Very Happy

Edit: Aber so abstrakt ist das nur, damit du das Programm daheim testen konntest, oder? Also, wenn du meine Befehle für Texturen und so zum Komentar gemacht hast, kann ich das auch rückgängig machen.
  • Zuletzt bearbeitet von Mr Hopp am So, Mai 29, 2005 15:44, insgesamt einmal bearbeitet
 

Mr Hopp

BeitragSo, Mai 29, 2005 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, es klappt nur so halb, mit der Steuerung, die du vorschlägst, kann ich nicht gerade aus laufen, und das Problem mit den 1,80 über dem Boden habe ich auch noch nicht behoben. Eigentlich versuche ich immer im Forum nur Hinweise zu bekommen, um es dann auch selbst zu lernen, aber ich komm' einfach nicht weiter, vielleicht kappier' ich's ja auch, wenn ich den korekten nicht abstrakten ode bekommen würde. Ich weiß, du hasst dir schon sehr vel Mühe mit mir gegeben, aber das wäre super, wenn du das machen würdest. Sad
 

Klaas

BeitragSo, Mai 29, 2005 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
nö, das mußt du schon selber machen!

Mein Tipp für dich ist .. versuche am Anfang kein Spiel zu proggen sondern experimentiere erstmal mit den Befehlen und ergründe die Möglichkeiten die sie dir bieten.

Die auskommentierten sachen kannst du einfach wieder zurückdrehen, ich hab nur kein Bock mir extra Texturen anzufertigen um das Proggy zu testen.
 

Mr Hopp

BeitragMo, Mai 30, 2005 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja gut, aber was mich irritiert, wenn ich die Texturen aus deiner Demo zurücksetze, funktioniert gar nichts. Mir wird die ganze zeit "Ich stehe auf dem Wasser" angezeigt, auch wenn ich eine HightMap einbinde, mit der Burg kann ich auch nicht kollidieren
 

Klaas

BeitragMo, Mai 30, 2005 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Du scheinst keine Lust zuhaben dir selber die Mechaniken von BB anzulernen .. sorry aber ich denke ich habe dir genug geholfen.

Zitat:

wenn ich die Texturen aus deiner Demo zurücksetze, funktioniert gar nichts


... mit solchen Aussagen kann man auch nix anfangen.

Kollisions-Zeug in BB ist numal nicht so einfach, deshlab .. bau dir erstmal ein paar kleine Testprogramme damit du verstehst was da vorsichgeht und lies dir gefälligst mal die OH durch.
 

Mr Hopp

BeitragDo, Jun 02, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, aber alles was du sagst, hilft nichts, ich laufe immer noch dso nahe auf dem terrain, das ich hindurchschauen kann!

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group