示例#1
0
文件: UI.py 项目: keerthik/KRPEngine
 def OnDrag(self):
     """When the draggable is latched to the cursor, this is carried out. 
     By default it moves the draggable along with the cursor. TODO: Correct
     the unintentional displacement of the draggable if the mouse was moved 
     quickly right before dragging the box"""
     translation = Base.tuple_add(pygame.mouse.get_pos(), self.previous_pos, '-')
     self.Translate(translation, None, True)
     self.previous_pos = pygame.mouse.get_pos()
示例#2
0
文件: UI.py 项目: keerthik/KRPEngine
 def _blitToolTip(self):
     """Check if a tooltip is expected and draw it"""
     if not pygame.font or self.ToolItem == None:
         self.ToolTipBox = pygame.Surface((0,0)).convert()
         return True
     elif self.ToolItem.DrawToolTip:
         fontsize = 20
         self.surf.blit(self.ToolTipBox, Base.tuple_add(self.ToolItem.Sprite.rect.topleft,(10,fontsize+5), '-'))
         return False
示例#3
0
文件: UI.py 项目: keerthik/KRPEngine
 def RenderToolTip(self):
     """Prepares a tooltip for the UI class to draw if needed. TODO: Needs to
     be refactored"""
     if self.ToolTip == None:
         return False
     fontsize = 20
     font = pygame.font.Font(None, fontsize)
     text = font.render(self.ToolTip, 1, (250, 250, 250))
     hoverBox = pygame.Surface(Base.tuple_add(text.get_rect()[2:],(fontsize,6))).convert()
     hoverBox.fill((0,100,200))
     textpos = text.get_rect(centerx=hoverBox.get_width()/2, centery=hoverBox.get_height()/2)
     hoverBox.blit(text, textpos)
     return hoverBox
示例#4
0
 def Translate(self, reposition, translim = None, clip = False, wrap = False):
     """This accumulates residual float movement and uses it to move the sprite over calls"""
     if translim == None:
         limx, limy = Base.tuple_add(self.surf.get_size(), self.rect.size, '-')
     else:
         limx, limy = translim
     oldpos = self.rect.topleft
     #Accumulate residue from new repositioning
     Base.tuple_add(self.translate_residue, [r-int(r) for r in reposition])
     #Trim reposition of float portion
     reposition = [int(x) for x in reposition]
     #Update reposition to take whole residues
     reposition = Base.tuple_add(reposition, [int(r) for r in self.translate_residue])
     #Update residue to remove whole portion used in reposition
     self.translate_residue = [r-int(r) for r in self.translate_residue]
     
     want_to = Base.tuple_add(oldpos, reposition)
     self.rect.topleft = Base.tuple_lim(Base.tuple_add(oldpos, reposition), limx, limy, wrap)
     if not clip:
         self.rect.topleft = want_to
     if self.rect.topleft == want_to:
         return True
     else:
         return wrap or False