用Python给女神表白
情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器。
程序介绍
运用pygame制作一个小游戏,当女神用鼠标点击“滚蛋”按钮时,按钮好像脱缰的野马似的,到处乱飞,丝毫让你抓不住它,无奈之下只能点击“好呀”按钮。
程序实现
(1)导包:运用pygame库
import sys
import random
import pygame
from pygame.locals import *
(2)定义界面
将界面的宽和高和背景颜色
WIDTH, HEIGHT = 640, 480
BACKGROUND = (100, 191, 255)
(3)设置按钮
定义一个函数、位置,还有字体(运用电脑中自带的字体C:/Windows/Fonts/simkai.ttf)
def button(text, x, y, w, h, color, screen):
pygame.draw.rect(screen, color, (x, y, w, h))
font = pygame.font.Font('C:/Windows/Fonts/simkai.ttf', 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)
(4)设置标题
设置字体的样式还是采用如上步相同的字体
def title(text, screen, scale, color=( 255,0,255)):
font = pygame.font.Font('C:/Windows/Fonts/simkai.ttf', 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)
(5)生成随机的位置坐标
设置“滚蛋”按钮在x和y方向随意跳转,
def get_random_pos():
x, y = random.randint(20, 620), random.randint(20, 460)
return x, y
(6)点击按钮选项
def show_like_interface(text, screen, color=( 255,0,255)):
screen.fill(BACKGROUND)
font = pygame.font.Font('C:/Windows/Fonts/simkai.ttf', 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 == QUIT:
pygame.quit()
sys.exit()
(7)设置主函数
设置了界面的标题,导入mp3格式的背景音乐
def main():
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
pygame.display.set_caption('帅气的WWJ')
clock = pygame.time.Clock()
pygame.mixer.music.load('D:/Backup/桌面/半阳.mp3')
pygame.mixer.music.play(-1, 30.0)
pygame.mixer.music.set_volume(0.25)
unlike_pos_x = 330
unlike_pos_y = 300
unlike_pos_width = 100
unlike_pos_height = 50
like_pos_x = 180
like_pos_y = 300
like_pos_width = 100
like_pos_height = 50
running = True
like_color = (255,192,203)
(8)设置界面文字,选项按钮,并且导入背景图片,
while running:
screen.fill(BACKGROUND)
img = pygame.image.load("D:/Backup/桌面/455.png")
imgRect = img.get_rect()
imgRect.midtop = WIDTH//2, HEIGHT//4
screen.blit(img, imgRect)
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = pygame.mouse.get_pos()
if mouse_pos[0] < like_pos_x+like_pos_width+5 and mouse_pos[0] > like_pos_x-5 and\
mouse_pos[1] < like_pos_y+like_pos_height+5 and mouse_pos[1] > like_pos_y-5:
like_color = BACKGROUND
running = False
mouse_pos = pygame.mouse.get_pos()
if mouse_pos[0] < unlike_pos_x+unlike_pos_width+5 and mouse_pos[0] > unlike_pos_x-5 and\
mouse_pos[1] < unlike_pos_y+unlike_pos_height+5 and mouse_pos[1] > unlike_pos_y-5:
while True:
unlike_pos_x, unlike_pos_y = get_random_pos()
if mouse_pos[0] < unlike_pos_x+unlike_pos_width+5 and mouse_pos[0] > unlike_pos_x-5 and\
mouse_pos[1] < unlike_pos_y+unlike_pos_height+5 and mouse_pos[1] > unlike_pos_y-5:
continue
break
title('小姐姐,我暗恋你很久了', screen, scale=[2, 10])
title('做我女朋友好不好呀', screen, scale=[2, 6])
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, (255,215,0), screen)
pygame.display.flip()
pygame.display.update()
clock.tick(60)
show_like_interface('^V^我就知道小姐姐你也喜欢我^@^', screen, color=(255,0,255))
if __name__ == '__main__':
main()
运行结果