python使用pygame制作超简单斗罗大陆轮播抽奖

效果呈现:

在这里插入图片描述

运行后的效果差不多就是介个样纸啦


前期准备

虽然很简单,但是咱们还是需要一些小准备的。我们首先需要下载pygame库,用于咱们的窗口和运行条件

首先 win + R 打开我们的运行窗口,然后输入cmd,像这样:
在这里插入图片描述
蓝后点击确定,进入命令提示符中,输入pip install pygame 像这样:
在这里插入图片描述
点击回车就下载啦!下载完毕,接下来就可以进入我们的代码的编写环节啦!想想还有点小激动

代码环节

首先咱们还是先导入库

# 导入pygame库,并进行初始化
import pygame, sys, random
from pygame.locals import*
pygame.init()

蓝后,创建窗口,设置一个喜欢的标题

# 创建一个长宽分别为480/650窗口
canvas = pygame.display.set_mode((400, 600))
canvas.fill((255, 255, 255))

# 设置窗口标题
pygame.display.set_caption("幸运小星星")

当然,退出程序也先搞定

#窗口点击事件
def handleEvent():
    for event in pygame.event.get():
        if event.type == QUIT :
            pygame.quit()
            sys.exit()  

到这里,咱们就有一个高端的窗口啦!
图片的选取咱们也得做好,这里咱们使用随机的方式整出每一张要展现的图片,当然。图片咱们需要自己先准备好,放入咱们的文件夹中。我们设置根据时间减慢速度,当时间小于0之后,等到坐标变成0,也就是图片到达刚刚好的位置的时候我们就让图片停止

#参选图片
class Photo():
    def __init__(self,m):
        self.width = 400
        self.height = 600
        self.n = random.randint(1,6)
        self.n1 = random.randint(1,6)
        self.img = pygame.image.load("images/photo"+str(self.n)+".jpg")
        self.imgs = pygame.image.load("images/photo"+str(self.n1)+".jpg")
        self.x1 = 0
        self.y1 = 0
        self.x2 = 0
        self.y2 = -self.height
        self.m = m 
    # 创建paint方法
    def paint(self):
        canvas.blit(self.img, (self.x1, self.y1))
        canvas.blit(self.imgs, (self.x2, self.y2))
        if self.y1 >= self.height:
            self.n = random.randint(1,6)
            self.img = pygame.image.load("images/photo"+str(self.n)+".jpg")
        if self.y2 >= self.height:
            self.n1 = random.randint(1,6)
            self.imgs = pygame.image.load("images/photo"+str(self.n1)+".jpg")
    # 创建step方法
    def step(self):
        self.y1 = self.y1 + self.m
        self.y2 = self.y2 + self.m
        if self.y1 > self.height:
            self.y1 = -self.height
        if self.y2 > self.height:
            self.y2 = -self.height
        if Game.t == 10:
            self.m = 10
        if Game.t == 8:
            self.m = 8
        if Game.t == 5:
            self.m = 5
        if Game.t == 3:
            self.m =1 
        if Game.t <= 0:
            if self.y1 == 0 or self.y2 ==0:
                self.m = 0

到这里就差不多结束啦,源码附上:

# 导入pygame库,并进行初始化
import pygame, sys, random
from pygame.locals import*
pygame.init()

# 创建一个长宽分别为480/650窗口
canvas = pygame.display.set_mode((400, 600))
canvas.fill((255, 255, 255))

# 设置窗口标题
pygame.display.set_caption("幸运小星星")


#窗口点击事件
def handleEvent():
    for event in pygame.event.get():
        if event.type == QUIT :
            pygame.quit()
            sys.exit()  

#参选图片
class Photo():
    def __init__(self,m):
        self.width = 400
        self.height = 600
        self.n = random.randint(1,6)
        self.n1 = random.randint(1,6)
        self.img = pygame.image.load("images/photo"+str(self.n)+".jpg")
        self.imgs = pygame.image.load("images/photo"+str(self.n1)+".jpg")
        self.x1 = 0
        self.y1 = 0
        self.x2 = 0
        self.y2 = -self.height
        self.m = m 
    # 创建paint方法
    def paint(self):
        canvas.blit(self.img, (self.x1, self.y1))
        canvas.blit(self.imgs, (self.x2, self.y2))
        if self.y1 >= self.height:
            self.n = random.randint(1,6)
            self.img = pygame.image.load("images/photo"+str(self.n)+".jpg")
        if self.y2 >= self.height:
            self.n1 = random.randint(1,6)
            self.imgs = pygame.image.load("images/photo"+str(self.n1)+".jpg")
    # 创建step方法
    def step(self):
        self.y1 = self.y1 + self.m
        self.y2 = self.y2 + self.m
        if self.y1 > self.height:
            self.y1 = -self.height
        if self.y2 > self.height:
            self.y2 = -self.height
        if Game.t == 10:
            self.m = 10
        if Game.t == 8:
            self.m = 8
        if Game.t == 5:
            self.m = 5
        if Game.t == 3:
            self.m =1 
        if Game.t <= 0:
            if self.y1 == 0 or self.y2 ==0:
                self.m = 0

#Game类
class Game():
    #创建移动速度
    m = 50
    #照片对象
    photo = Photo(m)
    #设定初始时间
    t=30
    #设定初始分数
    n=0
#绘制组件
def conPaint():
    Game.photo.paint()
    
#计时方法
def gametime():
    #倒计时判断
    if Game.n%50==0:
        Game.t=Game.t-1
    Game.n=Game.n+1
    
#组件移动
def conStep():
    Game.photo.step()
    
#控制方法
def control():
    conPaint()
    conStep()
    gametime()
            
while True:
    #调用控制方法
    control()

    # 更新屏幕内容
    pygame.display.update()
    # 处理关闭游戏
    handleEvent()

很简单的一个小程序,如果想要加点声音,整点气氛,咱们可以用这个方法,在里面传入音频路径就可以啦!当然,不要忘记在循环里调用哦!

bgmusic=pygame.mixer.Sound() #括号里填入音频路径
bgmusic.play()  # 这个在循环里调用

向各位大佬学习,在前往优秀的路途中勇往直前,勇闯天涯

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页