哈喽哈喽~我是木木子!
今天就是大家期待的——《鱿鱼游戏》之《123木头人》正式的Pygame版本,界面图片都
是超清的画质特好,还搭配了音乐更有激情~
“大头娃娃恐惧症”正在蔓延:“무궁화 꽃이 피었습니다 ”。
事情是这样的:
闲来无事,在家就是刷刷剧看看综艺,这不?
优酷举行2022精品先鉴会,会上官宣了一波新剧集和综艺,其中,一档名为《鱿鱼的胜利》的
综艺不仅引起了网友的注意,也引起了我的注意。
据介绍,《鱿鱼的胜利》是一次智力与体力的大挑战,也是“一场大型儿时游戏回忆杀”。
看着介绍文案中的“挑战”、“儿时游戏”等关键字眼,再加上海报上粉红色的圆圈、三角、方块元
素,这和美国流媒体播放平台奈飞公司最近的爆款剧集《鱿鱼游戏》不能说是毫无关系,简
直是一模一样……
于是,我的灵感一现,苦于上一期文章《鱿鱼游戏》之《碰糖》没有火起来,我想着肯定是图
案太简单了,大家感觉没什么难度,没什么视觉效果~SO,小编肝了几天几夜终于给大家写出
了这款超级《鱿鱼游戏》之《123木头人》Pygame版本的游戏送给大家!进来康康嘛?
大家是否对扎双马尾的小娃娃感到恐惧?是否害怕玩“一二三,木头人”游戏?
前到达划定的区域即可游戏完成,没有完成的或者女童转身看到在移动的就是敌人即游戏失败
人,思密达。”以上情景,在近期成为绝大部分网友挥之不去的梦魇。只要顺利在木头人转身之
前到达划定的区域即可游戏完成,没有完成的或者女童转身看到在移动的就是敌人即游戏失败
既然是《123木头人》的游戏那素材也是找的跟《鱿鱼游戏》类似的,如下即是相应素材
本文用到的环境如下:Python3、Pycharm、Pygame模块以及部分自带模块。
模块安装:pip install -i https://pypi.douban.com/simple/ +模块名
主程序:
import pygame, sys, randomfrom random import randrangepygame.init()screen = pygame.display.set_mode((1024,768))clock = pygame.time.Clock()game_font = pygame.font.Font('04B_19.ttf',40)small_font = pygame.font.Font('04B_19.ttf',10)bg_surface = pygame.image.load('bk5.png').convert()man_movement = 0.0man_status = 0 # 0 stand 1 runmove_speed = 1.0move_timer = 10otherman_status = 0score = 0man_run1 = pygame.image.load('man/man_1.png').convert_alpha()man_run2 = pygame.image.load('man/man_2.png').convert_alpha()man_run3 = pygame.image.load('man/man_3.png').convert_alpha()man_run4 = pygame.image.load('man/man_4.png').convert_alpha()man_run5 = pygame.image.load('man/man_5.png').convert_alpha()man_run6 = pygame.image.load('man/man_6.png').convert_alpha()man_run7 = pygame.image.load('man/man_7.png').convert_alpha()pman_surface1 = pygame.image.load('man/man_1.png').convert_alpha()pman_surface2 = pygame.image.load('man/man_2.png').convert_alpha()pman_surface3 = pygame.image.load('man/man_3.png').convert_alpha()pman_surface4 = pygame.image.load('man/man_4.png').convert_alpha()pman_surface5 = pygame.image.load('man/man_5.png').convert_alpha()pman_surface6 = pygame.image.load('man/man_6.png').convert_alpha()pman_surface7 = pygame.image.load('man/man_7.png').convert_alpha()pman_frames = pman_index = 0pmanFLAP = pygame.USEREVENT + 4pygame.time.set_timer(pmanFLAP,20)pman_list = <>biggirl_run0 = pygame.image.load('girl/girl_0.png').convert_alpha()biggirl_run1 = pygame.image.load('girl/girl_1.png').convert_alpha()biggirl_run2 = pygame.image.load('girl/girl_2.png').convert_alpha()biggirl_run3 = pygame.image.load('girl/girl_3.png').convert_alpha()biggirl_run4 = pygame.image.load('girl/girl_4.png').convert_alpha()biggirl_run5 = pygame.image.load('girl/girl_5.png').convert_alpha()biggirl_run6 = pygame.image.load('girl/girl_6.png').convert_alpha()man_frames = man_index = 0man_surface = man_frames<0>man_rect = man_surface.get_rect(center = (100,700))manFLAP = pygame.USEREVENT + 1pos_x = 100pos_y = 700pygame.time.set_timer(manFLAP,20)light_status = 0biggirl_frames = biggirl_index = 0biggirl_surface = biggirl_frames<0>biggirl_rect = biggirl_surface.get_rect(center = (850,100))biggirlFLAP = pygame.USEREVENT + 2pygame.time.set_timer(biggirlFLAP,200)gameover_status = 0score_sound_countdown = 100def biggirl_animation(): new_man = biggirl_frames new_man_rect = new_man.get_rect(center = (biggirl_rect.centerx,biggirl_rect.centery)) return new_man,new_man_rectdef man_animation(): new_man = man_frames new_man_rect = new_man.get_rect(center = (man_rect.centerx,man_rect.centery)) return new_man,new_man_rectdef pman_animation(): new_pman = pman_frames return new_pmandef pman_stand(): new_pman = pman_frames<0> return new_pmandef man_stand(): new_man = man_frames<0> new_man_rect = new_man.get_rect(center = (man_rect.centerx,man_rect.centery)) return new_man,new_man_rectdef redlight_display(game_state): if (light_status ==1): score_surface = game_font.render("RED LIGHT",True,(255,0,0)) else: score_surface = game_font.render("GREEN LIGHT",True,(0,255,0)) score_rect = score_surface.get_rect(center = (150,50)) screen.blit(score_surface,score_rect)def gameover_display(gameover_status): if (gameover_status ==1 ): gameover_surface = game_font.render("GAME OVER",True,(255,0,0)) gameover_rect = gameover_surface.get_rect(center = (1024/2,768/2)) screen.blit(gameover_surface,gameover_rect) gameover_surface = game_font.render("Press Space to restart",True,(255,0,0)) gameover_rect = gameover_surface.get_rect(center = (1024/2,768/2+50)) screen.blit(gameover_surface,gameover_rect) if (gameover_status ==2 ): gameover_surface = game_font.render("YOU WIN",True,(255,0,0)) gameover_rect = gameover_surface.get_rect(center = (1024/2,768/2)) screen.blit(gameover_surface,gameover_rect) gameover_surface = game_font.render("Press Space to restart",True,(255,0,0)) gameover_rect = gameover_surface.get_rect(center = (1024/2,768/2+50)) screen.blit(gameover_surface,gameover_rect)def move_pmans(pmans): for pman in pmans: if otherman_status ==1 : pman.centerx += 2 pman.centery -= 1 if pman.centery < -10: pmans.remove(pman) return pmans def create_pman(): if gameover_status ==0 : bottom_pman = pman_frames<0>.get_rect(center = (randrange(1024)-600,800+randrange(500))) return bottom_pmanflap_sound = pygame.mixer.Sound('coin.wav')death_sound = pygame.mixer.Sound('bomb2.wav')song_sound = pygame.mixer.Sound('song.wav')SPAWNpman = pygame.USEREVENTpygame.time.set_timer(SPAWNpman,1200)gameover_status =0 pygame.display.set_caption('Squid Game')while True: if ((biggirl_index>=5) & (biggirl_index<=10)): light_status = 1 otherman_status = 0 else : light_status = 0 otherman_status = 1 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_d: man_status = 1 flap_sound.play() if event.key == pygame.K_a: man_status = 0 flap_sound.play() if (event.key == pygame.K_SPACE) &( gameover_status !=0 ): man_status = 0 gameover_status = 0 pman_list = <> man_rect.centerx = 100 man_rect.centery = 700 pos_x = 100 pos_y = 700 elif event.type == SPAWNpman: if ((otherman_status == 1) & (gameover_status == 0)): for num in range(0,10): pman_list.append(create_pman()) print("pile count = ",len(pman_list)) elif event.type == pmanFLAP: if pman_index < 6 : pman_index = pman_index + 1 else: pman_index = 0 if otherman_status==1 : pman_surface = pman_animation() else: pman_surface = pman_stand() elif event.type == manFLAP: if man_index < 6 : man_index = man_index + 1 else: man_index = 0 if man_status==1 : man_surface,man_rect = man_animation() else: man_surface,man_rect = man_stand() elif event.type == biggirlFLAP: if gameover_status == 0 : if biggirl_index < 14 : biggirl_index = biggirl_index + 1 else: biggirl_index = 0 song_sound.play() biggirl_surface,biggirl_rect = biggirl_animation() if gameover_status == 0: screen.blit(bg_surface,(0,0)) text_surface = game_font.render("Press (D) to Go, (A) Stop",True,(0,0,0)) text_rect = text_surface.get_rect(center = (1024/2,768-50)) screen.blit(text_surface,text_rect) screen.blit(man_surface, man_rect) screen.blit(biggirl_surface, biggirl_rect) # pmans pman_list = move_pmans(pman_list) ##pman_list = remove_pmans(pman_list) for pman in pman_list: screen.blit(pman_surface,pman) if (man_status == 1): pos_x = pos_x + move_speed pos_y = pos_y - move_speed/2 man_rect.centerx = pos_x man_rect.centery = pos_y if ((man_status ==1)and (light_status==1)) : gameover_status = 1 death_sound.play() gameover_display(gameover_status) if (pos_y < 250): gameover_status = 2 death_sound.play() gameover_display(gameover_status) redlight_display('main_game') else: gameover_display(gameover_status) pygame.display.update() clock.tick(120)
游戏界面:
诡异女童转身:
诡异女童正面:
游戏结束:
游戏开始自动跑跟转身,如果在女童转身之后按住D继续跑则游戏结束!
《123木头人》小游戏这里就正式结束啦~音乐修改了,让大家消除一下对木头人的恐惧!
是不是Very good 哈哈哈~ 贴心小可爱!有需要完整的素材源码记得找我哈!
你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦~
项目1.0 超级玛丽
程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】
项目1.1 扫雷
Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
项目1.3 太空机甲游戏
Pygame实战:牛,几千行代码实现《机甲闯关冒险游戏》,太牛了(保存起来慢慢学)
项目1.4 水果忍者
【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦,你敢来PK嘛?
项目4.9 天天酷跑小游戏
《天天酷跑》是不是真的不火了?Python发布“酷跑+”计划。
项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在文章汇总哦!!欢迎阅读~)