Python抽奖转盘、幸运大转盘源程序

Python抽奖转盘、幸运大转盘源程序,本程序采用pygame实现,回车即可进行抽奖,完整程序包及资源包请在本文文末下载,抽奖转盘运行效果截图:
在这里插入图片描述
主程序Face.py

import pygame,sys
import math
import random

pygame.init()  # 初始化pygame类
screen = pygame.display.set_mode((600, 600))  # 设置窗口大小
pygame.display.set_caption('幸运大转盘')  # 设置窗口标题
tick = pygame.time.Clock()
fps = 10  # 设置刷新率,数字越大刷新率越高
picture = pygame.transform.scale(pygame.image.load("./幸运大转盘.png"), (600, 600))
bg=picture.convert()
picture = pygame.transform.scale(pygame.image.load("./1.png"), (30, 230))
hand = picture.convert_alpha()

rewardDict = {
    'first level': (0, 0.03),
    'second level': (0.03, 0.2),
    'third level': (0.2, 1)
}
def rewardFun():
    """用户的得奖等级"""
    # 生成一个0~1之间的随机数
    number = random.random()
    # 判断随机转盘是几等奖
    for k, v in rewardDict.items():
        if v[0] <= number < v[1]:
            return k

def start():
    while True:
        for event in pygame.event.get():

            # 处理退出事件
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if (event.key == pygame.K_ESCAPE):
                    pygame.quit()
                    sys.exit()
                else:
                    return
        screen.blit(bg,(0,0))
        newRect = hand.get_rect(center=(300,150))
        screen.blit(hand,newRect)

        pygame.draw.circle(screen,(255,255,0),(300,300),50)

        textFont = pygame.font.Font("./font.ttf", 80)
        textSurface = textFont.render("go", True, (110, 55, 155))
        screen.blit(textSurface, (270, 230))
        pygame.display.update()

def middle():
    angle = 0
    while True:
        posx = 300 + int(150 * math.sin(angle * math.pi / 180))
        posy = 300 - int(150 * math.cos(angle * math.pi / 180))
        print(posx, posy, math.sin(angle * math.pi / 180))

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        screen.blit(bg,(0,0))

        newhand = pygame.transform.rotate(hand, -angle)

        newRect = newhand.get_rect(center=(posx,posy))
        screen.blit(newhand,newRect)
        pygame.draw.circle(screen,(255,255,0),(300,300),50)

        angle += 10

        if angle > 500:
            k = rewardFun()
            end(k)
            break

        tick.tick(fps)
        pygame.display.flip()  # 刷新窗口


def end(k):
    textFont = pygame.font.Font("./font.ttf", 50)
    print("恭喜你,你抽中了"+k)
    textSurface = textFont.render("your awards is :%s" % k, True, (110, 55, 155))
    screen.fill((155, 155, 0))
    screen.blit(textSurface, (30, 230))


if __name__ == '__main__':
    start()
    middle()

完整程序代码及资源包下载地址:https://pan.baidu.com/s/1jdc_VT-xjdWud12f4qBlzA,获取提取码请先关注微信公众号:Python代码大全,并在公众号回复:幸运大转盘提取码。更多Python源代码,请微信关注:Python代码大全,在这里插入图片描述

  • 4
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python代码大全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值