Entity does not exist
Blitz3D Forums/Blitz3D Programming/Entity does not exist
| ||
This code run ok: ; Define the cubes Type Type cubes Field main Field x, y End Type For tmp=1 To 10 onecube.cubes=New cubes Next Graphics3D 1024,768,2 Cam=CreateCamera() Lit = CreateLight() PositionEntity Lit,-5,-5,0 PositionEntity Cam,0,0,-8 temp=CreateCube() HideEntity temp WaitKey() ; When we hit key, 10 new cubes are created For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs() Delay 11 Next RenderWorld Text 0,0,counter Flip WaitKey() End But this not, and i need this structuring type. How can i solve it? ; Define the cubes Type Type cubes Field main Field x, y End Type For tmp=1 To 10 onecube.cubes=New cubes Next Graphics3D 1024,768,2 Cam=CreateCamera() Lit = CreateLight() PositionEntity Lit,-5,-5,0 PositionEntity Cam,0,0,-8 temp=CreateCube() HideEntity temp WaitKey() ; When we hit key, 10 new cubes are created Copy_cubes(onecube.cubes) RenderWorld Text 0,0,counter Flip WaitKey() End Function Copy_cubes(onecube.cubes) For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs() Delay 11 Next End Function Thank you :-) |
| ||
There's no such thing as a 2 bit color depth to my knowledge, so that should either beGraphics3d 1024,768,32 Or perhaps you meant Graphics3d 1024,768,0,2 Your function cannot see a variable called temp because there isn't a variable within that function with that name and there are no global variables with that name. If you want your variable Temp in the main program to be accessible to functions, it needs to be global. Global temp = CreateCube() And now it's fine. |
| ||
Oh, i read the command help and now i understand everything: ...This is a new entity instance of an existing entity's mesh! Anything you do to the original Mesh (such as RotateMesh) will effect all the copies... I thought that the copy was a new entity and that she didn't require the original entity, for that reason i didn't put 'temp' global. jeje, i had never used CopyEntity in my programs. Yes, i meant Graphics3D 1024,768,0,2 It is good the errors prevention in Blitz 3D because Graphics3D 1024,768,2 run ok in my pc ^^ Thank you. |
| ||
I thought that the copy was a new entity and that she didn't require the original entity, for that reason i didn't put 'temp' global. jeje, i had never used CopyEntity in my programs. Just for clarity, you still needed it to be global, whether CopyEntity used the same mesh or not. You're asking it to copy an entity, but it cannot see what entity you want it to copy because temp has no value within that function. A function only has access to variables within that function and global variables. |
| ||
If you want to use mesh commands on the clone, use CopyMesh instead of CopyEntity. CopyEntity is to have different "transformations" on the same base mesh |
| ||
Wow...you read the command help and now understand 'everything'? |
| ||
Yes boomboom, i understand the oficial explanation with respect to that command. Do you read and later you don't understand? hummm, then you have a problem ^^ Greetings and thanks to all for the explanations. All the codes run ok: ; Define the cubes Type Type cubes Field main End Type For tmp=1 To 10: onecube.cubes=New cubes: Next Graphics3D 1024,768,0,2 Camera=CreateCamera(): Light=CreateLight() PositionEntity Light,-5,-5,0 : PositionEntity Camera,0,0,-8 temp=CreateCube(): HideEntity temp WaitKey() ; When we hit key, 10 new cubes are created For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) ;CopyMesh(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs():Delay 11 Next RenderWorld: Flip: WaitKey():End ---------- ; Define the cubes Type Type cubes Field main End Type Global temp For tmp=1 To 10: onecube.cubes=New cubes: Next Graphics3D 1024,768,0,2 Camera=CreateCamera(): Light=CreateLight() PositionEntity Light,-5,-5,0 : PositionEntity Camera,0,0,-8 temp=CreateCube(): HideEntity temp WaitKey() ; When we hit key, 10 new cubes are created Copy_cubes(onecube.cubes) RenderWorld: Flip: WaitKey():End Function Copy_cubes(onecube.cubes) For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) ;CopyMesh(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs() Delay 11 Next End Function ---------- ; Define the cubes Type Type cubes Field main End Type For tmp=1 To 10: onecube.cubes=New cubes: Next Graphics3D 1024,768,0,2 Camera=CreateCamera(): Light=CreateLight() PositionEntity Light,-5,-5,0 : PositionEntity Camera,0,0,-8 WaitKey() ; When we hit key, 10 new cubes are created Copy_cubes(onecube.cubes) RenderWorld: Flip: WaitKey():End Function Copy_cubes(onecube.cubes) temp=CreateCube(): HideEntity temp For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) ;CopyMesh(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs(): Delay 11: Next End Function ---------- ; Define the cubes Type Type cubes Field main End Type For tmp=1 To 10: onecube.cubes=New cubes: Next Graphics3D 1024,768,0,2 Camera=CreateCamera(): Light=CreateLight() PositionEntity Light,-5,-5,0 : PositionEntity Camera,0,0,-8 temp=CreateCube(): HideEntity temp WaitKey() ; When we hit key, 10 new cubes are created Copy_cubes(onecube.cubes,temp) RenderWorld: Flip: WaitKey():End Function Copy_cubes(onecube.cubes,temp) For onecube.cubes=Each cubes onecube\main=CopyEntity(temp) ;CopyMesh(temp) EntityColor onecube\main,Rand(255),Rand(255),Rand(255) PositionEntity onecube\main,Rand(-6,6),Rand(-6,6),Rand(8) SeedRnd MilliSecs() Delay 11 Next End Function |