minib3d camerapick problem

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Goodjee

Betreff: minib3d camerapick problem

BeitragSa, März 07, 2009 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
gutn tag,
ich habe das problem, dass camerapick bei manchen kamerapositionen perfekte koordinaten liefert, bei anderen kamerapositionen gar keine oder falsche. mache ich was falsch oder ist da was falsch?

hier der code, danke im vorraus:

Code: [AUSKLAPPEN]
SuperStrict
Framework SIDESIGN.minib3d
Graphics3D 800,600

Local raster:TTexture=LoadTexture("raster.png")
ScaleTexture(raster,0.01,0.01)
Local plane:TSprite=CreateSprite()
SpriteViewMode(plane,2)
ScaleEntity(plane,100,100,1)
EntityTexture(plane,raster)
RotateEntity(plane,90,0,0)
EntityPickMode(plane,2)
Local cam:TCamera=CreateCamera()
MoveEntity(cam, 0, 10,0)
RotateEntity(cam,90,0,0)
Repeat
PositionEntity(cam,EntityX(cam),MouseZ(),EntityZ(cam))
If(MouseHit(MOUSE_LEFT))
   
   If(CameraPick(cam,MouseX(),MouseY())=plane)
      Local cube:TEntity=CreateCube();
      PositionEntity(cube,PickedX(),0,PickedZ())
   EndIf
End If
RenderWorld
Flip
Until KeyHit(KEY_ESCAPE) Or AppTerminate()

EDIT:
meine vermutung, dass es an den sprites liegt hat sich nicht bestätigt, mit meshes geht es auch nich:

Code: [AUSKLAPPEN]
SuperStrict
Framework SIDESIGN.minib3d
Graphics3D 800,600

Local raster:TTexture=LoadTexture("raster.png")
ScaleTexture(raster,0.01,0.01)
Local light:TLight=CreateLight(1)
PositionEntity light,0,100,0
Local plane:TMesh=CreateMesh();CreateSurface(plane);
Local a:Int=AddVertex(GetSurface(plane,1),-1,-1,0,0,0)
AddVertex(GetSurface(plane,1),1,-1,0,1,0)
AddVertex(GetSurface(plane,1),1,1,0,1,1)
AddVertex(GetSurface(plane,1),-1,1,0,0,1)
AddTriangle(GetSurface(plane,1),a+2,a+1,a)
AddTriangle(GetSurface(plane,1),a,a+3,a+2)
ScaleEntity(plane,100,100,1)
EntityTexture(plane,raster)
RotateEntity(plane,90,0,0)
EntityPickMode(plane,2)
Local cam:TCamera=CreateCamera()
MoveEntity(cam, 0, 10,0)
RotateEntity(cam,90,0,0)
Repeat
PositionEntity(cam,EntityX(cam),MouseZ(),EntityZ(cam))
If(MouseHit(MOUSE_LEFT))
   
   If(CameraPick(cam,MouseX(),MouseY())=plane)
      Local cube:TEntity=CreateCube();
      PositionEntity(cube,PickedX(),0,PickedZ())
   EndIf
End If
RenderWorld
Flip
Until KeyHit(KEY_ESCAPE) Or AppTerminate()
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group