def share(self): """Uploads a file to the users dropbox and prints a public link""" cwd = sh.get_cwd() + "/" parser = argparse.ArgumentParser( description="Uploads file to dropbox and returns a public link") parser.add_argument("--overwrite", action="store_true") parser.add_argument("file") args = parser.parse_args(self.args[1:]) mode = (dropbox.files.WriteMode.overwrite if args.overwrite else dropbox.files.WriteMode.add) try: local_file = util.file_path(cwd, args.file) dbx_file = util.file_path("/.sink/share/", args.file) with open(local_file.get_full_path(), "rb") as f: data = f.read() res = self.dropbox.files_upload(data, dbx_file.get_full_path()) print_succ("sink share: %s" % (self.dropbox.sharing_create_shared_link( dbx_file.get_full_path(), short_url=True).url)) except dropbox.exceptions.ApiError as e: print_error("sink share: could not share file")
def download(self): """Downloads a file from the user's dropbox""" cwd = sh.get_cwd() + "/" parser = argparse.ArgumentParser( description="Download a file to the directory specified") parser.add_argument("file") parser.add_argument("dest", nargs="?", default=cwd) args = parser.parse_args(self.args[1:]) with self.stopwatch('download'): try: dbfile = util.file_path(self.curdir.get_directory(), args.file) destfile = util.file_path(args.dest, args.file) # user has specified local directory to save if not args.dest == cwd: self.dropbox.files_download_to_file( destfile.get_full_path(), dbfile.get_full_path()) print_succ("file (%s) saved locally to %s " % (dbfile.get_full_path(), destfile.get_full_path())) else: # default to pwd of where sink was run self.dropbox.files_download_to_file( destfile.get_filename(), dbfile.get_full_path()) print_succ( "file (%s) saved locally to current directory %s" % (dbfile.get_full_path(), destfile.get_full_path())) except dropbox.exceptions.HttpError as err: print_error("sink download: could not download file") except dropbox.exceptions.ApiError as err: print_error("sink download: no such file")
def download(self): """Downloads a file from the user's dropbox""" cwd = sh.get_cwd() + "/" parser = argparse.ArgumentParser( description="Download a file to the directory specified") parser.add_argument("file") parser.add_argument("dest", nargs="?", default=cwd) args = parser.parse_args(self.args[1:]) with self.stopwatch('download'): try: dbfile = util.file_path(self.curdir.get_directory(), args.file) destfile = util.file_path(args.dest, args.file) # user has specified local directory to save if not args.dest == cwd: self.dropbox.files_download_to_file( destfile.get_full_path(), dbfile.get_full_path()) print_succ( "file (%s) saved locally to %s " % (dbfile.get_full_path(), destfile.get_full_path())) else: # default to pwd of where sink was run self.dropbox.files_download_to_file( destfile.get_filename(), dbfile.get_full_path()) print_succ( "file (%s) saved locally to current directory %s" % (dbfile.get_full_path(), destfile.get_full_path())) except dropbox.exceptions.HttpError as err: print_error("sink download: could not download file") except dropbox.exceptions.ApiError as err: print_error("sink download: no such file")
def load(): global _SOUNDS # play background music pygame.mixer.music.load(util.file_path('background.ogg')) pygame.mixer.music.play(-1) # load sound effect for i in ('1', '2', '3', '4', 'drop', 'menu'): _SOUNDS[i] = pygame.mixer.Sound(util.file_path(i + '.ogg'))
def drawitem(self, screen, itemname, item_posi, angle=-1, s=False): if angle == -1: item = pygame.image.load(file_path(itemname)).convert_alpha() if s: item = pygame.transform.scale(item, (15, 15)) screen.blit(item, item_posi) else: ori_item = pygame.image.load(file_path(itemname)).convert_alpha() item = pygame.transform.rotate(ori_item, angle) w, h = ori_item.get_size() w2, h2 = item.get_size() draw_posi = (item_posi[0]+(w-w2)/2., item_posi[1]+(h-h2)/2.) screen.blit(item, draw_posi)
def __init__(self, screen): self.stat = "game" self.WIDTH = self.TILEW * self.W self.HEIGHT = self.TILEW * self.H self.screen = screen self.pause = False self.board = [] #save current situation same as screen for i in xrange(self.H): line = [None] * self.W self.board.append(line) #next to display self.level = 1 self.killed = 0 self.score = 0 #delay for shape fall self.time = self.SPACE * 0.8 ** (self.level - 1) #save the elapsed time after last fail self.elapsed = 0 #pressd firstly time self.pressing = 0 #moving shape self.shape = Shape(self.START, \ (self.WIDTH, self.HEIGHT), (self.W, self.H)) self.shape.set_board(self.board) self.board_image = pygame.Surface((self.WIDTH, self.HEIGHT)) #draw background self.screen.blit(pygame.image.load( \ util.file_path("background.jpg")).convert(), (0, 0)) self.display_info()
def __init__(self, screen): self.stat = "game" self.WIDTH = self.TILEW * self.W self.HEIGHT = self.TILEW * self.H self.screen = screen self.pause = False # the array save current situation # same as screen cood self.board = [] for i in xrange(self.H): line = [None] * self.W self.board.append(line) # will display self.level = 1 self.killed = 0 self.score = 0 # after this time, shape falls self.time = self.SPACE * 0.8**(self.level - 1) # save the elapsed time after last fail self.elapsed = 0 # used for judge pressed firstly or for a long time self.pressing = 0 # the moving shape self.shape = Shape(self.START, (self.WIDTH, self.HEIGHT), (self.W, self.H)) self.shape.set_board(self.board) self.board_image = pygame.Surface((self.WIDTH, self.HEIGHT)) # draw the background once self.screen.blit( pygame.image.load(util.file_path("background.jpg")).convert(), (0, 0)) self.display_info()
def __init__(self, screen): self.stat = "game" self.WIDTH = self.TILEW * self.W self.HEIGHT = self.TILEW * self.H self.screen = screen self.pause = False # the array save current situation # same as screen cood self.board = [] for i in xrange(self.H): line = [ None ] * self.W self.board.append(line) # will display self.level = 1 self.killed = 0 self.score = 0 # after this time, shape falls self.time = self.SPACE * 0.9 ** (self.level - 1) # save the elapsed time after last fail self.elapsed = 0 # used for judge pressed firstly or for a long time self.pressing = 0 # the moving shape self.shape = Shape(self.START, (self.WIDTH, self.HEIGHT), (self.W, self.H)) self.shape.set_board(self.board) self.board_image = pygame.Surface((self.WIDTH, self.HEIGHT)) # draw the background once self.screen.blit(pygame.image.load( util.file_path("background.jpg")).convert(), (0, 0)) self.display_info()
def __init__(self, screen): self.stat = "game" self.WIDTH = self.TILEW * self.W self.HEIGHT = self.TILEW * self.H self.screen = screen self.pause = False self.board = [] #save current situation same as screen for i in xrange(self.H): line = [None] * self.W self.board.append(line) #next to display self.level = 1 self.killed = 0 self.score = 0 #delay for shape fall self.time = self.SPACE * 0.8**(self.level - 1) #save the elapsed time after last fail self.elapsed = 0 #pressd firstly time self.pressing = 0 #moving shape self.shape = Shape(self.START, \ (self.WIDTH, self.HEIGHT), (self.W, self.H)) self.shape.set_board(self.board) self.board_image = pygame.Surface((self.WIDTH, self.HEIGHT)) #draw background self.screen.blit(pygame.image.load( \ util.file_path("background.jpg")).convert(), (0, 0)) self.display_info()
def loadgame(self, slot): self.setsavedir(slot) self.player = Player(load_yaml('player','player.yaml')) debug(self.player.get_hash()) self.journal = Journal(json.loads(open(file_path('journal', 'journal.yaml')).read())) self._rmtemp()
def __init__(self): self.state = 'pre' # init pygame pygame.init() pygame.mixer.init(44100, 16, 2, 1024*4) pygame.display.set_caption("MR. TRAPEZIUS ") try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon(pygame.image.load( util.file_path("Inky.png")).convert_alpha()) except: # some platfom do not allow change icon after shown pass # init fonts and music lists util.init() # init sub states objects self.pre = Pre(self.screen) self.go = MainGame(self.screen) self.level_info = Level(self.screen) self.re = Retry(self.screen) self.next = NextLevel(self.screen) sound.load()
def __init__(self, screen): self.screen = screen orig_bac = pygame.image.load(file_path("background.jpg")).convert() self.background = pygame.transform.scale(orig_bac, (640, 480)) self.show_star = False # 1是最初的神展开介绍画面 2是操作方法 3,4,5,6道具介绍 self.show_info = 1 self.angle = 0.
def draw(self): #self.screen.fill((0, 0, 0)) self.screen.blit(pygame.image.load(util.file_path("menu.jpg")).convert(), (0, 0)) for idx in xrange(len(self.OPTS)): if idx == self.current: util.myprint(self.screen, self.OPTS[idx], (280, 80 * idx + 250)) else: util.myprint(self.screen, self.OPTS[idx], (280, 80 * idx + 250), 's', (160, 160, 160))
class Shape4(Shape): def __init__(self, board_start, (board_width, board_height), (w, h)): self.SHAPES += ( (((1,1,1,1), (1,1,1,1), (1,1,1,1), (1,1,1,1)),), ) self.COLORS += ((0, 0, 0),) self._image = {} self.image[7] = pygame.image.load(util.file_path('neko.png')).convert_alpha() super(Shape4, self).__init__(board_start, (board_width, board_height), (w, h))
def load_level(file_name): level = image.load(file_path(file_name)) tiles = [] for y in range(level.get_height()): for x in range(level.get_width()): colour = level.get_at((x, y)) if colour == (0, 0, 0, 0): tiles.append(Tile(x, y, "BRICK")) return tiles
def upload(self): """Uploads a file to the user's dropbox""" cwd = sh.get_cwd() + "/" parser = argparse.ArgumentParser(description="Uploads file to dropbox") parser.add_argument("--overwrite", action="store_true") parser.add_argument("file") parser.add_argument("path") args = parser.parse_args(self.args[1:]) mode = (dropbox.files.WriteMode.overwrite if args.overwrite else dropbox.files.WriteMode.add) try: local_file = util.file_path(cwd, args.file) dbx_file = util.file_path(args.path, args.file) with open(local_file.get_full_path(), "rb") as f: data = f.read() res = self.dropbox.files_upload(data, dbx_file.get_full_path()) print_succ("file %s uploaded to %s" % (local_file.get_filename(), dbx_file.get_full_path())) except dropbox.exceptions.ApiError as e: print_error("sink upload: could not upload file")
def __init__(self, screen): self.screen = screen self.ifdead = False self.entities = {} # Store all the entities self.entity_id = 0 # Last entity id assigned orig_bac = pygame.image.load(file_path("background.jpg")).convert() self.background = pygame.transform.scale(orig_bac, (640, 480)) self.left_20 = False self.left_10 = False self.right_20 = False self.right_10 = False self.speedup = False self.handsweat = False
def __init__(self): # current stat of game self.stat = "menu" # init pygame pygame.mixer.pre_init(44100, 16, 2, 1024 * 4) pygame.init() pygame.display.set_caption("FUNNY TETRIS") self.init() try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon(pygame.image.load(util.file_path("icon.png")).convert_alpha()) except: # some platfom do not allow change icon after shown pass # init sub modules self.menu = Menu(self.screen) # menu show start menu self.main = Main(self.screen) # main is the real tetris
def __init__(self): self.stat = 'menu' pygame.mixer.pre_init(44100, 16, 2, 1024*4) #mixer pre_init arguments pygame.init() pygame.display.set_caption("TETRIS_FUNNY") self.init() try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon(pygame.image.load( util.file_path("icon.png")).convert_alpha()) except: print "can't find icon picture under data directory" pass #init sub modules self.menu = Menu(self.screen) self.main = Main(self.screen)
def __init__(self): self.stat = 'menu' pygame.mixer.pre_init(44100, 16, 2, 1024 * 4) #mixer pre_init arguments pygame.init() pygame.display.set_caption("TETRIS_FUNNY") self.init() try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon( pygame.image.load(util.file_path("icon.png")).convert_alpha()) except: print "can't find icon picture under data directory" pass #init sub modules self.menu = Menu(self.screen) self.main = Main(self.screen)
def __init__(self): # current stat of game self.stat = 'menu' # init pygame pygame.mixer.pre_init(44100, 16, 2, 1024 * 4) pygame.init() pygame.display.set_caption("FUNNY TETRIS") self.init() try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon( pygame.image.load(util.file_path("icon.png")).convert_alpha()) except: # some platfom do not allow change icon after shown pass # init sub modules self.menu = Menu(self.screen) # menu show start menu self.main = Main(self.screen) # main is the real tetris
def __init__(self): # current stat of game self.stat = 'menu' # init pygame pygame.mixer.pre_init(44100, 16, 2, 1024*4) pygame.init() pygame.display.set_caption("Funny Tetris") self.init() try: self.screen = pygame.display.set_mode((640, 480), HWSURFACE | SRCALPHA, 32) except: self.screen = pygame.display.set_mode((640, 480), SRCALPHA, 32) try: pygame.display.set_icon(pygame.image.load( util.file_path('icon.png')).convert_alpha()) except: pass # init sub modules self.menu = Menu(self.screen) # menu show start menu self.main = Main(self.screen) # main is the real tetris
def load(): global _SOUNDS pygame.mixer.music.load(file_path('background.ogg')) pygame.mixer.music.play(-1) for event in ('1', '2', '3', '4', 'drop', 'menu'): _SOUNDS[event] = pygame.mixer.Sound(file_path(event + '.ogg'))
def run(self, mode): GAME_WIDTH = 420 GAME_HEIGHT = 440 human = pygame.image.load(file_path("walk.png")).convert_alpha() star_img1= pygame.image.load(file_path("star1.png")).convert_alpha() star_img2= pygame.image.load(file_path("star2.png")).convert_alpha() star_img3= pygame.image.load(file_path("star3.png")).convert_alpha() star_img4= pygame.image.load(file_path("star4.png")).convert_alpha() star_img5= pygame.image.load(file_path("star5.png")).convert_alpha() star_img6= pygame.image.load(file_path("star6.png")).convert_alpha() #star_img7= pygame.image.load(file_path("star7.png")).convert_alpha() paused = False if mode==1: self.scoreleft = 600 DB_COUNT = 10 init_pig = pig.Pig() clock = pygame.time.Clock() world = World(self.screen) gamespeed = 4. for db in xrange(DB_COUNT): db = entity.Dumbbell(world) my_random_posi = self.my_random() db.location = MyVector(my_random_posi) world.add_entity(db) me = entity.Me(world, human) me.location = MyVector((GAME_WIDTH/2, GAME_HEIGHT/2)) world.add_entity(me) while True: for e in pygame.event.get(): if e.type == QUIT: return 'quit' if e.type == KEYUP: if e.key == K_SPACE: paused = not paused if not paused: past_second = clock.tick(30) / 1000.0 self.scoreleft -= 1 # 一定几率不断出现星星 if randint(1,200) == 1: start_obj1 = entity.Star(world, star_img1, 1) my_random_posi = self.my_random() start_obj1.location = MyVector(my_random_posi) world.add_entity(start_obj1) if randint(1,200) == 1: start_obj3 = entity.Star(world, star_img3, 3) my_random_posi = self.my_random() start_obj3.location = MyVector(my_random_posi) world.add_entity(start_obj3) if randint(1,300) == 1: start_obj6 = entity.Star(world, star_img6, 6) my_random_posi = self.my_random() start_obj6.location = MyVector(my_random_posi) world.add_entity(start_obj6) #画世界 world.render() #世界运行 world.process(past_second) #积分区域 score_area = self.screen.subsurface(460, 20, 160, 60) score_area.fill((0,0,0)) myprint(score_area, 'LEVEL 1', (5,5), color=(255,255,255), size='enl') myprint(score_area, 'To Next Level: ', (5,35), color=(255,255,255), size='dk') myprint(score_area, str(self.scoreleft), (80,35), color=(255,255,255), size='dk') #画猪 pig_area = self.screen.subsurface(460, 90, 160, 370) pig_area.fill((0,0,0)) if world.left_20: init_pig.shy = False gamespeed = 4. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-20, init_pig.dynamic_tra_start2[1]) world.left_20 = False if world.right_20: init_pig.shy = False gamespeed = 4. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+20, init_pig.dynamic_tra_start2[1]) world.right_20 = False if world.left_10: init_pig.shy = False gamespeed = 4. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-10, init_pig.dynamic_tra_start2[1]) world.left_10 = False if world.right_10: init_pig.shy = False gamespeed = 4. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+10, init_pig.dynamic_tra_start2[1]) world.right_10 = False if world.speedup: gamespeed = 20. init_pig.shy = True world.speedup = False if world.handsweat: init_pig.shy = False gamespeed = 4. halfneck = 262-(236-init_pig.dynamic_tra_start1[1]+26)/2 init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0], halfneck) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0], halfneck) init_pig.sweat = True world.handsweat = False if init_pig.sweat: init_pig.draw_dynamic_pig(pig_area, (80,300), 0.) else: init_pig.draw_dynamic_pig(pig_area, (80,300), past_second, neck_speed=gamespeed) #被哑铃砸到 if world.ifdead: #死亡讯息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'你被哑铃砸到了!斜方怪非常开心!', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) #myprint(game_area, u'斜方肌猛涨', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) return 'retry1' #斜方怪锻炼完成 if init_pig.pigtootall: #斜方肌太强壮信息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'怎么都让斜方怪长成这样了!', (GAME_WIDTH/2-115, GAME_HEIGHT/2-20), color=(255,127,0)) myprint(game_area, u'地球再也打不过斜方星了!', (GAME_WIDTH/2-105, GAME_HEIGHT/2), color=(255,127,0)) return 'retry1' #检查是否进入下一关 if self.scoreleft == 0: return 'next2' pygame.display.update() else: print 'paused' if mode == 2: paused = False self.scoreleft = 1000 DB_COUNT = 10 init_pig = pig.Pig() clock = pygame.time.Clock() world = World(self.screen) gamespeed = 6. for db in xrange(DB_COUNT): db = entity.Dumbbell(world) my_random_posi = self.my_random() db.location = MyVector(my_random_posi) world.add_entity(db) me = entity.Me(world, human) me.location = MyVector((GAME_WIDTH/2, GAME_HEIGHT/2)) world.add_entity(me) while True: for e in pygame.event.get(): if e.type == QUIT: return 'quit' if e.type == KEYUP: if e.key == K_SPACE: paused = not paused if not paused: past_second = clock.tick(30) / 1000.0 self.scoreleft -= 1 # 一定几率不断出现星星 if randint(1,400) == 1: start_obj1 = entity.Star(world, star_img1, 1) my_random_posi = self.my_random() start_obj1.location = MyVector(my_random_posi) world.add_entity(start_obj1) if randint(1,200) == 1: start_obj3 = entity.Star(world, star_img3, 3) my_random_posi = self.my_random() start_obj3.location = MyVector(my_random_posi) world.add_entity(start_obj3) if randint(1,400) == 1: start_obj2 = entity.Star(world, star_img2, 2) my_random_posi = self.my_random() start_obj2.location = MyVector(my_random_posi) world.add_entity(start_obj2) if randint(1,200) == 1: start_obj4 = entity.Star(world, star_img4, 4) my_random_posi = self.my_random() start_obj4.location = MyVector(my_random_posi) world.add_entity(start_obj4) if randint(1,300) == 1: start_obj6 = entity.Star(world, star_img6, 6) my_random_posi = self.my_random() start_obj6.location = MyVector(my_random_posi) world.add_entity(start_obj6) #画世界 world.render() #世界运行 world.process(past_second) #积分区域 score_area = self.screen.subsurface(460, 20, 160, 60) score_area.fill((0,0,0)) myprint(score_area, u'LEVEL 2', (5,5), color=(255,255,255), size='enl') myprint(score_area, 'To Next Level: ', (5,35), color=(255,255,255), size='dk') myprint(score_area, str(self.scoreleft), (80,35), color=(255,255,255), size='dk') #画猪 pig_area = self.screen.subsurface(460, 90, 160, 370) pig_area.fill((0,0,0)) if world.left_20: init_pig.shy = False gamespeed = 6. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-20, init_pig.dynamic_tra_start2[1]) world.left_20 = False if world.right_20: init_pig.shy = False gamespeed = 6. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+20, init_pig.dynamic_tra_start2[1]) world.right_20 = False if world.left_10: init_pig.shy = False gamespeed = 6. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-10, init_pig.dynamic_tra_start2[1]) world.left_10 = False if world.right_10: init_pig.shy = False gamespeed = 6. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+10, init_pig.dynamic_tra_start2[1]) world.right_10 = False if world.speedup: gamespeed = 20. init_pig.shy = True world.speedup = False if world.handsweat: init_pig.shy = False gamespeed = 6. halfneck = 262-(236-init_pig.dynamic_tra_start1[1]+26)/2 init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0], halfneck) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0], halfneck) init_pig.sweat = True world.handsweat = False if init_pig.sweat: init_pig.draw_dynamic_pig(pig_area, (80,300), 0.) else: init_pig.draw_dynamic_pig(pig_area, (80,300), past_second, neck_speed=gamespeed) #被哑铃砸到 if world.ifdead: #死亡讯息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'你被哑铃砸到了!斜方怪非常开心!', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) #myprint(game_area, u'斜方肌猛涨', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) return 'retry2' #斜方怪锻炼完成 if init_pig.pigtootall: #斜方肌太强壮信息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'怎么都让斜方怪长成这样了!', (GAME_WIDTH/2-115, GAME_HEIGHT/2-20), color=(255,127,0)) myprint(game_area, u'地球再也打不过斜方星了!', (GAME_WIDTH/2-105, GAME_HEIGHT/2), color=(255,127,0)) return 'retry2' #检查是否进入下一关 if self.scoreleft == 0: return 'next3' pygame.display.update() else: print 'paused' if mode == 3: paused = False self.scoreleft = 1000 DB_COUNT = 20 init_pig = pig.Pig() clock = pygame.time.Clock() world = World(self.screen) gamespeed = 10. for db in xrange(DB_COUNT): db = entity.Dumbbell(world) my_random_posi = self.my_random() db.location = MyVector(my_random_posi) world.add_entity(db) me = entity.Me(world, human) me.location = MyVector((GAME_WIDTH/2, GAME_HEIGHT/2)) world.add_entity(me) while True: for e in pygame.event.get(): if e.type == QUIT: return 'quit' if e.type == KEYUP: if e.key == K_SPACE: paused = not paused if not paused: past_second = clock.tick(30) / 1000.0 self.scoreleft -= 1 # 一定几率不断出现星星 if randint(1,400) == 1: start_obj1 = entity.Star(world, star_img1, 1) my_random_posi = self.my_random() start_obj1.location = MyVector(my_random_posi) world.add_entity(start_obj1) if randint(1,200) == 1: start_obj3 = entity.Star(world, star_img3, 3) my_random_posi = self.my_random() start_obj3.location = MyVector(my_random_posi) world.add_entity(start_obj3) if randint(1,400) == 1: start_obj2 = entity.Star(world, star_img2, 2) my_random_posi = self.my_random() start_obj2.location = MyVector(my_random_posi) world.add_entity(start_obj2) if randint(1,200) == 1: start_obj4 = entity.Star(world, star_img4, 4) my_random_posi = self.my_random() start_obj4.location = MyVector(my_random_posi) world.add_entity(start_obj4) if randint(1,400) == 1: start_obj5 = entity.Star(world, star_img5, 5) my_random_posi = self.my_random() start_obj5.location = MyVector(my_random_posi) world.add_entity(start_obj5) if randint(1,300) == 1: start_obj6 = entity.Star(world, star_img6, 6) my_random_posi = self.my_random() start_obj6.location = MyVector(my_random_posi) world.add_entity(start_obj6) #画世界 world.render() #世界运行 world.process(past_second) #积分区域 score_area = self.screen.subsurface(460, 20, 160, 60) score_area.fill((0,0,0)) myprint(score_area, u'LEVEL 3', (5,5), color=(255,255,255), size='enl') myprint(score_area, 'To Next Level: ', (5,35), color=(255,255,255), size='dk') myprint(score_area, str(self.scoreleft), (80,35), color=(255,255,255), size='dk') #画猪 pig_area = self.screen.subsurface(460, 90, 160, 370) pig_area.fill((0,0,0)) if world.left_20: init_pig.shy = False gamespeed = 10. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-20, init_pig.dynamic_tra_start2[1]) world.left_20 = False if world.right_20: init_pig.shy = False gamespeed = 10. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+20, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+20, init_pig.dynamic_tra_start2[1]) world.right_20 = False if world.left_10: init_pig.shy = False gamespeed = 10. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]-10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]-10, init_pig.dynamic_tra_start2[1]) world.left_10 = False if world.right_10: init_pig.shy = False gamespeed = 10. init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0]+10, init_pig.dynamic_tra_start1[1]) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0]+10, init_pig.dynamic_tra_start2[1]) world.right_10 = False if world.speedup: gamespeed = 20. init_pig.shy = True world.speedup = False if world.handsweat: init_pig.shy = False gamespeed = 10. halfneck = 262-(236-init_pig.dynamic_tra_start1[1]+26)/2 init_pig.dynamic_tra_start1 = (init_pig.dynamic_tra_start1[0], halfneck) init_pig.dynamic_tra_start2 = (init_pig.dynamic_tra_start2[0], halfneck) init_pig.sweat = True world.handsweat = False if init_pig.sweat: init_pig.draw_dynamic_pig(pig_area, (80,300), 0.) else: init_pig.draw_dynamic_pig(pig_area, (80,300), past_second, neck_speed=gamespeed) #被哑铃砸到 if world.ifdead: #死亡讯息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'你被哑铃砸到了!斜方怪非常开心!', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) #myprint(game_area, u'斜方肌猛涨', (GAME_WIDTH/2-130, GAME_HEIGHT/2), color=(255,127,0)) return 'retry3' #斜方怪锻炼完成 if init_pig.pigtootall: #斜方肌太强壮信息 game_area = self.screen.subsurface(20, 20, 420, 440) myprint(game_area, u'怎么都让斜方怪长成这样了!', (GAME_WIDTH/2-115, GAME_HEIGHT/2-20), color=(255,127,0)) myprint(game_area, u'地球再也打不过斜方星了!', (GAME_WIDTH/2-105, GAME_HEIGHT/2), color=(255,127,0)) return 'retry3' #检查是否进入下一关 if self.scoreleft == 0: return 'next4' pygame.display.update() else: print 'paused'
def __init__(self, screen): self.screen = screen orig_bac = pygame.image.load(file_path("background.jpg")).convert() self.background = pygame.transform.scale(orig_bac, (640, 480))
def load(): _SOUNDS['go'] = pygame.mixer.Sound(util.file_path('go.ogg')) _SOUNDS['menu'] = pygame.mixer.Sound(util.file_path('menu.ogg')) pygame.mixer.music.load(util.file_path('background.ogg'))
def __init__(self, surface): self.screen = surface self.original_icon = pygame.image.load(file_path("Inky.png")).convert_alpha() self.loading_icon = pygame.transform.scale(self.original_icon, (30, 30)) self.angle = 0.
def save_to_file(self, directory): filename = file_path(directory, self.filename(), new=True) data = dict(self()) open(filename,'w').write(json.dumps(data, indent=4)) return filename
def __init__(self, world, human): super(Me, self).__init__(world, 'me') self.speed = 70. self.shadow = pygame.image.load(file_path("am_mask.png")).convert_alpha() self.shadow = pygame.transform.scale(self.shadow, (150, 150)) self.human = human