美文网首页程序员
Python小游戏--制作仿抖音表白神器

Python小游戏--制作仿抖音表白神器

作者: 胡子先生丶 | 来源:发表于2018-10-26 14:51 被阅读0次

Python能够干嘛

可以做日常任务,比如自动备份你的MP3;
可以做网站,很多著名的网站像知乎、YouTube就是Python写的;
可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。
上面说的这些本人并没有实现过;

但是我知道Python可以做一些有趣的东西,比如仿制抖音表白小软件;

1.jpg

本人也是刚刚学习Python,这个脚本通过百度找到的,然后自己也重新写了一遍,加深了映像,最主要的还是思路要清晰

流程:

  1. 创建一个游戏屏幕
  2. 加载title
  3. 加载button,
  4. 当鼠标移动到 ’算了吧’ 上面的时候 重加加载桌面并随机生成一个 ’算了吧’ 坐标;
  5. 当鼠标移动到 ‘好呀’上面时 显示不同的title

以下就是Python脚本:

import pygame
import random


# 设置游戏屏幕大小 这是一个常量
WIDTH, HEIGHT = 640, 480

screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
pygame.display.set_caption('FROM一个喜欢你很久的小哥哥')

# 标题
def title(text, screen, scale, color=(255, 0, 0)):
        font = pygame.font.SysFont('SimHei', WIDTH//(len(text)*2))
        textRender = font.render(text, True, color)

        # 获取此图片的矩形框
        # textRect = textRender.get_rect()
        # textRect.midtop = (WIDTH/scale[0], HEIGHT/scale[1])
        # screen.blit(textRender, textRect)

        # 初始化文字的坐标
        screen.blit(textRender, (WIDTH/scale[0], HEIGHT/scale[1]))

# 按钮
def button(text, x, y, w, h, color, screen):
        pygame.draw.rect(screen, color, (x, y, w, h))
        font = pygame.font.SysFont('SimHei', 20)
        textRender = font.render(text, True, (0, 0, 0))
        textRect = textRender.get_rect()
        textRect.center = ((x+w/2), (y+h/2))
        screen.blit(textRender, textRect)

# 生成随机的位置坐标
def get_random_pos():
        x, y = random.randint(20, 620), random.randint(20, 460)
        return x, y

# 点击喜欢按钮后显示的页面
def show_like_interface(text, screen, color=(255, 0, 0)):
        screen.fill((255, 255, 255))
        font = pygame.font.SysFont('SimHei', WIDTH//(len(text)))
        textRender = font.render(text, True, color)
        textRect = textRender.get_rect()
        textRect.midtop = (WIDTH/2, HEIGHT/2)
        screen.blit(textRender, textRect)
        pygame.display.update()
        while True:
                for event in pygame.event.get():
                        if event.type == pygame.QUIT:
                                pygame.quit()

def main():
        pygame.init()
        clock = pygame.time.Clock()
        unlike_pos_x = 330
        unlike_pos_y = 250
        unlike_pos_width = 80
        unlike_pos_height = 40
        unlike_color = (0, 191, 255)

        like_pos_x = 180
        like_pos_y = 250
        like_pos_width = 80
        like_pos_height = 40
        like_color = (0, 191, 255)

        running = True
        while running:
                # 填充窗口
                screen.fill((255, 255, 255))

                img = pygame.image.load('d:/love2.png')
                imgRect = img.get_rect()
                imgRect.midtop = int(WIDTH / 1.3), HEIGHT // 7
                screen.blit(img, imgRect)

                # 获取坐标
                pos = pygame.mouse.get_pos()
                if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[1] > unlike_pos_y - 5:
                        while True:
                                unlike_pos_x, unlike_pos_y = get_random_pos()
                                if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[
                                        0] > unlike_pos_x - 5 and \
                                        pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[
                                        1] > unlike_pos_y - 5:
                                        continue
                                break

                title('小姐姐,我观察你很久了', screen, scale=[5, 8])
                title('做我女朋友好不好呀', screen, scale=[5, 4])
                button('好呀', like_pos_x, like_pos_y, like_pos_width, like_pos_height, like_color, screen)
                button('算了吧', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen)

                for event in pygame.event.get():
                        if event.type == pygame.QUIT:
                                pygame.quit()

                if pos[0] < like_pos_x + like_pos_width + 5 and pos[0] > like_pos_x - 5 and pos[1] < like_pos_y + like_pos_height + 5 and pos[1] > like_pos_y - 5:
                        show_like_interface('我就知道小姐姐你也喜欢我~', screen, color=(255, 0, 0))

                pygame.display.flip()
                pygame.display.update()
                clock.tick(60)


main()

大家有好的创意也可以一起交流下;

相关文章

网友评论

    本文标题:Python小游戏--制作仿抖音表白神器

    本文链接:https://www.haomeiwen.com/subject/kinktqtx.html