Français
Forum

souris am Schwungrad vom Trimmrad: y-Mausposition mettons , abfragen et ausgeben überfordert

 
- page 1 -



funkheld
allô, guten journée.
j'ai un kombinationsproblem avec qui souris.

j'ai sur dem Schwungrad de meinem Trimmrad une optische Mausplatine befestigt(5 Euro-souris). qui Befestigung est, cela, si je trete, qui Mausposition de y-0 pour y-Max allez.

comment peux on es faire, cela qui souris zb sur y=0 gesetzt wird et chez y>500 un Zähler gezählt wird et qui souris ensuite wieder sur y=0 gesetzt wird.
ca ensuite dans einer Boucle abläuft.

cet kombination bekomme je pas hin, weil qui souris chez un certain Geschwindigkeit überfordert ist, vous zählt ensuite pas plus plus.
avec "sleep 1" ca va aussi pas.

Woran liegt cela.
je compiliere avec XPSE.
KompilierenMarqueSéparation
 {$cleq}
Def @Getcursorpos(1) !"user32","GetCursorPos"
Def @Setcursorpos(2) !"USER32","SetCursorPos"
Struct Mauskoordinaten = X&,Y&
Declare Xpos&,Ypos&,Curpos#,zaehler&
Windowstyle 31
Windowtitle "Cursorposition ermitteln"
Window 200,0 - 440,440
@Setcursorpos (100,0)

While 0 = 0

    Sleep 5
    Dim Curpos#,Mauskoordinaten
    @Getcursorpos(Curpos#)
    Xpos& = Curpos#.X&
    Ypos& = Curpos#.Y&

    if Ypos& > 500

        @Setcursorpos (100,0)
        zaehler&=zaehler&+1

    endif

    Dispose Curpos#
    Drawtext 0,0,"Zähler: " + zaehler& + @Space$(30)

Endwhile


merci.

Gruss
 
10.07.2012  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 1 -


@Funkheld: Hab Dir ici la fois quoi qui Strecke misst... quelque chose comme?

Herunterladen
KompilierenMarqueSéparation
 {$cleq}
Windowstyle 31
Windowtitle "Cursorposition ermitteln"
Window 500,500
setcursorpos((winRight-winLeft)\2+winLeft,(winBottom-winTop)\2+winTop)
var modified&=0
var strecke&=0
var my2MousePositions&=globalAlloc(gPTR,16)
getCursorPos(my2MousePositions&)
rtlMoveMemory(my2MousePositions&+8,my2MousePositions&,8)

while 1

    waitinput 10
    getCursorPos(my2MousePositions&)
    settext hWnd,"X:"+str$(long(my2MousePositions&,0))+" Y:"+str$(long(my2MousePositions&,4))+" Strecke:"+str$(strecke&)
    add strecke&,abs(long(my2MousePositions&,0)-long(my2MousePositions&,8))+abs(long(my2MousePositions&,4)-long(my2MousePositions&,12))

    if long(my2MousePositions&,0) > winRight

        long my2MousePositions&,0=winLeft
        inc modified&

    endif

    if long(my2MousePositions&,0) < winLeft

        long my2MousePositions&,0=winRight
        inc modified&

    endif

    if long(my2MousePositions&,4) < winTop

        long my2MousePositions&,4=winBottom
        inc modified&

    endif

    if long(my2MousePositions&,4) > winBottom

        long my2MousePositions&,4=winTop
        inc modified&

    endif

    if modified&

        modified&=0
        setCursorPos(long(my2MousePositions&,0),long(my2MousePositions&,4))

    endif

    rtlMoveMemory(my2MousePositions&+8,my2MousePositions&,8)

wend

globalFree(my2MousePositions&)
f='./../../funktionsreferenzen/XProfan/end/'>end

si Du qui add strecke la ligne dahin änderst:
KompilierenMarqueSéparation
add strecke&,(long(my2MousePositions&,0)-long(my2MousePositions&,8))+(long(my2MousePositions&,4)-long(my2MousePositions&,12))
(alors sans abs), ensuite wird qui rückwärtsgefahrene Strecke aussi de qui Streckenlänge
subtrahiert statt zur Streckenlänge addiert.

PS: chez XPSE brauchst qui ganzen Standard-APIs pas déclarer et c'est
sogar sinnvoller es ensuite aussi pas trop 1faire là qui Aufrufe dans deutlich schnellere
Calls umgewandelt volonté.

1.247 kB
Hochgeladen:10.07.2012
Downloadcounter174
Herunterladen
 
10.07.2012  
 



 
- page 2 -


sur meinem ordinateur peux je qui souris so vite bewegen dass sogar 20 km/h

angezeigt volonté. comment grand ist Dein hWnd? peux es son cela qui de Dir genutzte

souris simple pas plus rapide erfassen peux?
 
11.07.2012  
 




funkheld
j'ai maintenant la fois : add tme&,200 eingestellt.
maintenant funktioniert es sur 15Km/h.

Welchen Einfluss hat cela eigentlich?

Gruss
 
11.07.2012  
 



Pour wievielen Millisekunden qui Grafikprozedur ablaufen soll -

chez 100 alors 10 la fois pro seconde et chez 200 5 la fois pro seconde.
 
11.07.2012  
 



 
- page 3 -



funkheld
pourquoi augmenté sich ensuite qui Geschwindigkeit?
Ist là irgendein Einfluss drin, si je 200 eingebe?

comment errechnest du qui Geshwindigkeit?

Gruss
 
11.07.2012  
 



Na il y a doch strecke& et alle X ms merke je dans tmp& strecke& et avec cela ist bien sûr
combien strecke dans qui Zeit gemacht wurde. si Du seulement 5 la fois statt 10 la fois pro
seconde rechnest ensuite peux doppelt so viel Strecke dans qui Zeit gemacht volonté mais
qui calculation pourrait ensuite pas plus stimmen là sur 100 ms abgestimmt.

si Du alle 200 statt 100 ms rechnest ensuite müsstest Geschwindigkeit par 2 prendre.
 
11.07.2012  
 




funkheld
ah bon...., merci pour den Hinweiss.

une Grafische spielerei:
tu as doch déjà viele Sachen dans Opengl programmiert.
je voudrais la fois une Geländeplatte sans Höhen et Tiefen avec Spritebäumen unendlich bewegen, je pour dem comment vite on dans qui Pedale tritt.

comment peux on cela realiseren ?

Gruss
peter
 
12.07.2012  
 



je serait empfehlen cela erstmal separat de diesem Programme ici trop realisieren et

cela dans einem eigenen Thema trop behandeln.
 
12.07.2012  
 




funkheld
allô, guten journée.
j'ai un Programme, wohin sich un Ogl-Sprite je pour Tretgeschwindikeit de unten pour dessus bewegt, jusque qui Geschwindigkeit wohin cela Dateneinlesen qui Lasermaus aussetzt.
qui Steigerung qui Geschwindigkeit ist pas so deutlich erkennbar beim Sprite.
comment peux on es ici maintenant im Programme pro Zeiteiheit so messen, cela beim schnelleren Treten une deutliche erkennbare Bewegung des Sprites erkennbar ist.
Es venez maintenant pas sur qui genaue Geschwindigkeit à, mais es venez maintenant sur qui Bewegung des Sprites à.

merci.

Gruss
KompilierenMarqueSéparation
 {$cleq}
declare hWin&,hintergrpic&,vordergrpic&
declare ende&,winkel!,groesse&,dib&,array&
declare bild_auto&,tex.auto&
declare bmi#,ogl_rgb#
declare x1!,y1!,dx!,dy!
declare bereich#
Dim Bereich#, 16
Def &GL_BGR $80E0
DEF CreateDIB(2) !"dib","CreateDIB"
DEF FreeDIB(1) !"dib","FreeDIB"
DEF DrawDIB(4) !"dib","DrawDIB"
DEF CloneDIB(1) !"dib","CloneDIB"
dib&=usedll("dib.dll")
hintergrpic& = create("hNewPic", 400,700,rgb(255,255,0))
vordergrpic& = create("hNewPic", 400,700,rgb(255,255,0))
bild_auto& = create("hNewPic", 128,128,rgb(255,255,0))
array&=CreateDIB(128,128)
groesse&=128*128*4
dim ogl_rgb#,groesse&
Window 20,20-800,800
Cls @RGB(220,220,220)
hWin& = @Create("text", %hWnd, "Test1", 10, 10, 128,128)
oGL("Init", hwin&, 0,0, 0, 0)
oGL("PosMode", 1)
ogl("glReadBuffer",~GL_Back)
tex.auto&=oGL("LoadTextureBMP","data\\auto.bmp",1)
drawglscene
ende&=1
winkel!=90
dx!=100
dy!=600

WHILE ende&

    getCursorPos(bereich#)

    if long(bereich#,4) > 700

        setCursorPos(100,0)
        y1!=Sin(-(winkel!)/180.0*pi())*2
        x1!=Cos(-(winkel!)/180.0*pi())*2
        dx!=dx!+x1!
        dy!=dy!+y1!

        if dy! < 0.0

            dy!=600

        endif

    endif

    if isKey(81)

        winkel!=winkel!+1.0

    endif

    if isKey(69)

        winkel!=winkel!-1.0

    endif

    drawglscene

ENDWHILE

end

proc drawglscene

    OGL("Clear")
    OGL("origin",0,0,-1.11)
    OGL("texture",tex.auto&,1)
    OGL("rotate",0,0,winkel!)
    OGL("quad",0.5,0.5)
    OGL("show")
    ogl("glReadPixels",0,0,128,128,&GL_BGR,~GL_UNSIGNED_BYTE,ogl_rgb#)
    ~setDIBits(%hdc,bild_auto&,0,128,ogl_rgb#,array&,0)
    StartPaint vordergrpic&
    DrawPic hintergrpic&,0,0;0
    drawpic bild_auto&,dx!,dy!;-1
    endpaint
    DrawPic vordergrpic&, 300,5;pan>

endproc


330 kB
Hochgeladen:13.07.2012
Downloadcounter104
Herunterladen
 
13.07.2012  
 



Imho manquer Fichiers comment z.B.:


 
13.07.2012  
 




funkheld
allô,j'ai qui DIB ici aus dem Forum.
Habe vous maintenant drangehängt.

peut-être pourrait on oui aussi un 2D-Hintergrund herstellen sans Opengl, qui sich je pour Geschwindigkeit bewegt et im Vordergrund une Fahrradfahrer-Bmp.

Gruss
 
13.07.2012  
 



c'est oui alles entier simple.

quoi ist hiermit? [...] 
 
13.07.2012  
 




funkheld
Jup, c'est maintenant gelöst avec deinem Programme.

merci.

Gruss
 
13.07.2012  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

24.420 Views

Untitledvor 0 min.
Ralf Netz22.05.2021
Heltal23.01.2015
Jochen Roxlau04.10.2014
Julian Schmidt22.06.2013
plus...

Themeninformationen

cet Thema hat 3 participant:

funkheld (16x)
iF (15x)
RICOSCH (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie