Problem mit Sonnenschein
Übersicht

lukasimgruetBetreff: Problem mit Sonnenschein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hatte das mal angeschaut und ein Script geschrieben. Aber irgendwie will das net gehen. Es kommt keine Fehlermeldung. Könnt ihr mir bitte auf die Sprünge helfen?
Code: [AUSKLAPPEN] Graphics3D 1680,1050,32,1 Include "keyconstants.bb" SetBuffer BackBuffer() Global ritter Global Character_pivot Global PLAYER = 1 Global cam Global light Global thesun ;original sprites for lens flares Global lensflareorig1 Global lensflareorig2 Global lensflareorig3 Global lensflareorig4 ;lens flares Global lensflare1 Global lensflare2 Global lensflare3 Global lensflare4 Global lensflare5 Global lensflare6 Global lensflare7 ;are lens flares visible? Global lensflaresvisible% = False ;hud overlay pivot Global hudoverlay terrain=LoadTerrain("Heightmap.jpg") text1=LoadTexture ("colormap.png") text2=LoadTexture ("mapt2.bmp") EntityTexture terrain,text1,0,0 EntityTexture terrain,text2,0,1 TerrainDetail terrain,8000 ScaleEntity terrain,50,900,50 ScaleTexture text1,256,256 ScaleTexture text2,3,3 MoveEntity terrain,0,0,0 EntityType terrain, 1 TerrainShading =1 skytex = LoadTexture("sky2.jpg",1+8+16+32) sky = CreateSphere(64) FlipMesh sky EntityFX sky,1+16 ScaleEntity sky,24000,18000,24000 EntityOrder sky,1000 EntityTexture sky,skytex MoveEntity sky,5000,0,6000 light=CreateLight() TurnEntity light,45,90,0 water=CreatePlane() watertext=LoadTexture ("wellen.bmp",1) EntityTexture water,watertext ScaleTexture watertext,200,200 EntityShininess water,1 MoveEntity water,0,265,0 EntityAlpha water,0.6 burg = LoadMesh("modelle/burg.3ds") burg_tex = LoadTexture("texturen/burg.jpg") EntityTexture burg, burg_tex PositionEntity burg,5500,250,10000 EntityType burg,1 ScaleEntity burg,0.7,0.7,0.7 RotateEntity burg, 0,40,0 burg2 = LoadMesh("castle/castle1.x") PositionEntity burg2,5300,356,10300 EntityType burg2,1 ScaleEntity burg2,1,1,1 RotateEntity burg2, 0,40,0 baum = LoadMesh("modelle/baum.3ds") PositionEntity baum,7000,0,9700 EntityType baum,2 ScaleEntity baum,5,5,5 RotateEntity baum, 0,40,0 strand = LoadMesh("modelle/strand.3ds") strand_tex = LoadTexture("texturen/strand.jpg") EntityTexture strand, strand_tex PositionEntity strand,4000,270,4700 EntityType strand,1 ScaleEntity strand,0.011,0.011,0.011 RotateEntity strand, 0,40,0 ritter_tex = LoadTexture("texturen/lala.bmp",1) character_pivot = CreatePivot() ritter = LoadMD2("modelle/lala.md2",character_pivot) EntityTexture ritter,ritter_tex ScaleEntity ritter,1,1,1 PositionEntity character_pivot,5550,337,10000 EntityType character_pivot,PLAYER,1 EntityRadius character_pivot,25 ritter2 = LoadMD2("modelle/ritter.md2") ritter2_tex = LoadTexture("texturen/ritter.tga") EntityTexture ritter2, ritter2_tex PositionEntity ritter2,5500,340, 9950 EntityType ritter2,2 ScaleEntity ritter2,1,1,1 EntityRadius ritter2, 25 AnimateMD2 ritter2,1, 0.1, 4, 40 RotateEntity ritter2, 0,180,0 dwarf = LoadMD2("modelle/söldner.md2") dwarf_tex = LoadTexture("texturen/söldner.tga") EntityTexture dwarf, dwarf_tex PositionEntity dwarf,4000,307,4700 EntityType dwarf,2 ScaleEntity dwarf,1,1,1 EntityRadius dwarf, 1 AnimateMD2 dwarf,1, 0.1, 75, 110 RotateEntity dwarf, 0,-90,0 cam = CreateCamera(ritter) CameraZoom cam,1 CameraRange cam,1,40000 Collisions 2,1,2,2 Collisions 1,PLAYER,2,2 ;create hud overlay CreateHudOverlay() ;load the lens sprites LoadSprites() ;create the sun thesun = CreateSphere(16) ;create it ScaleEntity thesun, 50, 50, 50 ;resize it EntityRadius thesun, 50 ;resize collision sphere EntityPickMode thesun, 1, True ;make pick mode sphere and make the entity obscure others EntityColor thesun, 128, 128, 0 ;change entity's colour ;create the lens flare sprites (attached to hud) CreateLensFlares() While Not KeyHit(1) ;update lens flare effect UpdateLensFlares() movegrunt() checkgravity() x=MouseX() y=MouseY() e=CameraPick(cam,x,y) If e<>entity# If entity Then EntityColor entity,255,255,255 entity#=e EndIf If entity# EntityColor entity,255,0,0 EndIf UpdateWorld RenderWorld If KeyHit(17) Then WireMode = Not WireMode WireFrame WireMode End If Rect x,y-3,1,7 Rect x-3,y,7,1 Flip Wend End Function checkgravity() If Not EntityCollided(Character_pivot,2) TranslateEntity Character_pivot,0,-0.05,0 End If End Function Function movegrunt() If KeyDown(key_arrowpad_left) TurnEntity Character_pivot,0,3,0 End If If KeyDown(key_arrowpad_right) TurnEntity Character_pivot,0,-3,0 End If If KeyDown(key_arrowpad_up) MoveEntity Character_pivot,0,0,9 moved = 1 forward = 1 If Not ChannelPlaying (ChannelID) Then ChannelID = PlaySound (SoundID) EndIf End If If KeyDown(key_arrowpad_down) MoveEntity Character_pivot,0,0,-3 moved = 1 forward = 0 If Not ChannelPlaying (ChannelID) Then ChannelID = PlaySound (SoundID) EndIf End If If KeyDown(57) MoveEntity Character_pivot,0,20,10 moved = 1 forward = 0 If Not ChannelPlaying (ChannelID) Then ChannelID = PlaySound (SoundID) EndIf End If TranslateEntity character_pivot,0,-5,0 If moved = True If forward = True If MD2AnimTime(ritter) < 40 Or MD2AnimTime(ritter) > 46 Then AnimateMD2 ritter,1,0.1,40,46 End If End If End If If forward = False If MD2AnimTime(ritter) < 40 Or MD2AnimTime(ritter) > 46 Then AnimateMD2 ritter,1,-0.08,40,45 End If End If If moved = False If MD2AnimTime(ritter) < 0 Or MD2AnimTime(ritter) > 10 Then AnimateMD2 ritter,1,0.1,0,5 End If End If moved = 0 forward = 0 End Function End ;------------------------------------------------------------------------- ;-- F U N C T I O N S ;------------------------------------------------------------------------- ;------------------------------------------------------------------------- ;-- Load sprites ;------------------------------------------------------------------------- Function LoadSprites() ;--lens flares lensflareorig1 = LoadSprite( "lens1.jpg" ) If lensflareorig1 = 0 Then RuntimeError "file 'images\lens1.png' does not exist!" HideEntity lensflareorig1 ;hide as these entitys only used for CopyEntity() lensflareorig2 = LoadSprite( "lens2.jpg" ) If lensflareorig2 = 0 Then RuntimeError "file 'images\lens2.png' does not exist!" HideEntity lensflareorig2 lensflareorig3 = LoadSprite( "lens3.jpg" ) If lensflareorig3 = 0 Then RuntimeError "file 'images\lens3.png' does not exist!" HideEntity lensflareorig3 lensflareorig4 = LoadSprite( "lens4.jpg" ) If lensflareorig4 = 0 Then RuntimeError "file 'images\lens4.png' does not exist!" HideEntity lensflareorig4 End Function ;------------------------------------------------------------------------- ;-- Create entities for lens flare effect ;------------------------------------------------------------------------- Function CreateLensFlares() lensflare1 = CopyEntity( lensflareorig1, hudoverlay ) ;primary flare ScaleSprite lensflare1, .5, .5 ;scale according to screen size and size of sprite picture EntityAlpha lensflare1, .3 ;set alpha blend amount EntityOrder lensflare1, -1 ;place in front of other entitys HideEntity lensflare1 ;hide initially lensflare2 = CopyEntity( lensflareorig2, hudoverlay ) ;first halo ScaleSprite lensflare2, .25, .25 ;scale is 1/2 of lens flare #1 EntityAlpha lensflare2, .3 EntityOrder lensflare2, -2 ;place in front of previous lens flare HideEntity lensflare2 lensflare3 = CopyEntity( lensflareorig1, hudoverlay ) ;small burst ScaleSprite lensflare3, .125, .125 ;scale is 1/4 of lens flare #1 EntityAlpha lensflare3, .2 EntityOrder lensflare3, -3 ;place in front of previous lens flare HideEntity lensflare3 lensflare4 = CopyEntity( lensflareorig2, hudoverlay ) ;next halo ScaleSprite lensflare4, .5, .5 ;same scale as lens flare #1 EntityAlpha lensflare4, .2 EntityOrder lensflare4, -4 ;place in front of previous lens flare HideEntity lensflare4 lensflare5 = CopyEntity( lensflareorig1, hudoverlay ) ;next burst ScaleSprite lensflare5, .25, .25 ;scale is 1/2 of lens flare #1 EntityAlpha lensflare5, .2 EntityOrder lensflare5, -5 ;place in front of previous lens flare HideEntity lensflare5 lensflare6 = CopyEntity( lensflareorig3, hudoverlay ) ;next halo ScaleSprite lensflare6, .125, .125 ;scale is 1/4 of lens flare #1 EntityAlpha lensflare6, .2 EntityOrder lensflare6, -6 ;place in front of previous lens flare HideEntity lensflare6 lensflare7 = CopyEntity( lensflareorig1, hudoverlay ) ;next burst ScaleSprite lensflare7, .125, .125 ;scale is 1/4 of lens flare #1 EntityAlpha lensflare7, .2 EntityOrder lensflare7, -7 ;place in front of previous lens flare HideEntity lensflare7 lensflaresvisible% = False ;lens flares are hidden by default End Function ;------------------------------------------------------------------------- ;-- Update and display lens flares ;------------------------------------------------------------------------- Function UpdateLensFlares() ;-- is the sun in view? and make sure it's not blocked by other blocking entities If EntityInView( thesun, cam ) = True And EntityVisible( cam, thesun ) = True ;determine sun visible x/y coords using camera 3d to 2d conversion CameraProject cam, EntityX(thesun,True), EntityY(thesun,True), EntityZ(thesun,True) lx = ProjectedX() ;position on 2d screen ly = ProjectedY() ;determine center of screen cx = displaywidth / 2 cy = displayheight / 2 ;determine vector from center to sun's x/y screen position vx = cx - lx vy = cy - ly If vx = 0 And vy = 0 distance# = 1.0 ;to fix sqr(0) fail Else distance# = Sqr( (vx*vx)+(vy*vy) ) ;determine length of vector (pythagoras) EndIf ;normalise vector (determine 1 unit size in x and y coordinates) nx# = vx / distance# ny# = vy / distance# ;== calculate lens flare positions ;calculate lens flare 1 position (maximum distance) f1x = cx - (nx# * distance) f1y = cy - (ny# * distance) ;calculate lens flare 2 position (half distance) f2x = cx - (nx# * (distance/2)) ;could optimize but leaving as divide for readability f2y = cy - (ny# * (distance/2)) ;calculate lens flare 3 position (one third of distance) f3x = cx - (nx# * (distance/3)) f3y = cy - (ny# * (distance/3)) ;calculate lens flare 4 position (one eight distance) f4x = cx - (nx# * (distance/8)) f4y = cy - (ny# * (distance/8)) ;calculate lens flare 5 position f5x = cx - (nx# * (-distance/2)) f5y = cy - (ny# * (-distance/2)) ;calculate lens flare 6 position f6x = cx - (nx# * (-distance/4)) f6y = cy - (ny# * (-distance/4)) ;calculate lens flare 7 position f7x = cx - (nx# * (-distance/5.5)) f7y = cy - (ny# * (-distance/5.5)) ;=== position lens flares entities (relative to camera hud fixed pivot) PositionEntity lensflare1, f1x, f1y, 1 PositionEntity lensflare2, f2x, f2y, 1 PositionEntity lensflare3, f3x, f3y, 1 PositionEntity lensflare4, f4x, f4y, 1 PositionEntity lensflare5, f5x, f5y, 1 PositionEntity lensflare6, f6x, f6y, 1 PositionEntity lensflare7, f7x, f7y, 1 ;make flars visible? (if not already visible) If lensflaresvisible% = False ShowEntity lensflare1 ShowEntity lensflare2 ShowEntity lensflare3 ShowEntity lensflare4 ShowEntity lensflare5 ShowEntity lensflare6 ShowEntity lensflare7 lensflaresvisible% = True EndIf ;sun not visible from camera Else ;lens flares previously visible? then hide them If lensflaresvisible% = True HideEntity lensflare1 HideEntity lensflare2 HideEntity lensflare3 HideEntity lensflare4 HideEntity lensflare5 HideEntity lensflare6 HideEntity lensflare7 lensflaresvisible% = False EndIf EndIf End Function ;------------------------------------------------------------------------- ;-- Create HUD overlay entity stuff ;------------------------------------------------------------------------- ;taken from overlay.bb written by simon@acid Function CreateHudOverlay() hudoverlay = CreatePivot( cam ) ;<<attach to camera! aspect# = Float(displayheight) / displaywidth PositionEntity hudoverlay, -1, aspect, 1 scale# = 2.0 / displaywidth ScaleEntity hudoverlay, scale, -scale, scale End Function |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code hinknallen, sagen dass es nicht geht. Was sollen wir tun? Wir können leider nicht Hellsehen lukasimgruet.
Erkläre uns doch bitte was du siehst und was man sehen sollte. Generell eine genauere Beschreibung wäre hilfreich. |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mir nur kurz den Code angeschaut, ist einfach zu viel unwichtiges dabei.
Aber was mir aufgefallen ist Code: [AUSKLAPPEN] ;are lens flares visible? Global lensflaresvisible% = False Kann es sein, dass man nichts sieht, weil du die Flares ausgeschaltet hast? Desweiteren kannst du die Flares auch in einem bzw. 2 Arrays laden, ist ein wenig übersichtlicher und vermutlich auch weniger schreibarbeit, als jedes seperat zu laden. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
... und das kommt dabei raus wenn man Code kopiert ohne ihn zu verstehen.
Lukasimgruet, ich werde Dir jetzt was sagen was Dir nicht gefallen wird: Du wirst so kein Rollenspiel / MMORPG / wasauchimmer fertigstellen. Du hast dich an ein Projekt gewagt was noch viel zu groß und schwer für Dich ist. Back lieber kleine Brötchen und lern erst mal die Grundlagen der Programmierung. Verabschiede Dich für den Anfang von 3D und von tollen Grafikeffekten. Wichtiger ist dass Du kapierst wie eine funktionierende Spielmechanik auszusehen hat. Mach ein Pong oder ein Tetris, damit lernst Du kiloweise übers programmieren. |
||
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 |
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Forum ist da um fragen zu stellen. Wenn du mir bei meinen fragen nicht helfen willst, musst du das ganz klar nicht tun, doch Dinge über mich zu sagen, von denen du gar nichts weisst, das ist sicher nicht der Sinn. Ich habe sehr wohl Erfahrung mit der Programmierung, aber noch nicht auf diesem Gebiet. Ich lerne diese Sprache auch erst seid 4 Wochen und ich kann mich nicht nur den ganzen Tag mit diesem Thema beschäftigen, da ich auch noch zur Schule muss. | ||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Richtig, das Forum ist da um Fragen zu stellen. Und das hast du 1. schonmal überhaupt nicht getan. Du hast uns einen Code hingelegt und gesagt: "Geht nicht." Du erwartest jetzt also von uns, dass wir deinen Code verbessern, ohne, dass wir überhaupt wissen, was du möchtest, oder wo in etwa der Fehler liegen könnte. Was noch dazu kommt ist, dass der Lens-Flare Code ganz offensichtlich nicht von dir kommt (man beachte die englischen Kommentare) und du ihn wohl einfach kopiert hast, ohne zu versuchen ihn richtig zu verstehen. Das hat BladeRunner wohl dazu verleitet, dir einen durchaus richtigen Tipp zu geben. Fang kleiner an. Du meinst wohl, ein Tetris währe zu niedrig für jemanden wie dich, aber das ist es nicht. Ein Tetris verlangt dir eine Menge ab und ist eine herrliche Übung, um das Programmieren zu erlernen. Und für jemanden, der keine Types benutzt und alles Hardcoded in der Hauptschleife macht, würde das sehr viel Sinn machen. BladeRunner wollte dich keineswegs beleidigen sondern lediglich darauf hinweisen, dass du noch nicht bereit bist.
Zitat: Ich habe sehr wohl Erfahrung mit der Programmierung, aber noch nicht auf diesem Gebiet.
Das sagt komischerweise jeder Anfänger hier... |
||
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, das forum ist dazu da, um fragen zu stellen doch du hast es schon richtig gesagt:
Zitat: Ich habe sehr wohl Erfahrung mit der Programmierung, aber noch nicht auf diesem Gebiet. Ich lerne diese Sprache auch erst seid 4 Wochen und ich kann mich nicht nur den ganzen Tag mit diesem Thema beschäftigen, da ich auch noch zur Schule muss.
nur mal an meinem beispiel: ich hab auch schon erfahrung in informatik (hab in mathematikprogrammen programmiert...) ich lerne B3D seit anfang dezember und ich kann mich auch nicht den ganzen tag damit beschäftigen, hab ja auch noch schule, freunde usw... aber deswegen, grade weil ich noch nicht sogut auf dem gebiet spieleprogrammierung bin, programmiere ich auch noch nciht ein super 3d game... es ist i-wann (vll. in nem jahr oder so) mein ziel ein 3D RPG zu schreiben, doch bis dahin schreibe ich kleine sachen wie Snake, Tetris, supermarioklon usw... nimm dir den rat von Bladerunner zu herzen und übernimm dich nciht! sonst wirst du zu schnell den spaß am progen verlieren... mfg jokerman29 |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Natürlich ist das Forum da um Fragen zu stellen. Ich gab Dir nur eine weiterführende Antwort auf deine Frage. Es ist offensichltich dass Du den Code mit dem Du da hantierst nicht verstehst und mein RAT an Dich lautet: mach was kleineres.
So wirst Du über kurz oder lang frustriert aufgeben. Nebenbei mag es ja durchaus sein dass Du schon in anderen Dialekten programmiert hast, aber man sieht deinem Code einfach an dass es an einigen grundlegenden Strukturen fehlt. Du kannst auch gern weiter mit copy und paste arbeiten, aber Du wirst damit scheitern. Solange Du also nicht wirklich fit mit der Sprache bist - und du sagst ja selbst du bist es noch nicht - empfehle ich Dir dringend keine Großprojekte anzufangen um dich nicht zu sehr zu deprimieren. |
||
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 |
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe verstanden und werde nun mit den Tutorials von Rob beginnen, scheinen ja die besten zu sein ![]() |
||
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
lukasimgruet hat Folgendes geschrieben: Ich habe verstanden und werde nun mit den Tutorials von Rob beginnen, scheinen ja die besten zu sein gut so ![]() ![]() aber das tutorial kann ich dir auch noch empfehlen (war meine 1. anlaufstelle): http://de.wikibooks.org/wiki/B...y-Tutorial das erklärt alles wirklich sehr gut. mfg jokerman29 |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group