皮卡丘go
简单的来写一个pygame小游戏,我的画面比较卡哇伊各位可以自己换图片哈。
就是一个最基本的pygame小游戏,可以控制人物,攻击敌人,打到敌人使敌人消失,如果敌人到达边缘仍然没有被消灭,游戏就会失败。
1.鼠标移动人物跟随移动,播放背景音乐,可以摁下 Enter 进入游戏的主体界面,或者点击 End 退出游戏
2.用键盘控制人物移动, w 向上移动, s 向下移动, a 向左移动, d 向右移动,当点击空格时人物发射光球,如果光球打中敌人敌人消失,如果敌人到达边界线,游戏失败
3.游戏失败后弹出结束图片,并输出 Game Over 退出游戏.
pygame是跨平台Python模块,专门为电子游戏设计,包含图像、声音等;简单的说它是别人已经编写好的程序,并放在了一个类似库里,专门给别人使用的;
pygame的图形接口简书上这篇是我看到的最全的:(https://www.jianshu.com/p/352f28c32865)
pygame常用模块可以看这篇:(https://cloud.tencent.com/developer/article/1661777)
代码如下:
import pygame
#初始化游戏
pygame.init()
#创建游戏窗口
window=pygame.display.set_mode((800,500))
#设置游戏上方标题
pygame.display.set_caption('潇潇的游戏')
#设置游戏背景颜色
window.fill((255,255,255))
#游戏初始页面图片===========
#1.创建图片
image1=pygame.image.load('files/皮卡丘.jpg')
#渲染图片
window.blit (image1,(0,0))
#刷新(1) update(一次后)
pygame.display.flip()
#按钮===================
font1=pygame.font.Font('files/bb.ttf',29)
pygame.draw.rect(window,(0,255,0),(600,300,100,40)) #确定
text1 = font1.render('Enter', True, (255,255,255))
window.blit(text1, (610,305))
pygame.draw.rect(window,(255,0,0),(600,400,100,40))#取消
text2 = font1.render('End', True, (255,255,255))
window.blit(text2,(620,405))
pygame.display.flip()
#显示文字================
# 1.创建字体
font=pygame.font.Font('files/文字包.ttf',60)
#2.创建文字render('文字', True,文字颜色,背景颜色)
text = font.render('皮卡丘 GO!', True, (0, 0, 0))
#渲染
window.blit(text, (450,110))
pygame.display.flip()
#动画效果================
#y=100
#pygame.draw.circle(window,(255,0,0),(100,y),50)
#pygame.display.update()
#while True:
# y=y+10
# pygame.draw.circle(window,(255,0,0),(100,y),50)
# pygame.display.update()
#运行状态loop
while True:
#=======游戏动态刷新=========
#检测事件
for event in pygame.event.get():
if event.type == pygame.QUIT:#如果点击×
exit()#退出
if event.type == pygame.MOUSEBUTTONDOWN:
#1鼠标事件===============
print("鼠标摁下",event.pos)
mx, my = event.pos
if 600<=mx<=700 and 300<=my<=340:
pygame.draw.rect(window,(0,0,255),(600,300,100,40))
window.blit(text1,(610,305))
pygame.display.flip()
if event.type == pygame.MOUSEBUTTONDOWN:
print("鼠标抬起")
pygame.draw.rect(window, (0, 255, 0), (600, 300, 100, 40)) # 确定
text1 = font1.render('Enter', True, (255, 255, 255))
window.blit(text1, (610, 305))
pygame.display.flip()
#事件开始===================================
PKQ_up=pygame.image.load()
if 600<=mx<=700 and 400<=my<=440:
pygame.draw.rect(window, (200, 200, 200), (600, 400, 100, 40))
window.blit(text2, (610, 405))
pygame.display.flip()
if event.type == pygame.MOUSEBUTTONDOWN:
print("鼠标抬起")
pygame.draw.rect(window, (255, 0, 0), (600, 400, 100, 40)) # 确定
text1 = font1.render('End', True, (255, 255, 255))
window.blit(text1, (620, 405))
pygame.display.flip()
print("End")
exit()
if event.type == pygame.MOUSEMOTION:
print("鼠标移动")
mx, my = event.pos
# 1.创建图片
image1 = pygame.image.load('files/6.png')
# 渲染图片
window.blit(image1, (mx-40, my-40))
# 刷新(1) update(一次后)
pygame.display.flip()
#2键盘事件================
if event.type == pygame.KEYDOWN: