10年前风靡全球的手游《愤怒的小鸟》是如何称霸榜单的?经典回归.
《愤怒的小鸟》一直是我蛮喜欢的一个系列。
并不是说小鸟的每个系列游戏我都玩过,而是我一直觉得小鸟在ip的塑造上很让人有辨识度,色彩每个角色造型,都让我觉得无比亲切,而且人设饱满。所以本期的这篇文章我们做得简单点,来做一下Python版本《愤怒的小鸟》简约版。(代码见文末)为什么说是简约版?因为研究了很久,还没写出来,一个算是失败的作品,没啥游戏体验感代码也超级简单,2333 准备继续找找别的大佬写的代码做参考去了!我们先来看看这份简单的小代码吧!后来想想还是续写一个简易版跟不那么简易两个版本的吧~
正文本文的游戏大概就是一只愤怒的小鸟左右duangduangduang来回撞!笑哭因为代码很简单我感觉可以直接给大家标上去了
一、简约版环境安装Python3、 Pycharm 、Pygame模块。(如需安装包、激活码等直接私信我即可完成安装问题解答都可以的哈~)
第三方库的安装:pip install pygame1)代码展示import pygame,syspygame.init()#初始化操作#保存窗口大小width,height=600,400screen=pygame.display.set_mode([width,height])#创建游戏窗口#设置窗口标题pygame.display.set_caption("愤怒的小鸟")#加载小鸟素材player=pygame.image.load("xiaoniao.png")#获取图像矩形位置rect=player.get_rect()#声明XY运动速度的列表speed = [3,2]left_head = pygame.transform.flip(player,True,False)right_head = player#无限循环while True: for event in pygame.event.get(): if event.type ==pygame.QUIT: exit() if event.type ==pygame.KEYDOWN: if event.key == pygame.K_LEFT: player = left_head #小鸟的头向左 speed=[-2,1] if event.key == pygame.K_RIGHT: player = right_head #小鸟的头向左 speed=[2,1] if event.key == pygame.K_UP: player = left_head #小鸟的头向左 speed=[2,-1] if event.key == pygame.K_DOWN: player = right_head #小鸟的头向左 speed=[2,1] rect =rect.move(speed) if rect.right>width or rect.leftheight or rect.top<0: speed[1]=-speed[1] screen.fill((255,255,255)) screen.blit(player,rect) pygame.display.update() pygame.time.delay(10)2)效果展示其实截图的话不怎么展示的出来效果——
其实这个游戏可以飘了
二、不那么简约版环境安装Python3、 Pycharm 、Pygame模块。(如需安装包、激活码等直接私信我即可完成安装问题解答都可以的哈~)
第三方库的安装:pip install pygame1)代码展示
import pygameimport sysfrom pygame.locals import *from random import randintpygame.init()pygame.mixer.init()pygame.mixer.music.load('愤怒的小鸟背景音效.wav')pygame.mixer.music.set_volume(0.2)pygame.mixer.music.play(loops=-1)bg = pygame.image.load('愤怒的小鸟背景图3.jpg')bg_position = bg.get_rect()size = width, height = 1000, 570screen = pygame.display.set_mode(size)pygame.display.set_caption('愤怒的小鸟!')def main(): class Bird(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) position=100,100 self.image=pygame.image.load('愤怒的小鸟里的小鸟.png') self.rect=self.image.get_rect() self.rect.center=position def move_left(self): self.speed=[-5,0] if self.rect.left=1000: self.rect.right=1000 else: self.rect=self.rect.move(self.speed) def move_up(self): self.speed=[0,-5] if self.rect.top=570: self.rect.bottom=570 else: self.rect=self.rect.move(self.speed) class Pig(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) y=randint(0,570) position=[1000,y] self.image=pygame.image.load('愤怒的小鸟里的小猪.png') self.rect=self.image.get_rect() self.rect.center=position self.speed=[-4,0] def move(self): self.rect=self.rect.move(self.speed) bird=Bird() i=0 group=pygame.sprite.Group() state=True while state: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() key=pygame.key.get_pressed() if key[K_LEFT]: bird.move_left() if key[K_RIGHT]: bird.move_right() if key[K_UP]: bird.move_up() if key[K_DOWN]: bird.move_down() screen.blit(bg, bg_position) screen.blit(bird.image,bird.rect) i=i+1 if i%10==0: pig=Pig() group.add(pig) for p in group.sprites(): p.move() screen.blit(p.image,p.rect) if pygame.sprite.collide_mask(bird,p): state=False pause() pygame.display.flip() pygame.time.Clock().tick(60)def pause(): bg_go = pygame.image.load('愤怒的小鸟gameover图.jpg') bg_go_pos = bg_go.get_rect() size = width, height = 1000, 570 screen = pygame.display.set_mode(size) pygame.display.set_caption('GameOver!') while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() img_src=pygame.image.load('重玩按钮.jpg') img_src_pos=img_src.get_rect() mouse_press=pygame.mouse.get_pressed() mouse_pos=pygame.mouse.get_pos() left=img_src_pos.left right=img_src_pos.right top=img_src_pos.top bottom=img_src_pos.bottom if left+100<mouse_pos[0]<right+100 and top+185<mouse_pos[1]<bottom+185: img_src=pygame.image.load('重玩按钮2.jpg') if mouse_press[0]: main() img_src_pos = img_src.get_rect().center = 100, 185 screen.blit(bg_go, bg_go_pos) screen.blit(img_src,img_src_pos) pygame.display.flip()main()2)效果展示游戏界面:(游戏运行之后都是有音效的哦,游戏规则就是躲避右边的小猪啦)
游戏结束!
总结时隔多年,小编写代码的水平都飞起来了,说明技术还是提升了的,大家放心观看!往期还有很多源码等着你们自己拿自己看呢!
✨完整的素材等:私信小编06即可的啦~往期推荐阅读——项目1.6 【Pygame小游戏】斗地主我见多了,BUT 这款开源欢乐斗地主,最让人服气~项目2.2【Pygame小游戏】扫雷游戏50多岁了,但这款我能玩一年~(三个版本集合)项目0.5 【视频倒放神器】超级玩法:千万不要倒放视频,太魔性了根本停不下来......项目0.6 【Python小程序】隐藏表白图:“你永远都不知道我喜欢你”(建议保存)项目0.4 Python教程:去除背景,我保证不动她一根头发(附多种方式)
文章汇总——汇总: Python文章合集 | (入门到实战、游戏、Turtle、案例等)(文章汇总还有更多你案例等你来学习啦!)