Source code for ggame.inputpoint

from ggame.point import ImagePoint
from ggame.asset import Frame

[docs]class InputImageButton(ImagePoint): def __init__(self, url, callback, *args, **kwargs): """ Required Inputs * **url** location of image file * **callback** reference of a function to execute, passing this button object * **pos** position of point Optional Inputs * **frame** sub-frame location of image within file * **qty** number of sub-frames, when used as sprite sheet * **direction** one of 'horizontal' (default) or 'vertical' * **margin** pixels between sub-frames if sprite sheet """ super().__init__(url, *args, **kwargs) self.center = (0,0) self._callback = callback self.selectable = True self.firstImage() self.mousewasdown = self.mouseisdown def select(self): super().select() if self._callback: self._callback(self) self.unselect() def unselect(self): super().unselect() def __call__(self): # code for controlling the button image state only works if the # button state is being monitored! if self.mouseisdown != self.mousewasdown: if self.mouseisdown: self.nextImage() else: self.firstImage() self.mousewasdown = self.mouseisdown return self.mouseisdown
[docs]class InputImageToggle(ImagePoint): def __init__(self, url, statelist, initindex, *args, **kwargs): """ Required Inputs * **url** location of image file * **statelist** list of values to correspond with toggle states * **initindex** index to initial toggle state * **pos** position of point Optional Inputs * **frame** sub-frame location of image within file * **direction** for sprite sheet one of 'horizontal' (default) or 'vertical' * **margin** pixels between sub-frames if sprite sheet * Note the qty of images is equal to length of the statelist """ self.statelist = statelist kwargs.setdefault('qty', len(statelist)) super().__init__(url, *args, **kwargs) self.center = (0,0) self.selectable = True self.togglestate = initindex self.setImage(self.togglestate) def select(self): super().select() self.togglestate += 1 if self.togglestate == len(self.statelist): self.togglestate = 0 self.setImage(self.togglestate) self.unselect() def __call__(self): return self.statelist[self.togglestate]
[docs]class MetalToggle(InputImageToggle): def __init__(self, initindex, *args, **kwargs): """ Required Inputs * **initindex** index to initial toggle state * **pos** position of toggle """ kwargs.setdefault('frame', Frame(0,0,110,150)) super().__init__("ggimages/toggle-up-down.png", [True, False], initindex, *args, **kwargs) self.scale = 0.4
[docs]class GlassButton(InputImageButton): def __init__(self, callback, *args, **kwargs): """ Required Inputs * **callback** reference of a function to execute, passing this button object * **pos** position of point """ kwargs.setdefault('frame', Frame(0,0,100,100)) kwargs.setdefault('qty', 2) super().__init__("ggimages/button-round.png", callback, *args, **kwargs) self.scale = 0.3