Pygame教程-程序简单的编写
Pygame教程-程序简单的编写

Pygame教程-程序简单的编写

由于授课的需要,想为学生展示一个PLC中经典的小车自动往返的GIF动图,无奈我实在找不到,正好可以用Pygame写一个简单的小游戏,让其可以演示,我再进行视频录制,转成GIF(其实有很多简洁的方法,我懒的搞就用最复杂的了,或许我傻- -!),本文不介绍过多的代码,只是临时教学使用。

代码如下所示:

import pygame
import sys

# 初始化pygame
pygame.init()

# 设置窗口大小
win_width = 800
win_height = 600
win = pygame.display.set_mode((win_width, win_height))

# 设置标题
pygame.display.set_caption("往返小车动画")

# 定义颜色
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

# 载入小车图片
car = pygame.image.load('img.png')
car_width = car.get_width()
car_speed = 5
direction = 1

x = 0
y = win_height // 2 - car.get_height() // 2

# 往返计数
trip_count = 0

# 游戏循环
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 更新小车位置
    x += car_speed * direction
    if x + car_width > win_width or x < 0:
        direction *= -1
        if direction == -1:  # 只在从终点返回起点时增加往返计数
            trip_count += 1

    # 画背景、起点、终点和小车
    win.fill(WHITE)

    pygame.draw.rect(win, GREEN, (0, y, 50, car.get_height()))  # 起点
    pygame.draw.rect(win, RED, (win_width - 50, y, 50, car.get_height()))  # 终点

    win.blit(car, (x, y))

    if trip_count >= 20:
        font = pygame.font.SysFont(None, 36)
        message = font.render("一企业需要矿车往返20次运货任务后停止运行", True, (0, 0, 0))
        message_rect = message.get_rect(center=(win_width / 2, 50))
        win.blit(message, message_rect)

    pygame.display.update()

    pygame.time.Clock().tick(60)

pygame.quit()
sys.exit()

绿色代表起点,红色代表终点,往返20次后中间会出现“一企业需要矿车往返20次运货任务后停止运行”,由于没有设置文字格式,中文出现乱码,后期会自行解决,这次只作为演示作用。运行效果如下图所示:

这是在网上找的矿车的图片,想学习的你们直接复制即可,记得把图片放在你项目的目录下,或者引用图片的绝对路径,如果图片有侵权及时联系我,马上删除!

动图目前上传不了,我有时间调整一下格式,需要动图的留言就ok,并在下面推荐一个视频转GIF很好用的网站:

在线视频转GIF软件_视频转GIF在线制作工具_图贴士 (tutieshi.com)

本次文章到此结束!!!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注