Cursor springt
Übersicht

![]() |
NightPhoenixBetreff: Cursor springt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problem:
Der Cursor springt bei jedem Mausklick in den untreren Bildschirmrand Ich weiß selbst nicht wieso das so ist, aber wenn ich die Variable "mmy" negativ setze springt der Cursor. Ist "mmy" positiv bleibt alles normal! Aber um die richtigen Koordinaten zu berechnen ist das negativieren von "mmy" nötig. Bis auf "MoveEntity Cursor" wird der Cursor aber nie bewegt, auch nicht wenn man die Maustaste drückt. Hängt das vielleicht mit dem "MoveMouse" in der Abfrage für den Mausklick zusammen? Der Cursor ist ein Sprite vor der Kamera, kein 2D Image, dennoch brauche ich einen "CameraPick" über die 2D Mauskoordinaten, also hab ich einfach die Maus via "MoveMouse" an die Position des Sprites geschickt wenn man die Maustaste Links drückt. Code: [AUSKLAPPEN] ;MAUS
moux#=MouseYSpeed() mouy#=MouseXSpeed() MoveMouse 200,300 MoveEntity cursor,mouy#/200,-moux#/200,0 CurPosX#=EntityX(cursor) If CurPosX#>2 Then PositionEntity cursor,2,EntityY(cursor),-3 If CurPosX#<-2 Then PositionEntity cursor,-2,EntityY(cursor),-3 CurPosY#=EntityY(cursor) If CurPosY#>1.6 Then PositionEntity cursor,EntityX(cursor),1.6,-3 If CurPosY#<-1.6 Then PositionEntity cursor,EntityX(cursor),-1.6,-3 ;...... If MouseHit(1) mmx=Int(((2+CurPosX#)/4)*grph_w) mmy=Int(((1.6+CurPosY#)/3.2)*(grph_h)) MoveMouse mmx,-mmy pick=CameraPick(Kamera,MouseX(),MouseY()) If pick=0 Then pick=KeineAuswahl For obct.Tplanet = Each Tplanet If pick = obct\Mesh Or pick = obct\NavMesh Then pick=0 Goto OUTPICK EndIf Next EndIf .OUTPICK Ich weiß langsam echt nicht mehr wieso das so sein könnte. Bin mit meiner Fehleranalyse am Ende. Habt ihr eine Idee? MfG. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Mousehit in einer Variable am Anfang der Mainschleife speichern und die in Bedingungen einsetzten
2. mmx und mmy SIND die Mauskoordinaten... warum die Maus dahin verschieben und mit MouseX/Y abfragen? Kannst gleich die Werte einsetzten. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die schnelle Antwort Xeres! ^^
Nun der Cursor springt nicht mehr. Funzte aber trotzdem noch nicht... Wieso hab ich jetzt auch heraus gefunden ^^ Dummer Denkfehler... Wenn "mmy" negativ ist fragt er Koordinaten von 0 bis -1024 ab, ich brauche aber 0 bis 1024, aber eben spiegelverkert, deshalb hier der richtige Code ^^ Einfach die positive mmy Koordinate von der fensterhöhe abrechnen und schon hat mans gespiegelt. Nur dumm dass ich extra dafür ein Thread aufmachen musste ![]() neuer Code: Code: [AUSKLAPPEN] If MouseHit(1) mmx=Int(((2+CurPosX#)/4)*grph_w) mmy=Int((grph_h)-(((1.6+CurPosY#)/3.2)*(grph_h))) ;MoveMouse mmx,mmy pick=CameraPick(Kamera,mmx,mmy) If pick=0 Then pick=KeineAuswahl For obct.Tplanet = Each Tplanet If pick = obct\Mesh Or pick = obct\NavMesh Then pick=0 Goto OUTPICK EndIf Next EndIf .OUTPICK ;MAUS moux#=MouseYSpeed() mouy#=MouseXSpeed() MoveMouse 200,300 MoveEntity cursor,mouy#/200,-moux#/200,0 CurPosX#=EntityX(cursor) If CurPosX#>2 Then PositionEntity cursor,2,EntityY(cursor),-3 If CurPosX#<-2 Then PositionEntity cursor,-2,EntityY(cursor),-3 CurPosY#=EntityY(cursor) If CurPosY#>1.6 Then PositionEntity cursor,EntityX(cursor),1.6,-3 If CurPosY#<-1.6 Then PositionEntity cursor,EntityX(cursor),-1.6,-3 Abfrage der Koordinaten und das Picken funktioniert jetzt perfekt! Danke für die Hilfe Xeres ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group