在无聊的时候玩小游戏
Hi~ o(* ̄▽ ̄*)ブ我是闪电,今天给大家分享一个小游戏的完整代码(python3.6.5版本):
import pygame
from pygame import locals
import random, time, math, sys
class BulletSprite(pygame.sprite.Sprite):
def __init__(self,imagepath,pos,screen,m):
super().__init__()
self.image = pygame.image.load(imagepath)
self.image = pygame.transform.smoothscale(self.image, (10,10))
self.rect = self.image.get_rect()
self.pos = pos
self.rect.x = pos[0]
self.rect.y = pos[1]
self.m=m
self.a=0
self.screen=screen
#============== start ================
# 设置相关属性
#============== start ================
def move(self):
self.rect.y-=self.m[1]
self.rect.x+=self.m[0]+self.m[2]
if self.rect.x<=0 or self.rect.right>=640:
self.m[0]=-self.m[0]
if self.rect.y<=0 or self.rect.bottom>=680:
self.m[1]=-self.m[1]
#============== start ================
# 子弹移动方法
#============== start ================
def update(self):
self.move()
class Zombie(pygame.sprite.Sprite):
def __init__(self,imagepath,pos,screen,m,score,hp):
super().__init__()
self.image = pygame.image.load(imagepath)
self.image = pygame.transform.smoothscale(self.image, (40,50))
self.rect = self.image.get_rect()
self.pos = pos
self.hp=hp
self.rect.x = pos[0]
self.rect.y = pos[1]
self.m=m
self.score=score
self.screen=screen
def move(self,s):
self.rect.y+=1
self.l=['a','a','a','na','na','na','na','na','na','na']
self.pik=random.choice(self.l)
if self.pik=='a':
self.rect.y+=10
self.rect.x+=self.m
if self.rect.bottom>=680:
print('僵尸吃掉了你的脑子!!!')
print(s)
pygame.quit()
sys.exit()
if self.rect.x<=0 or self.rect.right>=640:
self.m=-self.m
def fire(self,b,g):
l=[-5,0,5]
for x in range(3):
a=b('./images/PeaNormal_0.png',[self.rect.x,self.rect.y],self.screen,[l[x],1,self.m])
g.add(a)
def update(self,b,g,s):
self.fire(b,g)
self.move(s)
if self.hp<=0:
# self.score+=1
self.kill()
class Plant(pygame.sprite.Sprite):
def __init__(self,imagepath,pos,screen,m):
super().__init__()
self.image = pygame.image.load(imagepath)
self.image = pygame.transform.smoothscale(self.image, (40,40))
self.rect = self.image.get_rect()
self.screen=screen
self.pos = pos
self.rect.x = pos[0]
self.rect.y = pos[1]
self.m=m
self.a=30
self.g=pygame.sprite.Group()
def move(self):
self.rect.y+=self.a
self.rect.x+=self.m
if self.rect.x<=0 or self.rect.right>=640:
self.m=-self.m
if self.rect.y<=0 or self.rect.bottom>=680:
self.a=-self.a
# if self.rect.bottom>=680:
# self.kill()
def fire(self,b,g):
a=b('./images/PeaNormal_0.png',[self.rect.x,self.rect.y],self.screen,[self.m,1,0])
g.add(a)
def update(self,b,g):
self.fire(b,g)
self.move()
def main():
pygame.init()
FPSclock = pygame.time.Clock()
screen = pygame.display.set_mode((640,680))
image_bg = pygame.image.load("./images/地图.png")
image_bg = pygame.transform.smoothscale(image_bg, (640,680))
mouse_cursor = pygame.image.load("./images/准星.png")
mouse_cursor = pygame.transform.smoothscale(mouse_cursor, (25, 25))
pygame.mouse.set_visible(False)
group_zombie = pygame.sprite.Group()
group_plant = pygame.sprite.Group()
group_bullet = pygame.sprite.Group()
group_bullet1 = pygame.sprite.Group()
group_b = pygame.sprite.Group()
font = pygame.font.Font("stxingka.ttf",32)
n=0
nn=0
ax=False
ap=0
pn=0
d=int(input('dif:'))
while d not in range(1,4):
d=int(input('dif:'))
score=0
if d==3:
plnt=Plant('./images/Peashooter_0.png',[random.randint(0,600),0],1,random.randint(0,2))
group_plant.add(plnt)
pn+=1
ppp=True
aax=False
while True:
# nn+=1
if ap>300:
ap=0
ax=False
FPSclock.tick(200)
screen.blit(image_bg, (0, 0))
n+=1
keys = pygame.key.get_pressed()
if keys[locals.K_x]:
if not aax:
ax=True
if pn>30:
pn=0
group_plant.empty()
if pn==0:
a=BulletSprite('./images/PeaNormal_0.png',[random.randint(0,630),0],screen,[5,1,0])
group_b.add(a)
if n==10:
n=0
zomb=Zombie('./images/Zombie_0.png',[random.randint(0,600),0],random.randint(3,5),random.randint(1,3),score,15)
group_zombie.add(zomb)
# score=zomb.score
aaaa=100
aaaa//=16
print(aaaa)
if d==3:
if nn==500:
nn=500
for x in range(5):
plnt=Plant('./images/Peashooter_0.png',[random.randint(0,600),0],screen,10)
group_plant.add(plnt)
# pn+=1
for event in pygame.event.get():
pos = pygame.mouse.get_pos()
isPressed = pygame.mouse.get_pressed()[0]
if event.type == locals.QUIT:
print(score)
pygame.quit()
sys.exit()
# 当点击鼠标,从两个位置朝鼠标坐标点发射两颗子弹
#============== end ================
if not isPressed:
n1=pos[0]
n2=pos[0]+10
n3=pos[0]-10
if n1<40:
n1=40
if n1>600:
n1=600
if n2<40:
n2=40
if n2>600:
n2=600
if n3<40:
n3=40
if n3>600:
n3=600
plnt=Plant('./images/Peashooter_0.png',[n1,0],screen,random.randint(5,15))
group_plant.add(plnt)
plnt=Plant('./images/Peashooter_0.png',[n2,0],screen,random.randint(5,15))
group_plant.add(plnt)
plnt=Plant('./images/Peashooter_0.png',[n3,0],screen,random.randint(5,15))
group_plant.add(plnt)
pn+=1
# music = pygame.mixer.music
# music.load("./music/射击.mp3") # 加载音乐
# music.play(1)
group_bullet.update()
group_bullet.draw(screen)
group_bullet1.update()
group_bullet1.draw(screen)
group_zombie.update(BulletSprite,group_b,score)
group_zombie.draw(screen)
group_plant.update(BulletSprite,group_b)
group_plant.draw(screen)
if d==3:
group_b.update()
screen.blit(font.render("Score:"+str(score) , True,(255, 0, 0)),(20,20))
if d==3:
group_b.draw(screen)
screen.blit(font.render("plantspawntime:"+str(500-nn) , True,(255, 0, 0)),(20,40))
screen.blit(font.render("zombiespawntime:"+str(10-n) , True,(255, 0, 0)),(20,60))
screen.blit(font.render("plantnumber:"+str(pn) , True,(255, 0, 0)),(20,80))
screen.blit(font.render("ax:"+str(ax) , True,(255, 0, 0)),(20,100))
if ax:
ap+=1
screen.blit(font.render("ap:"+str(ap) , True,(255, 0, 0)),(20,120))
n=0
aax=True
pn=0
group_plant.empty()
# col=pygame.sprite.groupcollide(group_bullet,group_bullet1,True,True)
if d==3:
col=pygame.sprite.groupcollide(group_zombie,group_plant,False,False)
if col:
z=list(col.values())[0][0]
z.m=-z.m
z.a=-z.a
# col=pygame.sprite.groupcollide(plnt.g,group_bullet1,True,True)
col1=pygame.sprite.groupcollide(group_bullet1,group_zombie,True,False)
col2=pygame.sprite.groupcollide(group_bullet,group_zombie,True,False)
col3=pygame.sprite.groupcollide(group_bullet,group_plant,True,False)
col4=pygame.sprite.groupcollide(group_bullet1,group_plant,True,False)
if d==3:
col5=pygame.sprite.groupcollide(group_b,group_zombie,True,False)
if col5:
z=list(col5.values())[0][0]
print(z)
z.hp-=1
if z.hp==0:
if d==1:
score+=2
elif d==2:
score+=5
else:
score+=1
if col1:
z=list(col1.values())[0][0]
z.hp-=1
if z.hp==0:
if d==1:
score+=2
elif d==2:
score+=5
else:
score+=1
if col2:
z=list(col2.values())[0][0]
z.hp-=1
if z.hp==0:
if d==1:
score+=2
elif d==2:
score+=5
else:
score+=1
if col3 or col4:
print('击杀豌豆,误伤队友,失败!!!')
print(score)
pygame.quit()
sys.exit()
screen.blit(mouse_cursor, pos)
pygame.display.update()
if __name__ == "__main__":
main()
先添加images文件夹,再加入图片:Peashooter_0.png,Zombie_0.png,PeaNormal_0.png
地图和准星请自己找,因为没法再添加图片了
在无聊的时候玩小游戏相关推荐
- 始终玩小游戏,我就是一个无聊之人
我的大学生活,从始至终我都承认自己是一个无聊之人.而无聊之人的我最经常做的无聊之事便是玩小游戏.3527小游戏,一个相当精彩的小游戏站,玩之绝无其他,仅为消遣耳. 然通过玩小游戏.我会有 ...
- python3小游戏源代码_如何用python3代码玩小游戏?
在大家的印象中,程序员似乎一直是在码代码的,做着枯燥无聊的生活,殊不知,他们其实也有很多在编程中的快乐.小编最羡慕的就是他们能写一段小程序运行出来,好玩又好看,看起来还很高大上!为了照顾众多pytho ...
- 华为手机计算机小游戏,创意满分!华为粉丝年会推手机黑科技,锁屏也能玩小游戏?...
原标题:创意满分!华为粉丝年会推手机黑科技,锁屏也能玩小游戏? 锁屏壁纸最早就是一张照片,后来变成了锁屏画报,近日锁屏又有了新的玩法.荣耀在线上的花粉年会中推出了游戏锁屏.这个功能可以在锁屏界面简单的 ...
- 技术人玩小游戏,如何“不战而胜”
虽然迟了一天,但还是祝各位小伙伴端午安康. 最近因为端午节到来,物业举办了一个网页小游戏,得分最高的前 N 名可以拿到奖品. 闲来无事的我参加了一下,发现自己实在是太菜了,总是玩不过别人,于是转变思路 ...
- 在LINUX下玩小游戏
在LINUX下玩小游戏 阮志峰 2001年 4期 2001年春节就快到了,在春节假期中,大家都想尽情放松一下吧!其实,在Linux下也有很多好玩的小游戏.下面,小编就向大家介绍几个,愿大家过一个欢 ...
- Python跳跳兔小游戏源代码,兔年必玩小游戏,兔年大吉
Python跳跳兔小游戏源代码,兔年必玩小游戏,兔年大吉,小兔子跳跳,按空格键向上跳跃,按键盘方向键进行左右移动,以避开飞弹,以防被炸,还可以捡到火箭道具哦. 完整程序下载地址:Python跳跳兔小游 ...
- 我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!
" 从前几天微信最新版本 6.6.1 的更新开始,微信小程序游戏"跳一跳"似乎在一夜之间风靡了朋友圈. 它甚至比五六年前的飞机大战游戏都火爆,这种小游戏的火爆不仅仅是因为 ...
- 好想学python怎么玩_我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!
你想问我怎么玩的? 很简单啊, 就一个字: 跳! 大家都在跳 为什么有的人能称霸朋友圈 有的人只有几百分呢 达妹给你整理了游戏攻略 (分普通版和进阶版哦) ▼ 游戏攻略拿高分 普通版本的高分秘籍是这样 ...
- 无聊的农场 - vue小游戏
界面 游戏介绍 地址: 无聊的农场 玩法:鼠标移动到土地(白色区域)上就可以种植植物啦! 结局:没有结局 类型:放置类游戏 平台:PC chrome 浏览器(其他浏览器也许可以,没有测) 简介:你上班 ...
最新文章
- 基于小波变换到图像融合
- 中间显示内容_在Excel表格中,你知道编辑栏吗?可以编辑公式和录入内容
- MAT分析OOM问题
- 十分钟看懂什么是VoLTE【包学包会,否则退款】
- 为Cubieboard打造完美Debian系统
- 垂直串联六关节机器人调试手册_工业机器人有哪些应用你知道吗?
- 【中生代技术】1024程序员节快跑,提需求的来了
- 手机屏幕宽高像素计算_国内手机厂商纷纷支持,三星传感器终成正果!索尼还能雄起吗?...
- 【leetcode】二进制手表-经典或回溯题目
- Harmony OS — PageSliderIndicator滑动页面指示器
- 重塑企业协同价值链,致远互联将“组织精神”进行到底
- 阿里巴巴Java开发规范手册(详尽版)——免费下载
- Servlet思维导图总结
- iOS 读书笔记-单元测试XCTest
- 大漠插件ocr多选字库_易语言大漠插件模块制作设置字库及OcrEx识别字符串
- 算法复杂度及渐进符号
- Android阅读源码从工具开始
- 为什么电脑唯独搜不到自己家wifi?
- 如何使用Facebook进行选品使用
- ARCore之路:ARCore 中的 Session Config 配置中的参数介绍
热门文章
- PLC计数器例子——3个计数器构成的24小时时钟
- java 正则表达式验证
- python的logo长什么样子
- Android手工打造脑图控件
- 10万行代码电商项目
- 塔望 · ​食业​研究 |食品品牌能从植物奶第一股OATLY破圈中学到什么
- 我运营公众号这一个月
- unity3d学习笔记——老版动画系统的使用
- error C2039: ‘tr1‘: is not a member of ‘std‘
- FITC-WFA荧光素标记紫藤凝集素(WFA,WFL)