Python 基础编程(001-1)Pygame制作跳跃小球小游戏,击中一次得一分并显示分数

Pygame制作跳跃小球小游戏,击中一次得一分并显示分数。仅添加击中判断模块和分数显示模块。一共包含三个步骤,代码如下:

(1)首先创建一个游戏窗口,然后再窗口内创建一个小球。以一定的速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动。可以按照如下步骤实现该功能。

(2)其次增加鼠标点击的值域判断。

(3)最后通过右上角的分数显示模块显示分数。

### -*- coding:utf-8 -*-
import sys  # 导入sys模块
import pygame  # 导入pygame模块

import pyautogui as pag

import time


pygame.init()  # 初始化pygame
size = width, height = 640, 480  # 设置窗口
screen = pygame.display.set_mode(size)  # 显示窗口
color = (0, 1, 0)  # 设置颜色

def text_objects(text, font):
     textSurface = font.render(text, True, white)
     return textSurface, textSurface.get_rect()
 
def message_diaplay(text):
 largeText = pygame.font.Font('freesansbold.ttf',18)
 TextSurf, TextRect = text_objects(text, largeText)
 TextRect.center = ((width-80),20)
 screen.blit(TextSurf, TextRect)
 pygame.display.update()
 
#def crash():
# message_diaplay('You Crashed')

black = (0,0,0)
white = (255,255,255)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)


ball = pygame.image.load("D:\\python\\ball\\ball.jpg")  # 加载图片
ballrect = ball.get_rect()  # 获取矩形区域
number = 0;
 
speed = [35, 35]  # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock()  # 设置时钟
# 执行死循环,确保窗口一直显示
while True:
    message_diaplay("the score is " + str(number))  
    clock.tick(12)  # 每秒执行60次,次数太多与按键延时有关
    # 检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果点击关闭窗口,则退出
            sys.exit()
 
    ballrect = ballrect.move(speed)  # 移动小球
    # 碰到左右边缘
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = -speed[1]
    
    if event.type == pygame.MOUSEBUTTONDOWN:    
     x,y = pag.position();
    
     if(x>ballrect.left & x<ballrect.right & y>ballrect.bottom & y<ballrect.top):
         print(x,y)
         number = number + 1;
 
    screen.fill(color)  # 填充颜色
    screen.blit(ball, ballrect)  # 将图片画到窗口上
    pygame.display.flip()  # 更新全部显示
 
pygame.quit()  # 退出pygame

游戏的实现效果如下:

 游戏的源代码来源:Pygame制作跳跃小球小游戏_mez_Blog的博客-CSDN博客_pygame小球游戏

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值