Spiegel & Animationen, Wie geht das??
Übersicht

![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem, Kevin, bist du. Du bist nicht willens unsere Beiträge zu lesen, nur so kann ich mir erklären, dass du glaubst, wir könnten aus "es geht nicht" irgendeine sinnvolle Information entnehmen.
Du benutzt Nicdels Code - hast du seine Hinweise jetzt gelesen, verstanden und beachtet? Hast du lauffähigen Code gepostet, anhand dem man dir zeigen kann, wo der Fehler liegt? Du gibst dir keine Mühe - warum sollten wir? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, zum allerletzten mal: Ich habe zuerst ein Viereck (mesh) auf dei position des spiegels gelegt, dann die Functions aus dem Beispiel in meinen Code gepackt. Ich kann das Programm normal starten bloß auf dem Viereck ist die Reflection nicht zu sehen!
Code: [AUSKLAPPEN] Type Reflection
Field cam1 Field tex Field entity, re Field update,time, ur End Type Function CreateReflection(SpiegelRefect, cam1, tex_size,update=10) rf.Reflection = New Reflection rf\entity = SpiegelRefect rf\re = SpiegelRefect ;rf\cam1 = CreateCamera() rf\tex = CreateTexture(tex_size,tex_size,1 + 128 + 256) rf\update = update rf\ur = 1 EntityTexture entity,rf\tex End Function Function UpdateReflections() End Function Function RemoveReflection(SpiegelRefect, new_tex = -1) For rf.Reflection = Each Reflection If rf\re = entity FreeEntity cam1 FreeTexture rf\tex If new_tex > 0 EntityTexture entity,new_tex ElseIf new_tex = 0 white_tex = CreateTexture(1,1) WritePixel 0,0,$FFFFFF,TextureBuffer(white_tex) EntityTexture entity,white_tex FreeTexture white_tex EndIf Delete rf Exit EndIf Next End Function Function ReflectionState(SpiegelRefect,update) For rf.Reflection = Each Reflection If rf\re = entity rf\ur = update Exit EndIf Next End Function ;Function UpdateReflections() ;End Function |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kevin hat Folgendes geschrieben: Ich habe zuerst ein Viereck (mesh) auf dei position des spiegels gelegt, dann die Functions aus dem Beispiel in meinen Code gepackt. Und? Wo ist der Code dazu?
Warum ist "Function UpdateReflections()" Auskommentiert/Leer ? Hast du Nicdels Beitrag dazu gelesen? Du postest nicht den Code - Niemand kann dir helfen. Punktum. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Type Reflection
Field cam1 Field tex Field entity, re Field update,time, ur End Type Function CreateReflection(SpiegelRefect, cam1, tex_size,update=10) rf.Reflection = New Reflection rf\entity = SpiegelRefect rf\re = SpiegelRefect rf\cam1 = CreateCamera() rf\tex = CreateTexture(tex_size,tex_size,1 + 128 + 256) rf\update = update rf\ur = 1 EntityTexture entity,rf\tex End Function Function UpdateReflections() For rf.Reflection = Each Reflection If MilliSecs()-rf\time > rf\update And rf\ur = 1 And EntityInView(rf\re,rf\entity) tex_sz = TextureWidth(rf\tex) ShowEntity rf\cam1 HideEntity rf\entity PositionEntity rf\cam1, EntityX#(rf\entity), EntityY#(rf\entity), EntityZ#(rf\entity) CameraClsMode rf\cam1, False, True CameraViewport rf\cam1, 0, 0, tex_sz, tex_sz SetCubeFace rf\tex, 0 RotateEntity rf\cam1, 0, 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) SetCubeFace rf\tex, 1 RotateEntity rf\cam, 0, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) SetCubeFace rf\tex, 2 RotateEntity rf\cam1, 0, - 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) SetCubeFace rf\tex, 3 RotateEntity rf\cam1, 0, 180, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) SetCubeFace rf\tex, 4 RotateEntity rf\cam1, - 90, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) SetCubeFace rf\tex, 5 RotateEntity rf\cam1, 90, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ShowEntity rf\entity HideEntity rf\cam1 rf\time = MilliSecs() EndIf Next End Function Function RemoveReflection(SpiegelRefect, new_tex = -1) For rf.Reflection = Each Reflection If rf\re = entity FreeEntity cam1 FreeTexture rf\tex If new_tex > 0 EntityTexture entity,new_tex ElseIf new_tex = 0 white_tex = CreateTexture(1,1) WritePixel 0,0,$FFFFFF,TextureBuffer(white_tex) EntityTexture entity,white_tex FreeTexture white_tex EndIf Delete rf Exit EndIf Next End Function Function ReflectionState(SpiegelRefect,update) For rf.Reflection = Each Reflection If rf\re = entity rf\ur = update Exit EndIf Next End Function Fehlermeldung : Type "field" not found |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tipp: Wirf den Debugger an, kompiliere und schau dir die Zeile, die er markiert, genau an - und du wirst sehen, dass du dich ganz einfach verschrieben hast. | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Debugger geht garnicht erst auf! (und SpiegelRefect soll auch so heißen) | ||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann schalte den Debugger ein. In der Standard-IDE unter Programm - dann das Häkchen bei "Debug Enabled?" setzen. | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
PhillipB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke mal das kevin in an hat dieses Problem hatte ich auch da ging er auch ned an trotz hacken! | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Fehler ist "Type field not found", nicht 'Type "field" not found' ![]() Sprich: Du versuchst auf ein nonexistentes Feld zuzugreifen. In deinem Fall cam, statt cam1 in updatereflections. EDIT: Ja, da springt der debugger bedauerlicherweise nicht in die passende Zeile. Ärgerliches Mißverhalten seitens der IDE. EDIT 2: ich bin zu sehr bmax gewohnt... ![]() |
||
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 |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur als Hinweis: Diese Meldung hat nichts mit dem Debugger zu tun. Der Debugger springt an, wenn während dem Ausführen des Programmes ein Fehler entsteht (z.B. man greift auf eine Typevariable zu, die Null ist).
Dieser Fehler hier kommt aber schon während dem Kompilieren, sprich, in dem Schritt, in dem der Code in eine Exe umgewandelt wird. Der wird angezeigt, auch wenn das Häkchen bei "Debug enabled" nicht gesetzt ist, da sie ja nichts mit dem Debugger zu tun hat. Daher poppt bei dem Fehler z.B. auch das Debugfenster nicht auf. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, bei mir funktioniert das game, aber das Objekt "O405" ist weg und auf dem Objekt wo die spiegelung sein soll, ist keine spiegelung
Code: [AUSKLAPPEN] Type Reflection Field camera Field tex Field entity, re Field update,time, ur End Type PositionEntity cam1, 0, 0, 0 light = CreateLight() RotateEntity light, 90, 0, 0 prim1 = LoadMesh("O405\Mirror.3ds") PositionEntity prim1, 0, 10, 0 ScaleEntity prim1,3,3,3 EntityFX prim1,1 CreateReflection(prim1, cam, 128, 10) reflect_update = 1 factor = 7 test_obj1 = CreateCylinder() FitMesh test_obj1, - 10, 0, - 10, 5,9,7 EntityColor test_obj1, 255,200,0 test_obj2 = CreateCone() FitMesh test_obj2, 10, 0, 10, 6, 7, 8 EntityColor test_obj2,100,150,255 test_piv = CreatePivot() PositionEntity test_piv, 0, 15, 0 test_obj3 = CreateSphere(16,test_piv) ScaleEntity test_obj3,1,0.2,1 PositionEntity test_obj3, 0, 0, 10 SetBuffer BackBuffer() timer = CreateTimer(60) Color 0,0,0 While Not KeyDown(1) mxs# = mxs# + (MouseXSpeed() / 5.0) mys# = mys# + (MouseYSpeed() / 5.0) RotateEntity cam1, mys#, - mxs#, 0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 If KeyDown(17) MoveEntity cam1, 0, 0, 0.6 If KeyDown(31) MoveEntity cam1, 0, 0, -0.6 If KeyDown(32) MoveEntity cam1, 0.6, 0, 0 If KeyDown(30) MoveEntity cam1, -0.6, 0, 0 If KeyHit(200) If factor < 10 factor = factor + 1 RemoveReflection(prim1) CreateReflection(prim1, cam1, 2^factor, 10) EndIf If KeyHit(208) If factor > 0 factor = factor - 1 RemoveReflection(prim1) CreateReflection(prim1, cam1, 2^factor, 10) EndIf If KeyHit(57) reflect_update = 1-reflect_update: ReflectionState(prim1, reflect_update) TurnEntity prim1,0,1,0 TurnEntity test_piv, 0, 2, 0 UpdateReflections() RenderWorld tsz = 2^factor Flip 0 If Not KeyDown(29) WaitTimer(timer) Wend End Function CreateReflection(entity, cam1, tex_size,update=10) rf.Reflection = New Reflection rf\entity = cam rf\re = entity rf\camera = CreateCamera() rf\tex = CreateTexture(tex_size,tex_size,1 + 128 + 256) rf\update = update rf\ur = 1 EntityTexture entity,rf\tex End Function Function RemoveReflection(entity, new_tex = -1) For rf.Reflection = Each Reflection If rf\re = entity FreeEntity rf\camera FreeTexture rf\tex If new_tex > 0 EntityTexture entity,new_tex ElseIf new_tex = 0 white_tex = CreateTexture(1,1) WritePixel 0,0,$FFFFFF,TextureBuffer(white_tex) EntityTexture entity,white_tex FreeTexture white_tex EndIf Delete rf Exit EndIf Next End Function Function ReflectionState(entity,update) For rf.Reflection = Each Reflection If rf\re = entity rf\ur = update Exit EndIf Next End Function Function UpdateReflections() For rf.Reflection = Each Reflection ;If MilliSecs()-rf\time > rf\update And rf\ur = 1 And EntityInView(rf\re,rf\entity) ;tex_sz = TextureWidth(rf\tex) ;ShowEntity rf\camera ;HideEntity rf\entity ;PositionEntity rf\camera, EntityX#(rf\entity), EntityY#(rf\entity), EntityZ#(rf\entity) ;CameraClsMode rf\camera, False, True ;CameraViewport rf\camera, 0, 0, tex_sz, tex_sz ;SetCubeFace rf\tex, 0 ;RotateEntity rf\camera, 0, 90, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;SetCubeFace rf\tex, 1 ;RotateEntity rf\camera, 0, 0, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;SetCubeFace rf\tex, 2 ;RotateEntity rf\camera, 0, - 90, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;SetCubeFace rf\tex, 3 ;RotateEntity rf\camera, 0, 180, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;SetCubeFace rf\tex, 4 ;RotateEntity rf\camera, - 90, 0, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;SetCubeFace rf\tex, 5 ;RotateEntity rf\camera, 90, 0, 0 ;RenderWorld ;CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(rf\tex) ;ShowEntity rf\entity ;HideEntity rf\camera ;rf\time = MilliSecs() ;EndIf Next End Function |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nuja, der Code der die Reflektionen updaten soll ist ja auch augenscheinlich komplett auskommentiert. Wundert mich also nicht wenn da nix zu sehen ist. Testen kann ich es mangels der Mediadateien nicht.
Mich beschleicht so ein wenig der Eindruck dass Du nicht wirklich weisst was Du da tust. Wie wäre es wenn Du erstmal die Grundlagen des Programmierens lernst bevor Du dich an komplexe Probleme wagst? Ich denke nämlich wir vergeuden hier nur die Zeit mehrerer Leute. |
||
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 |
Kevin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber wenn ich es wieder "aktiviere" bekomme ich eine Fehlermeldung vom debugger
mit "Entity does not exist" |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann schau nach welche Entity nicht existiert (der debugger wird dir dabei helfen) und dann überlege warum sie nicht existiert (indem Du deinen Code im Kopf durchgehst. Du kannst auch stop![]() Dann behebst Du den Fehler. Das ganze nennt sich debugging, und du sollstest lernen das selbstständig tun zu können, wenn Du mehr als nur 3-Zeiler programmieren willst. Zudem ist es deine Aufgabe, nicht unsere, denn Du willst ja ein fehlerfreies Programm. |
||
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 |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist dir denn bewusst,
![]() Solche Dinge musst du wissen, sonst wirst du nie alleine ein Spiel programmieren können. Wenn du nicht weisst, was diesen Fehler verursacht, frag uns doch danach. Denn das wäre einiges spezifischer, was für uns (inkl. dich) den Vorteil hätte, dass eine einfache, kurze Antwort kommen könnte, die du dir merken kannst. Wenn wir einfach so, ohne zu wissen, wie du dein Problem verursacht hast, deinen Code korrigieren, wirst du den Grund (wieso es vorher nicht lief und wieso es nun plötzlich geht) nie erfahren. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group