由于授课的需要,想为学生展示一个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)
本次文章到此结束!!!