《愤怒的小鸟》一直是我蛮喜欢的一个系列。
并不是说小鸟的每个系列游戏我都玩过,而是我一直觉得小鸟在ip的塑造上很让人有辨识度,色彩
每个角色造型,都让我觉得无比亲切,而且人设饱满。所以本期的这篇文章我们做得简单点,来做一
下Python版本《愤怒的小鸟》简约版。(代码见文末)
为什么说是简约版?因为研究了很久,还没写出来,一个算是失败的作品,没啥游戏体验感代码也
超级简单,2333 准备继续找找别的大佬写的代码做参考去了!我们先来看看这份简单的小代码
吧!后来想想还是续写一个简易版跟不那么简易两个版本的吧~
正文本文的游戏大概就是一只愤怒的小鸟左右duangduangduang来回撞!笑哭
因为代码很简单我感觉可以直接给大家标上去了
一、简约版环境安装
Python3、 Pycharm 、Pygame模块。(如需安装包、激活码等直接私信我即可完成安装问题解答
都可以的哈~)
第三方库的安装:pip install pygame
1)代码展示
import pygame,sys
pygame.init()#初始化操作
#保存窗口大小
width,height=600,400
screen=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.left<0:
#将图片水平翻转 反转对象 是否水平反转 是否垂直翻转
player = pygame.transform.flip(player,True,False)
speed[0]=-speed[0]
if rect.bottom>height 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 pygame
1)代码展示
import pygame
import sys
from pygame.locals import *
from random import randint
pygame.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, 570
screen = 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<=0:
self.rect.left=0
else:
self.rect=self.rect.move(self.speed)
def move_right(self):
self.speed=[5,0]
if self.rect.right>=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<=0:
self.rect.top=0
else:
self.rect=self.rect.move(self.speed)
def move_down(self):
self.speed=[0,5]
if self.rect.bottom>=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==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、案例等)
(文章汇总还有更多你案例等你来学习啦!)
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved