用户:
01_DZY查看:0 回复:0 评论:0 创建时间:2022-04-08T12:10:53
【作品展示】

【作品介绍】
第一个正经游戏
【作品源代码】
#初始化
import pygame
pygame.init()
from sys import exit
#设置&唤出窗口
scr = pygame.display.set_mode((925,575))
pygame.display.set_caption("打小人")
#加载图片资源
bj = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\bj py.png')
cc1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\cc py.png')
cc2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\cc py.png')
cc3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\cc py.png')
q_jz = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\q_jz py.png')
q_fs = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\q_fs py.png')
zd1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd4 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd5 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd4 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd5 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd4 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd5 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd4 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
zd5 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zd py.png')
dr = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr py.png')
dr_tb1 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb2 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb3 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb4 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb5 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb6 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb7 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
dr_tb8 = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\dr_tb py.png')
mz = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\mz py.png')
zx = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\zx py.png')
sl = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\sl py.png')
sb = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\sb py.png')
cxks = pygame.image.load('C:\\Users\\donziyi\\Desktop\\dxr\\cxks py.png')
#变量初始化
num1 = 20 #弹药变量
num2 = 8 #敌人血量变量
num3 = 0 #结局变量
n,m = (200,200) #敌人位置变量
num4 = 0 #敌人x位置变量
num5 = 0 #敌人y位置变量
sjfk = {'sj':False,'sj1':False,'sj2':False,'sj3':False}
#游戏主循环&退出
while True :
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
#背景绘制
scr.blit(bj,(0,0))
#敌人的绘制&事件计算
if num3 == 0 :
if n == 200 :
num4 = 0
elif n == 700 :
num4 = 1
if num4 == 0 :
n += 20
elif num4 == 1 :
n -= 20
if m == 160 :
num5 = 0
elif m == 200 :
num5 = 1
if num5 == 0:
m += 4
elif num5 == 1 :
m -= 4
if num3 == 1 :
scr.blit(dr,(1000,1000))
elif num3 == 2 :
dr_rect = pygame.Rect(n, m, 101, 250)
scr.blit(dr,(dr_rect))
else :
dr_rect = pygame.Rect(n, m, 101, 250)
scr.blit(dr,(dr_rect))
#喵丛绘制
cc1_rect = pygame.Rect (56, 300, 400, 226)
cc2_rect = pygame.Rect (296, 260, 400, 226)
cc3_rect = pygame.Rect (494, 299, 400, 226)
scr.blit(cc1, (cc1_rect))
scr.blit(cc2, (cc2_rect))
scr.blit(cc3, (cc3_rect))
#喵绘制&事件计算
if num3 == 0 :
if event.type == pygame.MOUSEBUTTONDOWN:
scr.blit(q_fs,(775,425))
else:
scr.blit(q_jz,(775,425))
#弹药绘制&事件计算
if num3 == 0 :
if num1 > 0 :
scr.blit(zd1,(20,520))
else :
scr.blit(zd1,(20,600))
if num1 > 1 :
scr.blit(zd2,(40,520))
else :
scr.blit(zd2,(40,600))
if num1 > 2 :
scr.blit(zd3,(60,520))
else :
scr.blit(zd3,(60,600))
if num1 > 3 :
scr.blit(zd4,(80,520))
else :
scr.blit(zd4,(80,600))
if num1 > 4 :
scr.blit(zd5,(100,520))
else :
scr.blit(zd5,(100,600))
if num1 > 5 :
scr.blit(zd5, (120, 520))
else:
scr.blit(zd5, (120, 600))
if num1 > 6 :
scr.blit(zd5, (140, 520))
else:
scr.blit(zd5, (140, 600))
if num1 > 7 :
scr.blit(zd5, (160, 520))
else:
scr.blit(zd5, (160, 600))
if num1 > 8 :
scr.blit(zd5, (180, 520))
else:
scr.blit(zd5, (180, 600))
if num1 > 9 :
scr.blit(zd5, (200, 520))
else:
scr.blit(zd5, (200, 600))
if num1 > 10 :
scr.blit(zd5, (20, 465))
else:
scr.blit(zd5, (20, 600))
if num1 > 11 :
scr.blit(zd5, (40, 465))
else:
scr.blit(zd5, (40, 600))
if num1 > 12 :
scr.blit(zd5, (60, 465))
else:
scr.blit(zd5, (60, 600))
if num1 > 13 :
scr.blit(zd5, (80, 465))
else:
scr.blit(zd5, (80, 600))
if num1 > 14 :
scr.blit(zd5, (100, 465))
else:
scr.blit(zd5, (100, 600))
if num1 > 15 :
scr.blit(zd5, (120, 465))
else:
scr.blit(zd5, (120, 600))
if num1 > 16 :
scr.blit(zd5, (140, 465))
else:
scr.blit(zd5, (140, 600))
if num1 > 17 :
scr.blit(zd5, (160, 465))
else:
scr.blit(zd5, (160, 600))
if num1 > 18 :
scr.blit(zd5, (180, 465))
else:
scr.blit(zd5, (180, 600))
if num1 > 19 :
scr.blit(zd5, (200, 465))
else:
scr.blit(zd5, (200, 600))
#敌人生命绘制&事件计算
if num3 == 0 :
if num2 > 0:
scr.blit(dr_tb1, (40, 30))
else:
scr.blit(dr_tb1, (40, 700))
if num2 > 1:
scr.blit(dr_tb2, (80, 30))
else:
scr.blit(dr_tb2, (80, 700))
if num2 > 2:
scr.blit(dr_tb3, (120, 30))
else:
scr.blit(dr_tb3, (120, 700))
if num2 > 3:
scr.blit(dr_tb3, (160, 30))
else:
scr.blit(dr_tb3, (160, 700))
if num2 > 4:
scr.blit(dr_tb3, (200, 30))
else:
scr.blit(dr_tb3, (200, 700))
if num2 > 5:
scr.blit(dr_tb3, (240, 30))
else:
scr.blit(dr_tb3, (240, 700))
if num2 > 6:
scr.blit(dr_tb3, (280, 30))
else:
scr.blit(dr_tb3, (280, 700))
if num2 > 7:
scr.blit(dr_tb3, (320, 30))
else:
scr.blit(dr_tb3, (320, 700))
#结局反馈
if num1 == 0 and num2 == 0 :
num3 = 1
elif num1 == 0 and num2 > 0 :
num3 = 2
elif num1 > 0 and num2 == 0 :
num3 = 1
if num3 == 1 :
scr.blit(sl,(400,150))
elif num3 == 2:
scr.blit(喵,(400,150))
elif num3 == 0 :
scr.blit(喵,(1000,1000))
#重新开始绘制
cxks_rect = pygame.Rect(425, 350, 50, 50)
if num3 > 0 :
scr.blit(cxks,(cxks_rect))
else :
scr.blit(cxks,(1000,1000))
#准星绘制&事件计算
x, y = pygame.mouse.get_pos()
pygame.mouse.set_visible(False)
x -= mz.get_width() / 2
y -= mz.get_height() / 2
scr.blit(mz,(x,y))
x1,y1 = pygame.mouse.get_pos()
x1 -= zx.get_width() / 2
y1 -= zx.get_height() / 2
zx_rect = pygame.Rect(x1, y1, 1, 1)
scr.blit(zx,(zx_rect))
#射击反馈
if num3 == 0 :
sjfk['sj'] = zx_rect.colliderect(dr_rect)
sjfk['sj1'] = zx_rect.colliderect(cc1_rect)
sjfk['sj2'] = zx_rect.colliderect(cc2_rect)
sjfk['sj3'] = zx_rect.colliderect(cc3_rect)
if event.type == pygame.MOUSEBUTTONDOWN:
if num1 > 0 :
if sjfk['sj'] == True:
if sjfk['sj1'] == True or sjfk['sj2'] == True or sjfk['sj3'] == True:
num1 -= 1
else :
num2 -= 1
num1 -= 1
else :
num1 -= 1
#重新开始事件
num6 = zx_rect.colliderect(cxks_rect)
if event.type == pygame.MOUSEBUTTONDOWN :
if num6 == True :
num1 = 20
num2 = 8
num3 = 0
n,m = (200,200)
num4 = 0
#刷新
fps = 25
fcclock = pygame.time.Clock()
fcclock.tick(fps)
pygame.display.update()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn