Kartenbereich Zoomen.

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Matthias

Betreff: Kartenbereich Zoomen.

BeitragDo, März 12, 2009 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay.

In meinem Momentanen Projekt soll es eine Globale Karte geben. Die ich Zoomen möchte.

Nur möchte ich den Bereich Zoomen über dem die Maus ist. Also die Maus soll als Zetraller Zoompunkt
fungieren.

Habe schon stunden daran rumgefriemelt und alles versucht. Es will aber nicht klappen.
Wie mann die Karte zentriert hab ich ja schon raus bekommen.
Aber ich weiß nicht weiter.

Ich hoffe ihr könnt mir helfen.

Hier der Code.
Mausrolltaste ist zum Zoomen da.
Linke Maustaste Karte zentrieren.

Code: [AUSKLAPPEN]

Graphics3D 800,600,32,2
Global CamViewSX=600,CamViewSY=580
Global MausZ
Camera=CreateCamera()
CameraViewport Camera,0,20,CamViewSX,CamViewSY

Cube=CreateCube()
ScaleEntity Cube,CamViewSX,CamViewSY,.1
PositionEntity Cube,0,0,CamViewSX
CubeTextur(Cube)


Repeat

RenderWorld

X=CamViewSX/2:Y=CamViewSY/2+20
Color 255,255,255:Oval X-5,Y-5,10,10,0
Zoomen(Cube)

 
Flip
Until KeyDown(1)=1
End

Function Zoomen(Mesh)
   MausRoll=MausZ-MouseZ():MausZ=MouseZ()
   MoveEntity Mesh,0,0,MausRoll*20 
   
   ;Zentrieren
   If MouseHit(1)=1 Then
      LX#=(MouseX()-CamViewSX*.5)*-2
      LY#=((MouseY()-20)-CamViewSY*.5)*2
     
      Zo#=EntityZ(Mesh)/Float(CamViewSX)
   
      NX#=(LX+EntityX#(Mesh)*(1/Float(Zo)))*Zo
      NY#=(LY+EntityY#(Mesh)*(1/Float(Zo)))*Zo
      PositionEntity Mesh,NX,NY,EntityZ(Mesh)
   End If
End Function

Function CubeTextur(Mesh)
   Tex=CreateTexture(1024,1024)
   SetBuffer TextureBuffer(Tex)
   For I=0 To 500:R=Rand(10,30)
      X=Rand(1024)-R:Y=Rand(1024)-R
      Color Rnd(255),Rnd(255),Rnd(255)
      Oval X,Y,R*2,R*2
   Next
   EntityTexture Mesh,Tex,0,0
   EntityFX Mesh,1:SetBuffer BackBuffer()
       
End Function
 

Matthias

BeitragDo, März 12, 2009 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach ewigen rumprobieren hab ichs jetzt doch geschaft. Es functioniert wie ich es mir gedacht habe.

Kann getrasht werden.

BladeRunner

Moderator

BeitragDo, März 12, 2009 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wäre nett wenn Du uns alle an deiner Lösung teilhaben lässt, das könnte anderen später mal helfen.
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group