stupidpythonprojects/simongame/kachel.py

75 lines
1.8 KiB
Python

import pygame
from pygame.locals import *
import tools
import gitter
KACHEL_ALPHA_ACTIVE = 1.0
KACHEL_ALPHA_INACTIVE = 0.175
KACHEL_ALPHA_SELECT = 0.5
KACHEL_ALPHA_STEPFACTOR = 0.1
class kachel(object):
def __init__(self,x,y,w,h):
self.x = x
self.y = y
self.w = w
self.h = h
#alphaverwaltung:
self.currentAlpha = KACHEL_ALPHA_INACTIVE
self.alpha = KACHEL_ALPHA_INACTIVE
self.r = 0.5-0.5/float(gitter.GITTER_W)*float(x)
self.g = 0.5*float(y)/float(gitter.GITTER_H)
self.b = float(x)/float(gitter.GITTER_W)
#verwaltungstechnisches:
self.isActive = False
self.isSelect = False
#nen paar getters und setters:
def getPos(self):
return (self.x,self.y,self.w,self.h)
def isActive(self):
return self.isActive
def isSelect(self):
return self.isSelect
def activate(self):
self.isActive = True
self.alpha = KACHEL_ALPHA_ACTIVE
def deactivate(self):
self.isActive = False
self.alpha = KACHEL_ALPHA_INACTIVE
def toggle(self):
self.isActive = not self.isActive
if self.isActive:
self.alpha = KACHEL_ALPHA_ACTIVE
else:
self.alpha = KACHEL_ALPHA_INACTIVE
def select(self):
if not self.isActive:
self.isSelect = True
self.alpha = KACHEL_ALPHA_SELECT
def deselect(self):
if not self.isActive:
self.isSelect = False
self.alpha = KACHEL_ALPHA_INACTIVE
#update:
def update(self):
self.currentAlpha += float(self.alpha - self.currentAlpha)*KACHEL_ALPHA_STEPFACTOR
def draw(self):
tools.drawRect((self.x*self.w+2,self.y*self.h+2,self.w-2,self.h-2),0,(self.r,self.g,self.b,self.currentAlpha))