Draw3D - Position für Maus

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

ToeB

Betreff: Draw3D - Position für Maus

BeitragMo, Jul 05, 2010 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein ich suche nicht MouseX3D und MouseY3D Wink

Ich brauche für eine Bestimmte Mausbewegung mal eben eure Hilfe. Und zwar geht es darum das sich alles auf einer Tilemap abspielt (-ScrollX,-ScrollY) und mit Draw3D gemalt wird (x+400, -y+300). Jetzt bestimme ich den Abstand zum Player und verschiebe anhand dieses Abstandes die ScrollX / Y werte. Das ganze funtz zwar so wie ich das möchte (also das die Maus auch außerhalb des Bildschirmes hingehen kann, halt bis zu einer reichweite), aber es ist sehr unschön und schlecht zu spielen. Deshalb muss ich, nachdem ich die ScrollX / Y angepasst habe, errechnen, wo die Maus jetzt sein soll, da die Maus sich ja nicht mit der ScrollX/Y koordinate mitdreht. Wer das nicht verstanden haben sollte Very Happy :
user posted image
Legende :
Rechteck : Bildschirm (-> ScrollX / ScrollY )
Roterpunkt : Spieler
Blauerpunkt : Zeilkreuz
Gelberpunkt : Mausposition (-> MouseX3D / MouseY3D )

Erster schritt also der anfang, danach wird die Maus bewegt (und auch das Ziel), danach werden die ScrollX/Y werte angepasst und wie man sieht verschibt sich die MouseX3D/Y3D mit, 4er schritt (extra andersfarbig), so soll es aussehen.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

das wurgel

BeitragMo, Jul 05, 2010 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst die Maus beim Scrollen mit MoveMouse verschieben. MouseX3D und MouseY3D errechnen sich ja aus den echten Mauskoordinaten. Dann hast du aúch keine Probleme, wenn sich die "echte" Maus aus dem Fenster bewegt.
1 ist ungefähr 3

ToeB

BeitragMo, Jul 05, 2010 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja Movemouse hab ich schon probiert, dumm ist nur dass die maus urplötzlich kreisende bewegungen macht, und die um das ganze fenster geht... Ursache ungeklärt. Ich probier einfach ein bisschen rum.. Danke trotzdem danke Very Happy

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jul 06, 2010 0:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir deine Frage mehrfach durchgelesen, und so wirklich sicher bin ich mir nicht was du erreichen willst. Aber falls ich dich richtig verstanden habe, dann hab ich folgende Lösung für dich.

Code: [AUSKLAPPEN]
Graphics3D 1024,768,0,2
SetBuffer BackBuffer()

Local Timer=CreateTimer(58)
Local Camera=CreateCamera()
CameraClsColor Camera,64,64,64

Include "..\Includes\Draw3D2.bb"

DrawInit3D(Camera)

Const XDim=416
Const YDim=288
Local Native=LoadImage3D("..\Natives\Gauss.png",2,2,0,0)
Local XMap,YMap
Local X,Y




While Not KeyHit(1)
   
   ;GITTER/ZEICHNEN
   For Y=-384 To +384 Step 64
      For X=-512 To +512 Step 64
         Plot3D(Native,X-XMap,Y-YMap,3)
      Next
   Next
   
   ;BEWEGUNGSBERECHNUNG
   If MouseX3D>+XDim Then XMap=XMap+MouseX3D-XDim: MoveMouse MouseX()-MouseX3D+XDim,MouseY()
   If MouseX3D<-XDim Then XMap=XMap+MouseX3D+XDim: MoveMouse MouseX()-MouseX3D-XDim,MouseY()
   If MouseY3D>+YDim Then YMap=YMap+MouseY3D-YDim: MoveMouse MouseX(),MouseY()+MouseY3D-YDim
   If MouseY3D<-YDim Then YMap=YMap+MouseY3D+YDim: MoveMouse MouseX(),MouseY()+MouseY3D+YDim
   
   ;MAUSPOSITION
   Rect3D(Native,MouseX3D,MouseY3D,8,8,0,1)
   
   ;GITTERGRENZEN
   XMap=XMap Mod 64
   YMap=YMap Mod 64
   
   ;RAHMEN/ZEICHNEN
   Rect3D(Native,0,0,XDim,YDim,0,1)
   
   WaitTimer Timer
   RenderWorld
   Clear3D()
   Flip 0
Wend
End

Und ja, man bräuchte eine MoveMouse3D-Funktion für die Draw3D. Vielleicht mach ich das mal die Tage.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group