Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mport pygame,os,sys
- import pygame.mixer
- import block
- import character, setting, level
- class Game(object):
- def __init__(self, w, h, b):
- self.screen = pygame.display.set_mode((w,h),0,b)
- pygame.display.set_caption("Ice Adventure")
- #initialize bg, character
- self.setting = setting.Setting("ice.jpg")
- self.character = character.Character((240,360),self.setting)
- #block
- self.block = pygame.image.load(os.path.join("images", "Block.jpg"))
- self.block_rect = self.block.get_rect()
- #start
- self.start = pygame.image.load(os.path.join("images", "starting_point.png"))
- #finish
- self.finish = pygame.image.load(os.path.join("images", "ending_point.png"))
- self.finish_rect = self.finish.get_rect()
- self.width = w
- self.height = h
- #levels
- self.level = level.Level()
- self.levels = {
- 1 : self.level.level_one(),
- 2 : self.level.level_two(),
- 3 : self.level.level_three(),
- 4 : self.level.level_four(),
- 5 : self.level.level_five()
- }
- self.clock = pygame.time.Clock()
- def startScreen(self,text,font, surface, x,y):
- textobj = font.render(text, 1,(255,255,255))
- textrect = textobj.get_rect()
- textrect.center = (x,y)
- surface.blit(textobj, textrect)
- def redrawAll(self):
- self.screen.blit(self.setting.image,(0,0))
- self.screen.blit(self.character.image, self.character.rect,
- self.character.area)
- def currentLevel(self):
- if not self.character.rect.colliderect(self.finish_rect):
- for pos in self.levels[self.character.level_i][0]:
- self.screen.blit(self.block,pos)
- self.screen.blit(self.start,self.levels[self.character.level_i][1])
- if self.character.level_i == 3 or self.character.level_i == 4 or self.character.level_i == 5:
- rotate = pygame.transform.rotate(self.finish,90)
- self.screen.blit(rotate,
- self.levels[self.character.level_i][2])
- else:
- self.screen.blit(self.finish,
- self.levels[self.character.level_i][2])
- else:
- self.character.level_i += 1
- def run(self):
- pygame.font.init()
- font = pygame.font.SysFont(None, 32)
- #start screen
- self.startScreen("Ice Adventure",font,self.screen,
- (self.width/2), (self.height/2)-50)
- self.startScreen("Press 's' to start.",font,self.screen,
- (self.width/2),(self.height/2)+50)
- pygame.display.update()
- starting = True
- while starting:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- pygame.quit()
- sys.exit()
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_s:
- starting = False
- #plays music
- pygame.mixer.init(frequency=22050,size=-16,channels=2,buffer=4096)
- sound = os.path.join("music", "hit_sound.wav")
- hitSound = pygame.mixer.Sound(sound)
- music = os.path.join("music", "main_music.mid")
- pygame.mixer.music.load(music)
- pygame.mixer.music.play(-1, 0.0)
- isPlaying = True
- running = True
- while running:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- running = False
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_q:
- running = False
- self.character.handle_event(event)
- self.character.handle_animation()
- self.redrawAll()
- self.currentLevel()
- #play sound when char hits block
- if self.character.rect.colliderect(self.block_rect):
- self.character.skate_speed = 0
- if isPlaying:
- hitSound.play()
- pygame.display.flip()
- self.clock.tick(15)
- myGame = Game(480,360,32)
- myGame.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement