当前位置: 首页 > news >正文

《Python游戏编程入门》注-第2章2

《Python游戏编程入门》的“2.2.5 绘制线条”中提到了通过pygame库绘制线条的方法。

1 相关函数介绍

通过pygame.draw模块中的line()函数来绘制线条,该函数的格式如下所示。

line(surface, color, start_pos, end_pos, width=1) -> Rect

其中,第一个参数surface表示用来绘制线条的“表面”,其类型是Surface类实例;参数color表示线条的颜色,其类型是表示RGB的元组;参数start_pos和end_pos表示线条的起点和终点;参数width表示线条的粗细,该参数的默认值是1。line()函数的返回值是Rect类的实例。

2 函数使用方法

使用《Pygame显示文字》中提到的pygame编程框架,在while True语句中,获取了按键信息之后,使用如图1所示的代码绘制线条。

图1 绘制线条代码

其中,第17-20行分别定义了绘制线条所需的颜色、宽度、起点和终点的变量;第21行代码抵用pygame.draw模块中的line()函数绘制线条,代码运行的效果如图2所示。

图2 代码运行效果

3 完整代码

绘制线条的完整代码如下所示。

import pygame
import sys
from pygame.locals import *pygame.init()
screen = pygame.display.set_mode((600,500))
pygame.display.set_caption('Drawing lines')while True:for event in pygame.event.get():if event.type in (QUIT, KEYDOWN):pygame.quit()sys.exit()screen.fill((0, 80, 0))color = (100, 255, 200)width = 8start_pos = (100, 100)end_pos = (500, 400)pygame.draw.line(screen, color, start_pos, end_pos, width)pygame.display.update()

注意1 在程序运行后,按下任意按键程序退出。

相关文章:

《Python游戏编程入门》注-第2章2

《Python游戏编程入门》的“2.2.5 绘制线条”中提到了通过pygame库绘制线条的方法。 1 相关函数介绍 通过pygame.draw模块中的line()函数来绘制线条,该函数的格式如下所示。 line(surface, color, start_pos, end_pos, width1) -> Rect 其中,第一…...

PoissonRecon学习笔记

1. Screened Poisson Reconstruction (SPR) 源码:https://github.com/mkazhdan/PoissonRecon However, as noted by several researchers, it suffers from a tendency to over-smooth the data. 泊松重建存在过度平滑的现象。 方法:position and gradi…...

腾讯云DBA面试(一面)

摘要:腾讯云前端时间约了个了维护工程师的面试,总结下面试题。 1、oracle索引原理和mysql索引原理的区别,性能差异?b tree 和 b+ tree 区别。 (1) B+树改进了B树, 让非叶子结点只作索引使用, 去掉了其中指向data record的指针, 使得每个结点中能够存放更多的key, 因此能有更…...

Python:背景知识及环境安装

一、计算机的基础概念 1.1 什么是计算机? 最早我们有计算器,但是他只能完成算数运算的功能 而计算机能完成的工作有: (1)算术运算 (2)逻辑判断 (3)数据存储 &#xff08…...

力扣第420周赛 中等 3324. 出现在屏幕上的字符串序列

文章目录 题目介绍题解 题目介绍 题解 因为是要求按键次数最少&#xff0c;所以不用考虑 ‘z’ 变为 ‘a’ 的情况。 代码如下&#xff1a; class Solution {public List<String> stringSequence(String target) {List<String> ans new ArrayList<>();St…...

ant design vue树选择器实现部分层级禁用(指定层级或依据字段判断)

1、依据字段判断是否禁用 const handData (array, level?) > {array.forEach((item) > {if (level 0) {//获取一级菜单item.title item.levelName;item.value item.code;if (item.type LAYER) {item.disabled true;} else if (item.type JOB) {item.disabled f…...

安灯系统助力汽车零部件工厂快速解决生产异常

在汽车零部件制造领域&#xff0c;高效的生产管理和快速解决异常情况是确保产品质量和生产进度的关键。而安灯系统的应用&#xff0c;正为汽车零部件工厂带来了全新的变革&#xff0c;助力其快速解决生产异常。 汽车零部件工厂的生产报工产线看板直观地反映出生产的各项关键数据…...

vue父子传参的方式——Prop

Prop 每一个组件都有一个props的属性&#xff0c;用来接收外部传递的数据 这里我拿一个分页组件为例&#xff1a; 一、基础语法 1、父组件传递数据 父组件在向子组件传递数据时&#xff0c;基础语法如下&#xff1a; <template><div><common-page :pagina…...

Apache Commons Text 指南:比 String 更强大的文本处理工具

Apache Commons Text 指南&#xff1a;比 String 更强大的文本处理工具 在 Java 开发中&#xff0c;String 类是处理文本的基础工具&#xff0c;但当面对复杂的文本处理需求时&#xff0c;其局限性就显而易见了。Apache Commons Text 提供了一个更加灵活强大的文本处理工具集&…...

C++面向对象编程学习

C面向对象编程学习 前言一、C面向对象编程二、知识点学习1. 定义一个类1.1 使用struct定义1.2 使用class定义1.3 struct和class的区别 2. 类的定义方式2.1 单文件定义&#xff08;Inline Definition&#xff09;2.2 分离定义&#xff08;Separate Definition&#xff09;2.3 头…...

云轴科技ZStack亮相迪拜GITEX大会,与阿里云再次携手深化海外合作

10月14至18日&#xff0c;全球顶尖科技盛会GITEX GLOBAL 2024在迪拜拉开帷幕&#xff0c;云轴科技ZStack携全系云计算解决方案与全新AIOS智塔平台参展&#xff0c;向全球观众展示智算时代下的新一代智算化算力平台。 GITEX GLOBAL 2024是当今世界上最具前瞻性兼包容性的大型科技…...

SQL Server 当前日期及其未来三天的日期

当前日期及其未来三天的日期&#xff0c;并分别以 YYYY-MM-DD 和 yyyyMMdd 的格式展示 1、当前日期及其未来三天的日期&#xff0c;以 YYYY-MM-DD的格式展示 WITH CurrentDate AS (SELECT GETDATE() AS 当前日期 ) -- 使用 CONVERT 函数 SELECTCONVERT(VARCHAR(10), 当前日期,…...

QUIC(Quick UDP Internet Connections)与 RTMP(Real Time Messaging Protocol)

QUIC&#xff08;Quick UDP Internet Connections&#xff09;和 RTMP&#xff08;Real Time Messaging Protocol&#xff09;是两种不同的网络传输协议&#xff0c;它们在一些方面有不同的特点和应用场景。 QUIC 协议 特点 基于 UDP&#xff1a;QUIC 建立在 UDP 之上&#xff…...

双十一送你一份购物攻略,绿联NAS DXP2800评测

一年一度双十一&#xff0c;今年双十一来得特别早&#xff0c;所以最近已经看到不少人在讨论双十一买了啥&#xff0c;NAS的讨论度也挺高的。正好&#xff0c;是我比较懂的领域。作为一位资深的数码爱好者&#xff0c;同时也是绿联DH2600DXP2800双持用户&#xff0c;可以说我是…...

基于vue框架的的高校设备信息管理系统的设计与实现tx6d7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;设备管理员,设备维护员,设备类别,设备,设备入库,设备分发,设备调拨,定期维护,维护任务,设备运行记录 开题报告内容 基于Vue框架的高校设备信息管理系统的设计与实现开题报告 一、项目背景及意义 随着高校教育事业的蓬勃发展&#xff…...

springboot3.x使用@NacosValue无法获取配置信息问题解决

一、问题描述 springboot从2.x升级到3.x后&#xff0c;nacos的依赖包需要改成Spring Cloud的依赖包才能继续使用。升级好以后&#xff0c;首先&#xff0c;确定我的项目是能够连上nacos并且加载到配置信息的&#xff0c;因为数据库等信息都是从nacos加载过来&#xff0c;能够正…...

sql获取时间差

MySQL SELECT TIMESTAMPDIFF(HOUR, 2023-10-01 12:00:00, 2023-10-02 15:30:00) AS hours_difference; PostgreSQL //EXTRACT(EPOCH FROM (2023-10-02 15:30:00::timestamp - 2023-10-01 12:00:00::timestamp)) // 获取的是两个时间相差的秒数&#xff0c;在此基础上除3600获…...

【深入理解Python中的闭包】如何有效使用嵌套函数和状态捕获!

深入理解Python中的闭包&#xff1a;如何有效使用嵌套函数和状态捕获 Python 作为一种动态的编程语言&#xff0c;允许我们用多种方式来设计和构建功能&#xff0c;其中之一就是 闭包&#xff08;Closure&#xff09;。闭包是一种强大的特性&#xff0c;可以帮助我们捕获和保持…...

npm配置阿里镜像库教程

为了配置npm使用阿里镜像库&#xff0c;可以按照以下步骤进行操作。这些步骤将帮助你加快包的下载速度&#xff0c;特别是在中国地区&#xff0c;因为阿里镜像库通常比官方npm仓库响应更快。 1. 配置全局镜像 可以通过运行以下命令来将npm的全局镜像配置为阿里镜像&#xff1…...

Apache JMeter压力测试工具使用

JMeter是Apache组织开发的基于Java的压力测试工具&#xff0c;用于对软件做压力测试。 01 软件下载 下载地址: https://jmeter.apache.org/download_jmeter.cgi 最新版本5.6.2 用浏览器下载发现慢得很&#xff0c;用迅雷下载非常快哟。 02 测试使用 在使用前需要先安装jd…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下&#xff0c;音视频内容犹如璀璨繁星&#xff0c;点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频&#xff0c;到在线课堂中知识渊博的专家授课&#xff0c;再到影视平台上扣人心弦的高清大片&#xff0c;音…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...