Prozedurdeklerationen sollte man aber nicht in If Bedingungen schreiben
Edit: War wirklich missverständlich, so besser?
Hauptmenü in PB3D
Zuletzt geändert von Batze am 20.06.2005 20:56, insgesamt 1-mal geändert.
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Code: Alles auswählen
If 0=a
Procedure Fehler()
;Hier steht irgendwas
EndProcedure
EndIf
Line 3 - A Procedure can't be Created inside an If, Repeat, While or For.
Um nochmal auf Green Snakes Problem zurückzukommen:
Aber warum lädst du das Bild AAA.bmp bei jedem starten des Hauptmenüs?
Code: Alles auswählen
#CameraSpeed = 5
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY
Procedure Hauptmenu()
LoadSprite(0,"AAA.bmp")
Repeat
DisplaySprite(0,0,0)
ExamineKeyboard()
FlipBuffers()
ClearScreen(0,0,0)
If KeyboardPushed(#PB_Key_Escape) : quit = 1 : EndIf
Until KeyboardPushed(#PB_Key_Return) Or quit = 1
ProcedureReturn quit
EndProcedure
If InitEngine3D()
Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
Add3DArchive("Data\Skybox.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
AmbientColor(RGB(255,255,255))
CreateMaterial (0, LoadTexture(0, "Terrain_Texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "Terrain_Detail.jpg"), 1)
CreateTerrain("Terrain.png", MaterialID(0), 4, 0.6, 4, 4)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 128, 25, 128)
SkyDome("Clouds.jpg",10)
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
If KeyboardPushed(#PB_Key_Escape) : Hauptmenu() : EndIf
Height.f = TerrainHeight(CameraX(0), CameraZ(0))
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, -CameraY(0)+Height+8, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) And Hauptmenu()
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Na klar geht sowas nicht. Wer kommt schon auf die Idee das so zu machen? Einen Sinn hat das ganze nicht wirklich.
Ich dachte zu meinst sowas:Oder sowas:
*sichdievorigenPostsanschaut*
Ah, jetzt weiß ich auch, wie du darauf kommst. Tststs... tjaja
Dann ist ja alles klar.
Ich dachte zu meinst sowas:
Code: Alles auswählen
Procedure.l GetRandom()
ProcedureReturn Random(1)
EndProcedure
For a.l = 1 To 50
If GetRandom()
Debug "ja"
Else
Debug "nein"
EndIf
Next
Code: Alles auswählen
Procedure.s GetText()
ProcedureReturn "BliBlablubb"
EndProcedure
a = 0
If a = -a
Debug GetText()
EndIf

Ah, jetzt weiß ich auch, wie du darauf kommst. Tststs... tjaja

Dann ist ja alles klar.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
das wegen dem laden....klar, das war nur zur demo...ich hatte leider sehr wenig zeit.
ich werde das natürlich am anfang 1 mal machen
edit:
@Batze
danke, für en vorschlag...warum bin ich nich draufgekommen?
werde ihn noch weiter ausbauen..danke nochmals
2. wegen der proc in der if. wie gesagt, zu wenig zeit = schnell code geschrieben, schnell geschrieben = viele fehlr, viele fehler = proc in der if abfrage
ich werde das natürlich am anfang 1 mal machen

edit:
@Batze
danke, für en vorschlag...warum bin ich nich draufgekommen?
werde ihn noch weiter ausbauen..danke nochmals
2. wegen der proc in der if. wie gesagt, zu wenig zeit = schnell code geschrieben, schnell geschrieben = viele fehlr, viele fehler = proc in der if abfrage

-.-"