Author Topic: IPhone MouseState Problem  (Read 3486 times)

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
IPhone MouseState Problem
« on: 2011-Mar-11 »
hi,

habe bei meinem iphone spiel das problem, dass wenn der finger ausm bild ist, also man z.b. den finger zu weit über den bildschirm streicht und über den rand rausgeht, dass dann wenn der finger zurückgeht (ohne abzuheben), dieser nicht mehr erkannt wird.

 erst wenn ich den finger abhebe und aufsetze geht es wieder.

ich erinner mich daran dass hier schon mal was ähnliches gepostet wurde, finde es aber leider nicht mehr.
kann mir da wer aushelfen?

heute abend werde ich auch ein beispiel posten können.


Gruß
mangoo

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #1 on: 2011-Mar-11 »
Soooo


selbst mit Systempointer FALSE kommt der Fehler:


Hier ein Beispielprogramm.


Ein Rechteck wird immer an der Mouseposition angezeigt. wenn man nach oben ( zur Kamera ) hingeht
kommt irgendwann als x immer 65 und der rest 0, bei allen mäusen

geht man mit dem finger dann ohne abzusetzen zurück ändert sich nix

Der Fehler tritt nur in 95% der Fälle auf, unten tritt er nie auf. Man kann auch aus dem Rand oben raus und über einen anderen Rand wieder rein, dann funktioniert es wieder.


Code: GLBasic [Select]

GLOBAL mx,my,mb1,mb2
SYSTEMPOINTER FALSE


WHILE NOT KEY(01)
CLEARSCREEN RGB(0,0,0)

FOR i = 0 TO GETMOUSECOUNT()-1
        LOCAL tx,ty,tb1,tb2
        SETACTIVEMOUSE i
        MOUSESTATE tx,ty,tb1,tb2
       
        PRINT tx + " " + ty + " " + tb1,0,i*15
       
        IF tb1
                mx = tx
                my = ty
        ENDIF
NEXT

       
        DRAWRECT mx,my,100,100,RGB(255,0,0)
        SHOWSCREEN
       
WEND
 
« Last Edit: 2011-Mar-11 by mangoo »

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: IPhone MouseState Problem
« Reply #2 on: 2011-Mar-11 »
Soooo...

Also erstmal: SYSTEMPOINTER TRUE dürfte kein Problem machen!

Die Frage wäre erstmal, willst du nur einen Finger oder Multitouch benutzen?
Das bei dir sieht mir ein bissel komisch aus.

Probier doch für den Anfang mal mit nur einem Finger
Code: GLBasic [Select]
GLOBAL mx,my,mb1,mb2
WHILE TRUE
CLEARSCREEN RGB(0,0,0)
    MOUSESTATE mx,my,mb1,mb2
       
    PRINT "mx:" + mx + ", my:" + my + ", mb1:" + mb1,0,0
       
        DRAWRECT mx,my,100,100,RGB(255,0,0)
SHOWSCREEN     
WEND
 

EDIT: Wenn du mehr als einen Finger als Input benutzen möchtest, solltest du das so tun;
Code: GLBasic [Select]
TYPE TMouse
        x
        y
        b1
        b2
ENDTYPE

LOCAL mouse[] AS TMouse //Das leere Array für die Finger
DIM mouse[GETMOUSECOUNT()] //Setze die Größe des Arrays auf die Anzahl der maximalen Finger

SYSTEMPOINTER TRUE


WHILE TRUE
CLEARSCREEN RGB(0,0,0)
        FOR m=0 TO GETMOUSECOUNT()-1 //-1, weil wir ja von 0 anfangen, zu zählen
                MOUSESTATE mouse[m].x, mouse[m].y, mouse[m].b1, mouse[m].b2 //Update alle Finger
        NEXT
       
        FOREACH M IN mouse[] //Tu dies für alle Finger
                IF M.b1 THEN DRAWRECT M.x,M.y,100,100,RGB(255,0,0)
        NEXT
       
        SHOWSCREEN     
WEND
 

Wenn du Fragen hast, nachdem du das ausprobiert hast, dann frage gerne! ;)
« Last Edit: 2011-Mar-11 by backslider »

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #3 on: 2011-Mar-11 »
Hi,

danke für den wohlgemeinten Tipp. Aber auch mit dem Programm klappt es nicht. Sobald ich über den Rand hinausgehe und zurückgehe wird da nichts mehr angezeigt.


Ich hab die Probleme sowohl im Multi als auch im Single Touch ohne SetActiveMouse.

Bei meinem Spiel handelt es sich um ein kleines Rennspiel, das bisher über die Orientierung des Handys gesteuert wurde. Alternativ zur Orientierung kann man es per Touchscreen spielen.

Links lenken, rechts Turbo etc.





Wenn jetzt der Spieler zu weit mit dem Daumen links landet ( was häufig vorkommt), dann kann er plötzlich nicht mehr lenken, weil keine Mousekoordinaten mehr funktionieren.
« Last Edit: 2011-Mar-11 by mangoo »

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: IPhone MouseState Problem
« Reply #4 on: 2011-Mar-12 »
Und das liegt mit 100%iger Sicherheit an GLBasic?
Ich kann dieses Problem nicht nachvollziehen.

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Re: IPhone MouseState Problem
« Reply #5 on: 2011-Mar-12 »
Hallo

Ich hab leider kein iPhone und kann das nicht testen, aber kannst du das nicht einfach begrenzen?
Also z.B.
Code: GLBasic [Select]
 
   MOUSESTATE mx, my, b1, b2
   IF mx<10 THEN mx=10
   DRAWRECT mx,my,20,20,RGB(255,0,0)
 

So kann man dann halt gar nicht erst zu weit nach links oder über den Rand kommen. Aber keine Ahnung. Vielleicht hab ichs auch falsch verstanden was du meinst.  =D

Cheers

The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #6 on: 2011-Mar-12 »
Hm ne das hilft leider nicht, der Finger geht ja trotzdem übern Rand :-)

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Re: IPhone MouseState Problem
« Reply #7 on: 2011-Mar-13 »
Hehehe ich meinte natürlich das, was der Finger bewegt nicht an den Rand kommt und damit vielleicht den Fehler verursacht und nicht den Finger.  =D Aber wie gesagt ich hab kein iPhone. Wir telofonieren hier sogar noch mit Rauchzeichen.   =D

Quote from: mangoo
  ich erinner mich daran dass hier schon mal was ähnliches gepostet wurde, finde es aber leider nicht mehr.

Der Typ hatte da paar Fragen über die Maus. Vielleicht hast du das ja gesucht oder es hilft dir weiter.  :)
 
   http://www.glbasic.com/forum/index.php?topic=4876.msg37374#msg37374

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10720
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: IPhone MouseState Problem
« Reply #8 on: 2011-Mar-15 »
Da kann ich nichts machen. Ich übergebe wie Werte so wie ich sie bekomme an GLBasic. :(

Gibt es ein Programm bei dem das geht?

Schreib mal hin, ob die Maustaste gedrückt ist für alle "Mäuse".

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #9 on: 2011-Mar-15 »
Klar, das geht bei vielen normalen Iphone Spielen :-)


Puppet Wars z.B. hat links so ein Steuerkreuz, da ists kein Problem wenn man mit dem Finger zu weit raus geht. Das Steuerkreuz springt einfach auf Null Position sobald man aus dem gültigen Touch Bereichs des Iphones ist und damit keine Eingaben mehr kommen. Bewegt man dann den Daumen zurück ohne abzusetzen  klappt es wieder sobald der Finger im gültigen Bereich ist.


Die Maus ist bei GLbasic nicht mehr gedrückt, sobald man aus dem gültigen Bereich ist. Das ist ja soweit auch in Ordnung.

Kommt man wieder zurück, ists leider immer noch nicht gedrückt. Der kriegt dann solange keine gültigen Werte, bis man über einen der 3 anderen Ränder drüber geht, dann geht es auf einmal wieder.

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #10 on: 2011-Mar-15 »
aaaah

mir fällt gerade auf


das problem tritt dann auf, wenn man über den rand geht und nur EINEN finger benutzt

wenn ich einen oder mehrere andere finger in der zeit drauf habe, dann geht es ohne probleme. wird da irgendwas unterschiedlich gehandlet?

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10720
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: IPhone MouseState Problem
« Reply #11 on: 2011-Mar-16 »
nein. Ich habe nur eine Liste die ich mit touchesbegin fülle und bei touchesend wieder rausnehme, bzw bei touchesmoved aktualisiere :(

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: IPhone MouseState Problem
« Reply #12 on: 2011-Mar-16 »
Also auf meinem Pre ist das nicht so, wenn ich den Finger aus dem Display schiebe und dann wieder rein, direkt auf nen Button am Rand, dann wird der auch gedrückt...
Ich glaube irgendwie nicht daran, dass das an GLBasic liegt. Hm... Komisch.

Offline mangoo

  • Mc. Print
  • *
  • Posts: 32
    • View Profile
    • feuerware.com
Re: IPhone MouseState Problem
« Reply #13 on: 2011-Mar-16 »
Hm ok, beim Palm Pre teste ich Mal heute Abend.
Seltsamerweise ist das ja auch nur bei einer einzigen Seite vom Handy.

Oder kann es noch sein, dass irgendetwas bei Fokusverlust passiert. Also wenn gar kein Finger mehr drauf ist?

Ansonsten: gibt es vlt eine Möglichkeit statt OrientationRight/Left  beim Iphone die jeweils andere Orientierung zu nehmen? Finde ich zwar nicht so schön aber wenn nix hilft.

Dann hätte ich das Steuerkreuz (bei dem der Finger ja die ganze Zeit gedrückt ist und bewegt wird)auf der anderen Seite. Auf der anderen Seite gibt es keine Problem wenn der Finger übern Rand geht.

Hatte auch schon zeitweise mal das Steuerkreuz auf der rechten Seite, dass man dann mit der rechten Hand lenkt, aber das war vom Feeling gar nicht gut.