视频

pygame——游戏视频


前言

简单的来写一个pygame小游戏,我的画面比较卡哇伊各位可以自己换图片哈。

一、作品简介

就是一个最基本的pygame小游戏,可以控制人物,攻击敌人,打到敌人使敌人消失,如果敌人到达边缘仍然没有被消灭,游戏就会失败。

二、作品操作

1.鼠标移动人物跟随移动,播放背景音乐,可以摁下 Enter 进入游戏的主体界面,或者点击 End 退出游戏
2.用键盘控制人物移动, w 向上移动, s 向下移动, a 向左移动, d 向右移动,当点击空格时人物发射光球,如果光球打中敌人敌人消失,如果敌人到达边界线,游戏失败
3.游戏失败后弹出结束图片,并输出 Game Over 退出游戏.


一、pygame是什么

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:


三、效果展示

在这里插入图片描述
在这里插入图片描述

四、代码知识简单描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐