Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/api/Game.py
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2012-02-26 23:21:30 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2012-02-26 23:21:30 (GMT)
commit02de66e7d3403af17113b7d7e674eb4bcb96278d (patch)
tree1ae053e2bbd1a15cf5c2381c9ac4adc276259724 /src/api/Game.py
parent54e57e7ba5ad7ae0508e6005c798db0a497e6578 (diff)
rename files of class - add losed permissions
Diffstat (limited to 'src/api/Game.py')
-rwxr-xr-xsrc/api/Game.py155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/api/Game.py b/src/api/Game.py
new file mode 100755
index 0000000..40c3179
--- /dev/null
+++ b/src/api/Game.py
@@ -0,0 +1,155 @@
+import pygame
+#from pygame.locals import *
+import pygame.font
+import pygame.display
+import pygame.sprite
+import CSuperSprite
+from CSuperSprite import *
+import CSprite
+from CSprite import *
+from pygame.locals import *
+import CMultiLabel
+from CMultiLabel import *
+import gc
+
+class CGame(object):
+
+ mInstance = None
+ mState = None
+ mScreen = None
+ mBackground = None
+ mSampleSprite = None
+ mSprites = None
+ mGroups = None
+ mMainSprites = None
+ mClock = None
+ mQuit = False
+
+ def __new__(self, *args, **kargs):
+ if (self.mInstance is None):
+ self.mInstance = object.__new__(self, *args, **kargs)
+ #self.setState(self.mInstance, aState)
+ self.init(self.mInstance)
+ #else:
+ # print "Warning: CGame(): You are not allowed to instantiate it more than once."
+ return self.mInstance
+
+ def inst(self):
+ return self.mInstance
+
+ def setState(self, aState):
+ if (self.mState != None):
+ self.mState.destroy()
+ self.mState = None
+ print gc.collect(), " deleted objects"
+
+ self.mState = aState
+ self.mState.init()
+
+ def destroy(self):
+ if (self.mState != None):
+ self.mState.destroy()
+ self.mState = None
+ self.mBackground = None
+ self.mInstance = None
+ print "destroy"
+
+ def init(self):
+ print "init pygame..."
+ pygame.init()
+ #pygame.font.init()
+
+ #screen = pygame.display.set_mode((1200, 900), FULLSCREEN)
+ self.mScreen = pygame.display.set_mode((1200, 900))
+ pygame.display.set_caption("Game")
+
+ self.mBackground = pygame.Surface(self.mScreen.get_size())
+ self.mBackground.fill((255, 0, 0))
+
+ #self.mBackground = CImage.loadImage("assets/images/back_menu.png", False)
+
+ self.mSampleSprite = CSuperSprite(self)
+ self.mSampleSprite.setSpeed(3)
+ self.mSampleSprite.setAngle(0)
+ self.mSampleSprite.boundAction = self.mSampleSprite.WRAP
+
+
+ self.mAllSprites = pygame.sprite.Group()
+
+
+ #self.mGroups = []
+ #self.mSprites = [self.mSampleSprite]
+ #self.mMainSprites = pygame.sprite.OrderedUpdates(self.mSprites)
+ #self.mGroups.append(self.mMainSprites)
+
+ self.mS2 = CSprite()
+ #self.mS2.setDX(10)
+ self.mS2.velX = 30
+ self.mS2.velY = 0
+ self.mS2.accelY = 1
+ self.mS2.maxSpeed = 200
+
+ self.mScreen.blit(self.mBackground, (0, 0))
+ self.mClock = pygame.time.Clock()
+ self.mQuit = False
+
+ self.mAllSprites.add(self.mSampleSprite)
+ self.mAllSprites.add(self.mS2)
+
+
+ def gameLoop(self):
+ print "start game loop here"
+ while not self.mQuit:
+
+ self.mClock.tick(30)
+ #print ("FPS: %.0f" % self.mClock.get_fps())
+
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ self.mQuit = True
+ elif event.type == KEYDOWN:
+ if event.key == K_ESCAPE:
+ self.mQuit = True
+
+ self.doEvents(event)
+
+ #self.mState.preUpdate()
+ self.mState.update()
+
+ self.mAllSprites.clear(self.mScreen, self.mBackground)
+ self.mAllSprites.update()
+ self.mAllSprites.draw(self.mScreen)
+
+ #for group in self.mAllSprites:
+ # group.clear(self.mScreen, self.mBackground)
+ # group.update()
+ # group.draw(self.mScreen)
+
+ #self.mState.postUpdate()
+
+ pygame.display.flip()
+
+ def doEvents(self, event):
+ """ overwrite this method to add your own events.
+ works like normal event handling, passes event
+ object
+ """
+ pass
+
+ def setSprites(self, aSpritesArray):
+ self.mSprites = aSpritesArray
+ #self.mGroups = []
+ #self.mMainSprites = pygame.sprite.OrderedUpdates(self.mSprites)
+ #self.mGroups.append(self.mMainSprites)
+
+ # Add a sprite to the sprite list.
+ def addChild(self, aSprite):
+ self.mAllSprites.add(aSprite)
+
+ def removeChild(self, aSprite):
+ self.mAllSprites.remove(aSprite)
+
+ def setBackground(self, aBackgroundImage):
+ self.mBackground = None
+ self.mBackground = aBackgroundImage
+ self.mScreen.blit(self.mBackground, (0, 0)) \ No newline at end of file