;ò —MÔ>c@sadZdklZdklZdklZdklZdkl Z defd„ƒYZ dS( s( tkinter generic canvas based animation (sversion(ssleep(ssplit(sCanvas(sLabels smgAnimatec BsPtZdZddeeddeedd„ Zd„Zd„Zdd„ZRS(s< tkinter generic canvas based animation, base class iic Csý| o|diƒ}n| o|diƒ}n| o|d|df}nti||d|d|d|ddddƒ||_||_||_||_ ||_ ||_| |_ | |_ t tƒd|_|o|i|ƒnd S( sû width, height - canvas dimensions, if 0 default to width and/or height of frame[0] frames - list of animation frame images framesCentre - tuple of coordinates of centre of frame images, defaults to centre of canvas if not specified framePersist - the frame to be displayed when the animation is not running, if -1 the canvas is blank when not playing plays - number of cycles of the animation that is displayed bg - background colour of the canvas triggerFunc - function that is called every triggerPlays plays triggerPlays - how many plays for each call of triggerFunc iiswidthsheightsbgs takefocussfalseshighlightthicknessN(swidthsframessheights framesCentresCanvass__init__sselfsparentsbgs framePersistsplayss triggerFuncs triggerPlaysssplitsversionspyVers LoadFrames( sselfsparentswidthsheightsframess framesCentres framePersistsplayssbgs triggerFuncs triggerPlays((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pys__init__*s(        c CsDg|_|idjo|xD|D]<}|ii|i|id|idd|ddƒƒq W|idjo!|i |i|iddƒq@n¬x>|D]6}|ii|i|id|idd|ƒƒqœW|i dd|i d ƒ|i d ƒd |i d |i ƒ|_ |idjo|i|i|iƒnd S(s, load a set of frame images s1.6iisimagesstateshiddeniÿÿÿÿsnormalswidthsheightsfillsoutlineN(sselfsframeIDsspyVersframessframesappends create_images framesCentres framePersists itemconfigurescreate_rectanglescgetsbgsblankIDstkraise(sselfsframessframe((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pys LoadFramesJs" !%$cCs:|id|ƒ|i|id|d|ƒ|iƒdS(s: set the background colour to a new value sbgsoutlinesfillN(sselfs configuresbgs itemconfiguresblankIDsupdate(sselfsbg((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pysSetBg^sf0.02cCs‡t|iƒd}|io|i}|idjo>xßtd|i ƒD]Ë}xž|iD]“}|i |ddƒ|i i ƒ||idjo|i |i|ddƒn|i |dddƒ|ii ƒt|ƒ|ii ƒqYW|o ||i o|iƒqIqIW|idjo!|i |i|iddƒn|i |i|ddƒ|ii ƒnxÀtd|i ƒD]¬}x|iD]t}|i|ƒ||idjo|i|i|ƒn|i|dƒ|ii ƒt|ƒ|ii ƒq—W|o ||i o|iƒq‡q‡W|idjo|i|i|iƒn|i|i|ƒ|ii ƒdS( s$ play the animation is1.6isstatesnormalshiddeniÿÿÿÿN(slensselfsframeIDss maxFrameIDs triggerFuncs triggerPlayssfuncspyVersrangesplayssframeIDs itemconfiguresmastersupdate_idletaskssparentssleepsdelays framePersiststkraiseslower(sselfsdelaysplayssframeIDsfuncs maxFrameID((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pysPlayfsN    !    (s__name__s __module__s__doc__sNones__init__s LoadFramessSetBgsPlay(((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pys smgAnimate&s $  N( s__doc__ssyssversionstimessleepsstringssplitsTkintersCanvassLabels smgAnimate(sCanvass smgAnimatesLabelsversionssleepssplit((s3/mnt/gmirror/ports/games/pyching/work/smgAnimate.pys?s