Arcade绘制各种各样的文本

在这里插入图片描述

"""
Example showing how to draw text to the screen.If Python and Arcade are installed, this example can be run from the command line with:
python -m arcade.examples.drawing_text
"""
import arcade# 设置屏幕参数
SCREEN_WIDTH = 1200
SCREEN_HEIGHT = 800
SCREEN_TITLE = "Drawing Text Example"
# 设置字体参数
DEFAULT_LINE_HEIGHT = 45
DEFAULT_FONT_SIZE = 20class MyGame(arcade.Window):"""Main application class."""def __init__(self, width, height, title):super().__init__(width, height, title)# 初始化背景颜色self.background_color = arcade.color.BEIGE#  初始化文本参数self.text_angle = 0self.time_elapsed = 0.0def on_update(self, delta_time):# 没过一帧变化一次self.text_angle += 1self.time_elapsed += delta_timedef on_draw(self):"""Render the screen."""# This command should happen before we start drawing. It will clear# the screen to the background color, and erase what we drew last frame.self.clear()# 清屏# Add the screen title# 写一行文本start_x = 0start_y = SCREEN_HEIGHT - DEFAULT_LINE_HEIGHT * 1.5arcade.draw_text("Text Drawing Examples",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE * 2,width=SCREEN_WIDTH,align="center")# start_x and start_y make the start point for the text. We draw a dot to make it# easy too see the text in relation to its start x and y.start_x = 10start_y = SCREEN_HEIGHT - DEFAULT_LINE_HEIGHT * 3arcade.draw_text("Fonts:",start_x,start_y,arcade.color.FRENCH_WINE,DEFAULT_FONT_SIZE, bold=True)# Move the y value down to create another line of textstart_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Default Font (Arial)",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE)# Show some built-in fontsstart_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Blocks Font",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Blocks")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Future Font",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Future")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney High Font",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney High")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney High Square Font",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney High Square")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Mini Square Font",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Mini Square")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Pixel Font",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Pixel")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Pixel Square Font",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Pixel Square")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Rocket Font",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Rocket")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Kenney Rocket Square Font",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name="Kenney Rocket Square")start_y -= DEFAULT_LINE_HEIGHT# When trying to use system fonts, it can be risky to specify# only a single font because someone else's computer might not# have it installed. This is especially true if they run a# different operating system. For example, if you are on Windows# and a friend has a mac or Linux, they might not have the same# fonts. Your game could look different or broken on their computer.# One way around that is to provide multiple options for draw_text# to try. It will use the first one it finds, and use Arial as a# default if it can't find any of them.# In the example below, draw_text is given a tuple of names for very# similar fonts, each of which is common on a different major# operating systems.arcade.draw_text("Times New Roman (Or closest match on system)",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,font_name=("Times New Roman",  # Comes with Windows"Times",  # MacOS may sometimes have this variant"Liberation Serif"  # Common on Linux systems))start_y -= DEFAULT_LINE_HEIGHTarcade.draw_text("Multi-Line\ntext using\n\\n characters.",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE / 2,multiline=True,width=300)start_y -= DEFAULT_LINE_HEIGHT * 1.5arcade.draw_text("Wrapping really long text automatically to a new line. ""The quick brown fox jumped over the lazy dogs.",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE / 2,multiline=True,width=300)# --- Column 2 ---start_x = 750start_y = SCREEN_HEIGHT - DEFAULT_LINE_HEIGHT * 3arcade.draw_text("Text Positioning:",start_x,start_y,arcade.color.FRENCH_WINE,DEFAULT_FONT_SIZE,bold=True)# start_x and start_y make the start point for the text.# We draw a dot to make it easy too see the text in relation to# its start x and y.start_y -= DEFAULT_LINE_HEIGHTarcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("Default of 'baseline' and 'Left'",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE)start_y -= DEFAULT_LINE_HEIGHTarcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("'bottom' and 'left'",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="left",anchor_y="bottom")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("'top' and 'left'",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="left",anchor_y="top")start_y -= DEFAULT_LINE_HEIGHT * 2arcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("'baseline' and 'center'",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="center",anchor_y="baseline")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("'baseline' and 'right'",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="right",anchor_y="baseline")start_y -= DEFAULT_LINE_HEIGHTarcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("'center' and 'center'",start_x,start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="center",anchor_y="center")start_y -= DEFAULT_LINE_HEIGHT * 4# start_x = 0# start_y = 0arcade.draw_point(start_x, start_y, arcade.color.BARN_RED, 5)arcade.draw_text("Rotating Text",start_x, start_y,arcade.color.BLACK,DEFAULT_FONT_SIZE,anchor_x="center",anchor_y="center",rotation=self.text_angle)def main():MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)arcade.run()if __name__ == "__main__":main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[GYCTF2020]Ezsqli ---不会编程的崽

又是sql新题型哦。继续收集! 既然知道是sql注入就不墨迹了。初步判断盲注,判断盲注的方发不用说了吧,然后fuzz一下,information被过滤了。再次可以判断为盲注与无列名注入。 管他有列名还是无列名,先找到表。由于info…

kafka学习笔记01(小滴课堂)

介绍分布式流处理平台kafka快速认知 介绍分布式流处理平台kafka核心概念解释 急速部署-Kafka相关环境准备和安装 Linux环境下Zookeeper和Kafka安装启动 解压两个软件的压缩包: tar -zxvf 启动zk: 去log目录进行查看: 查看一下2181端口是否被占用: 安装…

十九、网络编程

目录 一、什么是网络编程二、网络编程三要素2.1 IP2.2 InetAddress的使用2.3 端口号2.4 协议 三、UDP通信程序3.1 发送数据3.2 接收数据3.3 练习 四、UDP的三种通信方式五、TCP的通信程序六、三次握手和四次挥手七、练习7.1 TCP通信练习1——多发多收7.2 TCP通信练习2——接收和…

Java疫苗接种管理系统

本系统lw为2024-3-21本人原创,查chong13% 1.3W字,可以直接上交,这并不是乱七八糟的技术文档和项目文档。 4.2 功能结构设计 可视化的疫苗接种管理系统功能结构设计主要包括以下几个模块: 登录注册模块:这个模块负责…

浅浅迈入C++门槛

从今天起,我要开始hello,world。 往后更要做到,拳打数据结构,脚踢Linux。 这就是江湖人的风范。 拼搏百天,我要学希普拉斯普拉斯。 C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许…

echarts实践总结(常用二):折线图(特点:渐变、面积区域)

目录 第一章 echarts基本使用 第二章 echarts实践——折线图 效果展示 第一章 echarts基本使用 Echarts常用配置项(详细入门)_echarts配置项手册-CSDN博客 柱状图案例: echarts实践总结(常用一):柱状图(特点:渐变色、点击缩放、…

vue3父子通信、跨层通信

子传父 通过 ref标识 获取真实的 dom对象或者组件实例对象 父组件获取子组件内部属性和方法 顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信 非响应式数据父修改不了子的内容 子组件调用父组件方法

【现代C++】范围基于的for循环

现代C中的范围基于的for循环(range-based for loop)是C11引入的一项特性,旨在简化对容器或范围的迭代过程。这种循环语法不仅使代码更清晰易读,还减少了迭代时的错误。以下是范围基于的for循环的详细介绍: 1. 基本用法…

CTK插件框架学习-源码下载编译(01)

1、编译环境 window11、vs17、Qt5.14.0、cmake3.27.4 2、下载链接 cmake:Index of /files/v3.20 qt:Index of / vs22以前的版本需要登录下载:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 vs22下载:下载 Visu…

Arduino IDE工程代码多文件编程和中文设置

一、esp8266模块信息 二、中英文切换 点击文件( File )–选择首选项( Preference )—选择语言( Language )—选择中文–点击确定( OK ) 三、多文件编程 在Arduino编程中,将代码分割成多个文件是一种很好的做法,特别是项目变得越来越大和复杂时。这样…

Linux 系统是如何收发⽹络包的

Linux 系统是如何收发⽹络包的? ⽹络模型 为了使得多种设备能通过⽹络相互通信,和为了解决各种不同设备在⽹络互联中的兼容性问题,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference Mode…

亚马逊云科技:企业如何开启生成式AI之旅?

如果要评选最近两年全球科技行业最热门的细分领域,那么生成式AI绝对会以遥遥领先的票数成为当仁不让的冠军。 然而眼见生成式AI发展得如火如荼,越来越多的企业却陷入了深深的焦虑:应该如何开启生成式AI之旅?又该怎样搭建大模型&am…

对七层代理、四层代理、正向代理、反向代理的认识

一、理解nginx服务代理 Nginx代理有正向和反向代理两种类型,可以基于osi七层模型中的第四层(传输层)和第七层(应用层)进行代理 注: nginx 一般支持的是7层代理,支持四层代理一般使用 lvs 或者ha…

Data.olllo:一键去除相同内容数据列!

引言: 在数据处理的舞台上,重复数据常常像调皮的小精灵一样,频繁出现,让人头疼不已。但现在,有了Data.olllo的神奇功能,您可以一键去除相同内容数据列,让数据处理变得轻松愉快! 功能…

虹科Pico汽车示波器 | 免拆诊断案例 | 2019 款东风悦达起亚K2车怠速起停系统工作异常

一、故障现象 一辆2019款东风悦达起亚K2车,搭载G4FG发动机,累计行驶里程约为9 400 km。车主反映,行驶至路口停车等红灯时,怠速起停(ISG)系统自动使发动机熄火,接着组合仪表提示“怠速起停已解除…

某东联盟js逆向

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章…

mysql无法看到3306端口监听

参考:https://blog.csdn.net/shumeigang/article/details/103902459 mysql> show global variables like ‘port’; 是0 原因是我的my.cnf有话: skip-network 或 注释掉,然后重新启动下数据库,运行netstat -an|grep 3306 就可以看到了

C#非强签名dll搜索顺序

由于不是强签名dll,所以无效考虑全局程序集缓存 (GAC)。 预备工作 新建解决方案ClassLibrary1,新建类库ClassLibrary1,新建控制台程序ShowDllLoc。 利用VS添加引用。 一,利用app.config设置codebase,设置dll的加载路径为:code…

C#探索之路基础篇(1):编程中面向过程、数据、对象的概念辨析

文章目录 C#探索之路基础篇(1):编程中面向过程、数据、对象的概念辨析1 面向过程编程1.1 概念1.2 示例代码:1.3 使用范围与时机:1.4 注意事项:1.5 通俗讲法 2 面向对象编程2.1 概念2.2 示例代码2.3 使用范围2.4 注意事项2.5 通俗讲…

软考高级:UML定时图概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…