python创建一个简单的游戏

经过一段时间的python学习,爬取数据已经无法满足我的需求,于是想起了游戏。

下面做一个最简单的游戏,人物循环走动。

python中我们用到强大的库pygame

Pygame是被设计用来写游戏的python模块集合,Pygame是在优秀的SDL库之上开发的功能性包。使用python可以导入pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上

pycharm如何安装pygame,这里重点说一下,以下是

https://pypi.org/project/pygame/1.9.3/

如果你使用命令pip install pygame==1.9.3 安装失败,并且安装下载.whl依然失败的话,你可以尝试安装他的稳定版本 pygame2.1.2版本,直接下面的命令

pip install pygame

安装完成后,建一个纯净版的python工程,这里就不赘述了。

下面是精华版代码

游戏开始步骤
1.库初始化

pygame.init()

2.设置游戏屏幕宽高

# 设置屏幕宽高
screen = pygame.display.set_mode((500, 500))

3.定义游戏名称

# 设置游戏名称
pygame.display.set_caption("小孩运动")

4.设置游戏背景图
我们将背景图放在static目录下取名为back.png
在这里插入图片描述

在这里插入图片描述
然后设置游戏背景图片

# 设置游戏的背景图片
bg = pygame.image.load("static/back.png")
screen.blit(bg, (0, 0))

5.设置人物或者物体最初位置
我们这里以一个小孩图片为例,小孩图像也放在static目录下,取名未child.png
在这里插入图片描述

# 设置小孩初始运动位置
child = pygame.image.load("static/child.png")
screen.blit(child, (200, 200))

接下来是关键,小孩要循环在X轴一定,而且有一定的速度,当移动超过屏幕的时候,要循环走动,接下来要怎么处理呢,请看代码

# 创建时钟对象,可以控制游戏循环的频率
clock = pygame.time.Clock()

# 记录小孩移动的位置,定义了初始位置,在200 * 200的坐标,
childRect = pygame.Rect(200, 200, 102, 126)

while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    else:
        # 通过时钟对象指定循环频率
        clock.tick(60)

        # 向右移动
        childRect.x += 1

        if childRect.x > 500:  # 这里的意思是当移动超过屏幕,让它重新到一个点,再次运动
            childRect.x = 0

        screen.blit(bg, (0, 0))
        screen.blit(child, childRect)  # 屏幕填充数据

        pygame.display.update()

看下运行效果吧
由于该站上传视频功能挂了,所以只能截图咯,大家莫怪
在这里插入图片描述
最后贴上源码:

# -*- coding:utf-8 -*-
# @Time:2022-2-22 17:24
# @Author:luoshao
# @FileName:swore.py
# @Software:PyCharm
import sys

import pygame

pygame.init()

# 设置屏幕宽高
screen = pygame.display.set_mode((500, 500))

# 设置游戏名称
pygame.display.set_caption("小孩运动")


# 设置游戏的背景图片
bg = pygame.image.load("static/back.png")
screen.blit(bg, (0, 0))

# 设置小孩初始运动位置
child = pygame.image.load("static/child.png")
screen.blit(child, (200, 200))

# # 设置运行速度
# speed = [1, 1]

# 设置背景颜色
# White = 255, 255, 255

# 创建时钟对象,可以控制游戏循环的频率
clock = pygame.time.Clock()

# 记录小孩移动的位置
childRect = pygame.Rect(200, 200, 102, 126)

while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    else:
        # 通过时钟对象指定循环频率
        clock.tick(60)

        # 向右移动
        childRect.x += 1

        if childRect.x > 500:
            childRect.x = 0

        screen.blit(bg, (0, 0))
        screen.blit(child, childRect)

        pygame.display.update()

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值