|
|
| version 1.2, 2011/06/16 23:29:25 | version 1.5, 2011/11/05 04:07:53 |
|---|---|
| Line 14 TITLE = "PyFrog" | Line 14 TITLE = "PyFrog" |
| SCREEN_WIDTH = 640 | SCREEN_WIDTH = 640 |
| SCREEN_HEIGHT = 480 | SCREEN_HEIGHT = 480 |
| COLORKEY = ( 255, 0, 255 ) | COLORKEY = ( 255, 0, 255 ) |
| TRUE = 1 | |
| FALSE = 0 | |
| ## | ## |
| ## Baddies | ## Baddies |
| Line 39 LONG_LOG = 9 | Line 41 LONG_LOG = 9 |
| MAX_WOOD = 7 | MAX_WOOD = 7 |
| ## | ## |
| ## Input | |
| ## | |
| UP = 273 | |
| DOWN = 274 | |
| RIGHT = 275 | |
| LEFT = 276 | |
| ## | |
| ## Turtles | ## Turtles |
| ## | ## |
| DIVE_START_TIME = 50 | DIVE_START_TIME = 50 |
| Line 62 SCORE_PINK = 200 | Line 72 SCORE_PINK = 200 |
| SCORE_SECONDS = 10 | SCORE_SECONDS = 10 |
| HIGH_SCORE = 4630 | HIGH_SCORE = 4630 |
| SCORE_FREE_FROG = 2000 | SCORE_FREE_FROG = 2000 |
| LIVES = 3 | |
| global screen | |
| ## | ## |
| ## Some general game state stats | ## Some general game state stats |
| ## | ## |
| level = 0 | class mainGame( ): |
| playing = 0 | |
| goDelay = 0 | |
| score = 0 | |
| lives = 0 | |
| freefrog = 0 | |
| drawBG = 1 | |
| global screen | |
| class gameStats( ): | |
| def __init__( self ): | def __init__( self ): |
| self.level = 0 | self.level = 0 |
| self.playing = 0 | self.playing = FALSE |
| self.goDelay = 0 | self.goDelay = 0 |
| self.score = 0 | self.score = 0 |
| self.lives = 0 | self.lives = 0 |
| self.freefrog = 0 | self.freefrog = 0 |
| self.drawBG = 0 | self.drawBG = FALSE |
| class images( ): | |
| def __init__( self ): | |
| self.title_image = 0 | |
| self.title_rect = 0 | |
| self.frogger_image = 0 | |
| self.frogger_rect = 0 | |
| self.background_image = 0 | |
| self.background_rect = 0 | |
| class sounds( ): | |
| def __init__( self ): | |
| self.hop = 0 | |
| class Log( pygame.sprite.Sprite ): | class Log( pygame.sprite.Sprite ): |
| def __init__( self ): | def __init__( self ): |
| pygame.sprite.Sprite.__init__( self ) | pygame.sprite.Sprite.__init__( self ) |
| self.size = 0 | self.size = 0 |
| self.placement = ( 0, 0 ) | self.placement = [ 0, 0 ] |
| self.oPlacement = ( 0, 0 ) | self.oPlacement = [ 0, 0 ] |
| self.row = 0 | self.row = 0 |
| self.speed = 0 | self.speed = 0 |
| self.pink = 0 | self.pink = 0 |
| Line 102 class Log( pygame.sprite.Sprite ): | Line 118 class Log( pygame.sprite.Sprite ): |
| class Vehicles( pygame.sprite.Sprite): | class Vehicles( pygame.sprite.Sprite): |
| def __init__( self ): | def __init__( self ): |
| self.placement = ( 0, 0 ) | self.placement = [ 0, 0 ] |
| self.oPlacement = ( 0, 0 ) | self.oPlacement = [ 0, 0 ] |
| self.direction = 0 | self.direction = 0 |
| self.row = 0 | self.row = 0 |
| self.speed = 0 | self.speed = 0 |
| Line 124 class Goals( pygame.sprite.Sprite ): | Line 140 class Goals( pygame.sprite.Sprite ): |
| self.fly = 0 | self.fly = 0 |
| self.gator = 0 | self.gator = 0 |
| class pyFrog( ): | |
| def __init__( self ): | |
| # pygame.sprite.Sprite.__init( self ) | |
| self.pos = [0, 0] | |
| self.oldPos = [0, 0] | |
| self.direction = 0 | |
| self.location = 0 | |
| self.hopCount = 0 | |
| self.currentRow = 0 | |
| self.alive = 1 | |
| self.riding = 0 | |
| self.ridingType = 0 | |
| self.deathType = 0 | |
| self.deathCount = 0 | |
| def main( ): | def main( ): |
| pygame.mixer.init( ) | pygame.mixer.init( ) |
| pygame.mixer.pre_init( 44100, -16, 2, 2048 ) | pygame.mixer.pre_init( 44100, -16, 2, 2048 ) |
| pygame.init( ) | pygame.init( ) |
| global game | |
| global screen | global screen |
| global frog | |
| global gfx | |
| global snd | |
| screen = pygame.display.set_mode( ( SCREEN_WIDTH, SCREEN_HEIGHT ) ) | screen = pygame.display.set_mode( ( SCREEN_WIDTH, SCREEN_HEIGHT ) ) |
| game = mainGame( ) | |
| frog = pyFrog( ) | |
| gfx = images( ) | |
| snd = sounds( ) | |
| pygame.display.set_caption( TITLE ) | pygame.display.set_caption( TITLE ) |
| pygame.mouse.set_visible( 0 ) | pygame.mouse.set_visible( 0 ) |
| Line 140 def main( ): | Line 180 def main( ): |
| def beginGame( ): | def beginGame( ): |
| next_heartbeat = 0 | next_heartbeat = 0 |
| done = 0 | done = FALSE |
| drawBackground( ) | if loadMedia( ) <= 0: |
| print "Error: Failed to load graphics and audio!\n" | |
| return | |
| if DEBUG: print "D: Starting main game loop" | if DEBUG: print "D: Starting main game loop" |
| Line 160 def beginGame( ): | Line 202 def beginGame( ): |
| def keyEvents( event ): | def keyEvents( event ): |
| if event.type == QUIT: return 1 | if event.type == QUIT: return 1 |
| elif event.type == KEYDOWN: | elif event.type == KEYDOWN: |
| print "Key Event Type: ", event.key | |
| if event.key == K_ESCAPE: return 1 | if event.key == K_ESCAPE: return 1 |
| elif event.key == K_P: | elif event.key == K_p: |
| if level: | if game.level: |
| if game.playing: | |
| game.playing = FALSE | |
| else: | |
| game.playing = TRUE | |
| print "D: Pausing Game" | print "D: Pausing Game" |
| elif event.key == K_1: | elif event.key == K_1: |
| if not level: | if not game.level and not game.playing: |
| game.level = 1 | |
| game.playing = TRUE | |
| game.lives = LIVES | |
| print "D: Starting Game" | print "D: Starting Game" |
| if game.level and game.playing and frog.alive: | |
| if event.key == K_LEFT: | |
| if not frog.direction: | |
| print "D: Frogger going left" | |
| frog.hopCount = 0 | |
| frog.direction = LEFT | |
| #snd.hop.play() | |
| if event.key == K_RIGHT: | |
| if not frog.direction: | |
| print "D: Frogger going right" | |
| frog.hopCount = 0 | |
| frog.direction = RIGHT | |
| #snd.hop.play() | |
| #playSound( frogger.s_hop ) | |
| if event.key == K_UP: | |
| if not frog.direction: | |
| print "D: Frogger going up" | |
| frog.hopCount = 0 | |
| frog.direction = UP | |
| frog.currentRow += 1 | |
| #playSound( frogger.s_hop ) | |
| if event.key == K_DOWN: | |
| if not frog.direction: | |
| print "D: Frogger going down" | |
| frog.hopCount = 0 | |
| frog.direction = DOWN | |
| frog.direction -= 1 | |
| #playSound( frogger.s_hop ) | |
| return 0 | return 0 |
| def updateGameState( ): | def updateGameState( ): |
| if lives <= 0: | if game.lives <= 0: |
| goDelay += 1 | game.goDelay += 1 |
| drawGameOver( ) | drawGameOver( ) |
| if goDelay > 7: | if goDelay > 7: |
| playing = 0 | game.playing = FALSE |
| lives = 0 | game.lives = 0 |
| level = 0 | game.level = 0 |
| score = 0 | game.score = 0 |
| freefrog = 0 | game.freefrog = 0 |
| drawBG = 0 | game.drawBG = FALSE |
| # for i = 0; i < MAX_GOALS; i++: | # for i = 0; i < MAX_GOALS; i++: |
| # goals[i].occupied = 0 | # goals[i].occupied = 0 |
| return 500 | return 500 |
| drawGameScreen( ) | drawGameScreen( ) |
| return 30 | return 50 |
| def drawGameScreen( ): | def drawGameScreen( ): |
| print "D: Drawing main game screen" | if frog.direction: moveFrog( ) |
| screen.blit( gfx.background_image, ( 0, 0 ) ) | |
| pygame.display.flip( ) | |
| def moveFrog( ): | |
| frog.hopCount += 1 | |
| if frog.hopCount > 60: | |
| print "D: Try Again" | |
| frog.direction = FALSE | |
| def heartbeat( ): | def heartbeat( ): |
| ticks = 0; | ticks = 0; |
| if level: | if game.level: |
| if playing: | if game.playing: |
| ticks = updateGameState( ) | ticks = updateGameState( ) |
| if ticks <= 0: ticks = 30 | if ticks <= 0: ticks = 50 |
| return ticks | return ticks |
| else: | else: |
| drawPauseScreen( ) | drawPauseScreen( ) |
| Line 213 def drawPauseScreen( ): | Line 303 def drawPauseScreen( ): |
| print "D: Game Paused" | print "D: Game Paused" |
| def drawTitleScreen( ): | def drawTitleScreen( ): |
| drawBackground( ) | screen.blit( gfx.background_image, ( 0, 0 ) ) |
| screen.blit( gfx.title_image, ( 35, 92 ) ) | |
| def drawBackground( ): | |
| background_image, background_rect = loadImage( 'gameboard.png' ) | |
| screen.blit( background_image, ( 0, 0 ) ) | |
| pygame.display.flip( ) | pygame.display.flip( ) |
| def loadMedia( ): | |
| print "D: Loading media" | |
| gfx.background_image, gfx.background_rect = loadImage( 'gameboard.png' ) | |
| gfx.frogger_image, gfx.frogger_rect = loadImage( 'frogger.png' ) | |
| gfx.title_image, gfx.title_rect = loadImage( 'pyfrog-title.png', -1 ) | |
| snd.hop = loadSound( 'dp_frogger_hop.ogg' ) | |
| return 1 | |
| def loadImage( filename, colorKey = None ): | def loadImage( filename, colorKey = None ): |
| fullname = os.path.join( 'images', filename ) | fullname = os.path.join( 'images', filename ) |
| Line 254 def loadSound( name ): | Line 351 def loadSound( name ): |
| return sound | return sound |
| ################################################################################ | |
| ## Begin Here | |
| ################################################################################ | |
| if __name__ == '__main__': main() | if __name__ == '__main__': main() |
| #init( ) | |
| #beginGame( ) | |
| #sys.quit( ) |