Fakemauszeiger unter Draw3D - problem :x [gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

PhillipK

Betreff: Fakemauszeiger unter Draw3D - problem :x [gelöst]

BeitragSo, Feb 08, 2009 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Heya, die nervensäge fragt mal wieder ^^

Es geht um folgendes:

Ich möchte einen Mauszeiger in mein spiel einbinden, aber möchte nicht Draw3D dafür ausschalten, also muss ich ein Bild damit beschäftigen und MouseSpeedX() und Y als "bewegung" nehmen.
Klingt ja auch logisch^^

Aber irwi hab ich mich festgefressen..

Ich hab mir den Maus-umsehen krams aus dem sample "Cubewater" aus dem BB3d-demopack gepackt und etwas geändert in unser Projekt eingebaut.

Nun will ich, wenn ich ALT drücke + halte die maus steuern (altgr das selbe), wenn nicht soll ganz normal gesteuert werden.
DAS klappt soweit.

Nach der abfrage für MouseSpeedX() und Y übergebe ich die werte an eine weitere funktion.

"MausMove(mxspd2#,myspd2#)" -> myspd2# und mxspd2# sind die speed-variablen ^-^

MausMove() ->
Code: [AUSKLAPPEN]
Function MausMove(Mmove_x#, Mmove_y#)
   If Sgn(Mmove_y#)=-1 Then
      Mmove_y# = Abs(Mmove_y#)
   ElseIf Sgn(Mmove_y#)=1 Then
      Mmove_y# = Mmove_y#-(Mmove_y#*2)
   EndIf
   Maus_x# = Maus_x# + Mmove_x#
   Maus_y# = Maus_y# + Mmove_y#
   
   If Maus_x# < -512.000 Then
      Maus_x# = -512.000
      Mmove_x# = 0.000
   ElseIf Maus_x# > 512.000 Then
      Maus_x# = 512.000
      Mmove_x# = 0.000
   EndIf
   If Maus_y# < -384.000 Then
      Maus_y# = -384.000
      Mmove_y# = 0.000
   ElseIf Maus_y# > 384.000 Then
      Maus_y# = 384.000
      Mmove_y# = 0.000
   EndIf
   DrawMauszeiger(Mmove_x#, Mmove_y#)
End Function


Es fällt auf: ich negiere Mmove_y#. Das liegt am Koordinatensystem von Draw3D.
Die BEWEGUNGEN Klappen eigentlich..
Die IF abfragen sind zum checken ob ich "über den bildschirmrand" hinaus bin.

Code: [AUSKLAPPEN]
Function DrawMauszeiger(M_gewollt_x#, M_gewollt_y#)
   DrawImage3D(gui_mauszeiger, Maus_x#+M_gewollt_x#+16, Maus_y#+M_gewollt_y-16)
End Function

Hier wird gezeichnet. "+16" und "-16" sind nur dabei, weil mein Mauszeigerpic genau 32x32 pixel groß ist.

Maus_x# und Maus_y# sind Globale die die Aktuelle mausposition beinhalten.

Das problem hierbei dem krams is:

Die maus ist EXTREM unruhig..
Vorher hatte ich das Problem, das ich nie ganz bis zum rand kam & co.. dann hab ich alles nochmal nen bisschen umgeschrieben und bin von Totalem koordsystem bei der maussteuerung auf die Draw3D - koordinaten krams umgestiegen^^

Ich mein, ich kann es so lassen, aber ich verstehe nicht ganz, WARUM es unruhig läuft.. Vorallem auf der Y koordinate "zittert" die maus..
Sie scheint immer nochn stückchen wieder "zurück" zu schnellen nach einer bewegung..
Kanns nicht direkt erklären & ein screenshot zeigt das leider nicht..
Also vllt hab ich mich nur irgendwo aufgehangen..

Wenns keinem auffällt, WARUM das so ist, dann hab ich halt pech, dann lasse ich mir was anderes einfallen.. Aber als neuling möchte man lernen & ich bin grade mit meinem Latein am ende Smile Ich hoffe das ist nur ein simpler denkfehler oder ich hab etwas nicht bedacht *grins*

Lg PhillipK
  • Zuletzt bearbeitet von PhillipK am So, Feb 08, 2009 15:23, insgesamt einmal bearbeitet

Goodjee

BeitragSo, Feb 08, 2009 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
ich verstehe nich warum es nich mouseX() und mousey() tun?
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

PhillipK

BeitragSo, Feb 08, 2009 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
eeehm..^^

Mein mauszeiger flitzt immer in die Mitte vom Bildschirm, stammt das nicht aus Draw3D? o.o

*mal grade gesamten script überfliegen*

AUTSCH

Dieser thread ist wohl sinnloser,ungewollter, spam Sad Es tut mir leid..
Ich DACHTE es liegt an Draw3D wegen einer kleinen formulierung in der hilfe. ->
DrawInit3D (camera_handle): [...]die Maus in das Bildschirmzentrum bewegt und [...]

Dabei prangte fett in dem "geklauten" scriptteil ein "MoveMouse GraphicsWidth()/2,GraphicsHeight()/2"

Entschuldigt meine Engstirnigkeit, ich denke ich sollte demnächst öfters mal "genauer" hinschaun und die fehler nichtnur im vorangeschrieben krams suchen, sondern mir einen allgemeinen überblick über meine Funktionen verschaffen..

so oder so, wieder was gelernt.. >.<

*immernoch rot weils so peinlich ist*

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Feb 08, 2009 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur so angemerkt:

Die Draw3D besitzt auch eigene Mauskoordinaten-Angaben, die über die globalen MouseX3D und MouseY3D abgefragt werden können. Dazu habe ich auch ein Beispielcode ''Test, Globals.bb'' beigelegt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group