Jypeli-JYU / Jypeli

A simple educational C# game programming library built on top of Silk.NET.
26 stars 4 forks source link

Touchpanel ei huomaa kosketuksen poistumista, jos se on paikallaan #32

Closed juvonevi closed 1 year ago

juvonevi commented 1 year ago

Touchpanelin Listen metodin keinot Pressed ja Release eivät toimi, jos sormi on paikallaan ja silloin nostetaan ylös. Omien kokeiluideni kautta sain sen toimimaan silleen miten sen pitäisi toimi lisäämällä tiedostoon JypeliActivity.cs metodiin DispatchTouchEvent rivin

64 r.Up = (int)ev.Action == 1 || (int)ev.Action == 6; 65 raw.Add(r); yläpuolelle. NumTouches arvo ei tosin päivity tosin uusimpaan vaan käyttää edellisen päivityksen tietoja, mutta tuolla muutoksella saa kuuntelijat laukaistua kuten niiden pitäisi.

roeyskoe commented 1 year ago

Sain tuon hajoamaan myös jos oikein nopeasti usealla sormella hakkasi ruutua niin tein toteutuksen nyt hieman erilailla (ja toivottavasti enemmän oikein). Kokeile toimiiko nyt miten.

juvonevi commented 1 year ago

Se toimii hyvin. En pikaisella testauksellani saanut toteutettua yhtään virhettä.

roeyskoe commented 1 year ago

Jes hyvä, laitan uuden Jypelipaketin ulos myöhemmin tänään.

Mobiilipuolta on hyvin vähän testattu, joten jos löytyy lisää erikoisuuksia niin aukase vaan uusia bugiraportteja :)

juvonevi commented 1 year ago

Juu siis siellä on ne gesturet, jotka on kaikki toimimattomia ja niitä käyttävät kamera metodit FollowPinching ja FollowSnipping jotka ei myöskään toimi.

juvonevi commented 1 year ago

Ja jostain syystä minun androidillani jos kameraa liikuttaa se laskee FPS lukemia tavalla, jolla lukemat pysyy alhaisina vaikka kameran siirtämisen lopettaa. Todennäköisesti jokin oman projektini aiheuttama ongelma

roeyskoe commented 1 year ago

Joo gestureita ei ole toistaiseksi vielä toteutettu ollenkaan. Tuohon kameran siirtoon en kyllä keksi syytä.

juvonevi commented 1 year ago

Ilmeisesti labelin liikuttaminen aiheuttaa tuon kamera ongelman.

public override void Begin()
    {
        Label teksti = new Label();
        teksti.Text = "Testi teksti";
        Add(teksti, 0);
        LisaaKameraOhjaukset();
    }

public void LisaaKameraOhjaukset()
    {
        TouchPanel.Listen(ButtonState.Down, (t) => {
                LiikutaKameraa((t.PositionOnWorld) * (-1));
        }, "Liikuttaa kameraa");
    }

    public void LiikutaKameraa(Vector suunta)
    {
        Camera.Position += suunta;
        if (Camera.X < 0)
            Camera.X = 0;
        if (Camera.X > this.Level.Right)
            Camera.X = this.Level.Right;
        if (Camera.Y > 0)
            Camera.Y = 0;
        if (Camera.Y < this.Level.Bottom)
            Camera.Y = this.Level.Bottom;
    }
roeyskoe commented 1 year ago

Joo tuolla on jotain erikoista, saan toistettua ongelmat myös pc:llä hyvin pitkällä tekstillä. Minäpä availen näille omat issuet ettei pääse unohtumaan.