Français
Source/ Codesnippets

Mausregion Minigamedemo Poly Position vérifier

 
Mausregion XY Position sur Poly vérifier Demo.

sur Wunsch de Jens Berger habe je la fois cet Minigamedemo dahingeproggt. cela komplette Packet gibts comme Dateianhang.
KompilierenMarqueSéparation
 {$cleq}
 $H Windows.ph
declare regionsmem#,regionscnt&
declare oreg&,msg&
decimals 0
dim regionsmem#,(4*256)// 256 regions handle mem
regionscnt&:=0
windowstyle ( 512 | 8 )
cls
loadbmp "tisch.bmp",0,0;0
setinnerhwndsize %bmpx,%bmpy
/* DemoRegions für Tisch.Bmp mit der prozedur clickregion2clipboard erstellt (aufwand 2 minuten) */
pushregion declareregion(211,107,300,104,310,198,220,211,196,151,203,121)
pushregion declareregion(231,210,329,199,346,217,243,227)
pushregion declareregion(68,224,167,225,158,243,165,300,65,303)
pushregion declareregion(104,177,159,176,157,221,102,222)
pushregion declareregion(429,72,451,72,451,169,429,169)
pushregion declareregion(452,71,475,73,478,170,457,168)
pushregion declareregion(479,112,487,112,496,169,478,169)
pushregion declareregion(517,146,581,145,590,169,526,168)
pushregion declareregion(622,105,697,106,754,117,727,131,652,132)
pushregion declareregion(365,209,379,214,375,222,364,224,358,220,357,213)
/* EO:DemoRegions Ende */
//displayregions 	 aktiviere dies um die regionen sichtbar zu machen
//clickregion2clipboard  aktiviere dies um per "einfaches klicken auf das bild" die regionserstellung in die zwischenablage zu kopieren.

Whilenot (msg&==16)

    dispcheckedregion
    getmessage
    msg&:=%message

wend

clearregions
dispose regionsmem#
end

proc dispcheckedregion

    declare h&,mk&
    mk&:=if(msg&=513,1,0)// is leftmousekeydown?
    h&:=checkregions()
    //settext %hwnd,str$(h&)

    if h&

        if (oreg&<>h&)

            loadbmp "tisch.bmp",0,0;0
            ~SelectObject(%hdc,long(regionsmem#,(h&-1)*4))
            cls rgb(255,0,0)
            oreg&:=h&

        endif

        case mk& : messagebox "Region: "+str$(h&)+" angeklickt.","",0

    else

        case oreg& : loadbmp "tisch.bmp",0,0;0
        oreg&:=0

    endif

endproc

proc checkregions

    declare i&,rn&,mx&,my&
    casenot regionscnt& : return 0
    rn&:=0
    mx&:=%mousex
    my&:=%mousey
    for i&:=1 to regionscnt& do begin

    if (~PtInRegion(long(regionsmem#,(i&-1)*4),mx&,my&))

        rn&:=i&
        break

    endif

    end
    return rn&

endproc

proc displayregions

    declare i&
    casenot regionscnt& : return
    for i&:=1 to regionscnt& do begin
    ~SelectObject(%hdc,long(regionsmem#,(i&-1)*4))
    cls rgb(255,0,0)
    end

endproc

proc pushregion

    parameters rhdl&
    long regionsmem#,regionscnt&*4=rhdl&
    regionscnt&+

endproc

proc clearregions

    declare i&
    casenot regionscnt& : return
    for i&:=1 to regionscnt& do begin
    ~deleteobject(long(regionsmem#,(i&-1)*4))
    end
    clear regionsmem#
    regionscnt&:=0

endproc

proc declareregion

    parameters 	x1&,y1&,
    x2&,y2&,
    x3&,y3&,
    x4&,y4&,
    x5&,y5&,
    x6&,y6&
    declare ptcnt&,ptmem#,rhdl&

    proc setpt

        parameters x&,y&,n&
        n&:=(n&-1)*8
        long ptmem#,n&=x&
        n&:=n&+4
        long ptmem#,n&=y&

    endproc

    ptcnt&:=(%pcount/2)
    dim ptmem#,(ptcnt&*8)
    case (ptcnt&>0) : setpt x1&,y1&,1
    case (ptcnt&>1) : setpt x2&,y2&,2
    case (ptcnt&>2) : setpt x3&,y3&,3
    case (ptcnt&>3) : setpt x4&,y4&,4
    case (ptcnt&>4) : setpt x5&,y5&,5
    case (ptcnt&>5) : setpt x6&,y6&,6
    rhdl& = ~CreatePolygonRgn(ptmem#,ptcnt&,1)
    dispose ptmem#
    return rhdl&

endproc

proc setinnerhwndsize

    parameters x%,y%
    setwindowpos %Hwnd = %winleft,%wintop - ((%winright-%winleft)-(width(%hwnd)-x%)),((%winbottom-%wintop)-(height(%hwnd)-y%));0

endproc

proc clickregion2clipboard

    declare s$,mx&,my&,cred&,c&
    c&:=0
    cred&:=rgb(255,0,0)

    whilenot (%key==2)

        waitinput

        if (%mousepressed==1)

            c&+
            mx&:=%mousex
            my&:=%mousey
            s$:=s$+if(len(s$),",","")+str$(mx&)+","+str$(my&)
            setpixel mx&,my&,cred&
            setpixel mx&+1,my&,cred&
            setpixel mx&,my&+1,cred&
            setpixel mx&+1,my&+1,cred&
            clearclip
            putclip "pushregion declareregion("+s$+")"
            case (c&==6) : end

        endif

    Wend

    end

endproc

Salve, iF.

208 kB
Hochgeladen:07.10.2005
Downloadcounter134
Download
 
07.10.2005  
 



Zum Quelltext


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

2.474 Views

Untitledvor 0 min.
Julian Schmidt24.10.2012
Gerald Dittrich19.01.2011

Themeninformationen

cet Thema hat 1 participant:

iF (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