Python编程pygame模块实现移动的小车示例代码
作者:whxcer 发布时间:2021-04-13 10:16:08
标签:python,pygame
Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。
最近一个星期学习了一下python的pygame模块,顺便做个小程序巩固所学的,运行效果如下:
其中,背景图"highway.jpg"是使用PhotoShop将其分辨率改变为640 × 480,而小车"car.png"则是将其转变为png格式的图片,并且填充其背景色,让其拥有透明性。
代码测试可用:
# -*- coding: utf-8 -*-
# 背景图以及移动小车图
highway_image_name = "highway.jpg"
car_image_name = "car.png"
# 导入程序相关的模块
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
# 生成窗口以及窗口标题
screen = pygame.display.set_mode((640, 480), 0, 32)
pygame.display.set_caption("Little Case")
# 加载并转换图片
highway = pygame.image.load(highway_image_name).convert()
car = pygame.image.load(car_image_name).convert_alpha()
x = 0
y = 300
z = 1
# 加载以及渲染字体
my_font = pygame.font.SysFont("arial", 16)
text_surface = my_font.render(("%d car" % (z)), True, (0, 0, 255))
# 主循环
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.display.quit()
exit()
# 矩形颜色坐标等
rc = (0, 250, 0)
rp = (560, 0)
rs = (639, 60)
x += 0.2
if x > 640 + car.get_width():
x = -car.get_width()
z += 1
text_surface = my_font.render(("%d cars" % z), True, (0, 0, 255))
screen.blit(highway, (0, 0))
screen.blit(text_surface, (620 - text_surface.get_width(), text_surface.get_height()))
screen.blit(car, (x, y))
pygame.draw.rect(screen, rc, Rect(rp, rs), 1) # Rect(左上角的坐标,右下角的坐标)
pygame.display.update()
两张图片:
highway.jpg
car.png
路径自己保存,然后在代码中修改即可。
来源:https://www.cnblogs.com/wanghuizhao/p/6012446.html


猜你喜欢
- 即使页面上只有一个元素它也是一个矩形的盒模型。其大小、位置、行为都可以通过CSS来控制。这里的行为是指当盒模型内部以及周围的内容发生变化时的
- 进程和线程的区别进程是对运行时程序的封装,是系统资源调度和分配的基本单位线程是进程的子任务,cpu调度和分配的基本单位,实现进程内并发。一个
- 问题1:Component name “index” should always be multi-
- 本文为大家分享了Python遗传算法解决最大流问题,供大家参考,具体内容如下Generate_matrixdef Generate_matr
- 1、什么是超链接图标规范超链接图标规范是我根据《Iconize Textlinks with CSS》修改调整完成的。主要是整理出常用到的一
- 前段时间项目中使用到Mysql的FIND_IN_SET函数,感觉挺好用的。过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会
- 前言:要翻转图像,我们需要使用pygame.transform.flip(Surface, xbool, ybool) 方法,该方法被调用来
- MySQL之前有一个查询缓存Query Cache,从8.0开始,不再使用这个查询缓存,那么放弃它的原因是什么呢?在这一篇里将为您介绍。My
- 一、爬虫的流程开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳
- 一个3层嵌套列表mm=["a",["b","c",["inner&qu
- 最近在做python的web开发(原谅我的多变,好东西总想都学着。。。node.js也是),不过过程中总遇到些问题,不管是web.py还是d
- 最近着迷上了 Python用Python给小宝做的数学算数口算练习程序(2015年1月添加四则运算)!给小宝做的口算游戏:#用Python给
- 前言条件语句在实际开发中我们已经使用过几次了,在这里我们需要再次隆重的来介绍一下它,下面话不多说了,来一起看看详细的介绍吧。if语句顾名思义
- python的PIL库简直好用的不得了,PIL下面的Image库更是封装了很多对图片处理的函数,关于Image库的介绍和使用,看这里:htt
- 列表A是一个通过扩张对象浏览器(object explorer)中可编程性节点而建立的实例,选择存储过程,然后右击并选择新的存储过程。 许多
- 本文实例讲述了python开发之thread实现布朗运动的方法。分享给大家供大家参考,具体如下:这里我将给大家介绍有关python中thre
- 最近打算开始研究一下机器学习,今天在windows上装tensorflow花了点功夫,其实前面的步骤不难,只要依次装好python3.5,n
- 最近,接手的项目里,提供的数据文件格式简直让人看不下去,使用pandas打不开
- 控制流实现控制流这部分代码主要涉及下面几条字节码指令,下面的所有字节码指令都会有一个参数:JUMP_FORWARD,指令完整条指令会将当前执
- 在vue中已经不像jq那样直接操作dom了,如果要指向当前选中项时,就不能再用jq的思路来做了,方法如下:当指向一个状态的时候,只让指向的状