Pygame:画线

2023-12-05

在我之前的问题中Python 中的 For 循环函数, 我在放置包含为刽子手游戏画线的命令的函数时遇到了麻烦。它并没有完全划清界限,我首先怀疑这是 for 循环或函数的问题。现在我意识到 Pygame 存在一些问题。

我尝试在加拿大国家使用此代码来解决问题:

b2 = font.render(str(letters[1]), True, (red))
screen.blit(b2, (bPosition))
if hangman1x == -500 and hangman1y == -500:
    hangman1x = (775, 250)
    hangman1y = (775, 50)
    pygame.draw.line(screen, black, (hangman1x), (hangman1y), (5))
    pygame.display.flip()
    time.sleep(0.5)
    bPosition = -500, -500
    b1.x, b1.y = -500, -500
if hangman1x == (775, 250) and hangman1y == (775, 50):
    print 'hi'
    width = 6
    pygame.draw.line(screen, black, (hangman1x), (hangman1y), (5))
    print 'yay'
    pygame.display.flip()

现在奇怪的事情来了。

当你按 Blitted 到屏幕上时,它会变成红色,就像它的意思一样,完美地绘制线条,但当 B 消失时,它就会消失,我明白为什么。之后,我添加了额外的 if 代码。 (请注意,两者pygame.draw.line(s) 相同),它在 shell 中打印 hi 和 yay,但不保留该行。无论如何要解决这个问题吗?


调用 pygame.draw.line() 后,您可能会将屏幕重新绘制为完全白色,这将绘制线条并隐藏它。我不会像你那样画线,而是从中构建一个刽子手类画图

class Hangman():
  def __init__(self):
    self.lines = 0 #Number of lines to be drawn

  def draw(self,screen):
    #TODO draw to screen based on self.lines

#More code setting up pygame

drawlist = []
myMan = Hangman()
drawlist.append(myMan)
#mainloop
while 1:
  screen.fill('#000000')
  for item in drawlist:
    item.draw(screen)

这样你就可以在每一帧中撤回你的刽子手,因此他总是会被展示出来

编辑添加了一个运行示例

#!/usr/bin/python
import pygame
pygame.init()

class Hangman():
  def __init__(self):
    self.lines = 0 #Number of lines to be drawn

  def hang(self):
    self.lines += 1

  def draw(self,screen):
    for x in range(self.lines):
      coord1 = (x*10,20)
      coord2 = (x*10,50)
      pygame.draw.line(screen,(0,0,0),coord1,coord2)

size = screenWidth,screenHeight = 200,70
screen = pygame.display.set_mode(size)
pygame.display.flip()

myman = Hangman()

drawlist = []
drawlist.append(myman)
#mainloop
running = True
while running:
  #EVENT HANDLING#
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False
    if event.type == pygame.KEYDOWN:
      if event.key == 32: #Spacebar
        myman.hang()

  #DRAWING#
  screen.fill((255,255,255))
  for item in drawlist:
    item.draw(screen)
  pygame.display.flip()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pygame:画线 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • 在 asp.net 中显示“保存文件”对话框

    这是在 asp net 中 我正在参考用户的输入创建 pdf 文件 该 pdf 文件保存在服务器上的文件夹中 现在可以使用response redirect 在浏览器中显示该文件 但我想向用户显示 保存文件 对话框 就像我们从网站下载 ex
  • 选择 CSS 中的特定元素

    抱歉 帖子标题非常笼统 但我在这里追求的是 div span a href link 1 a a href link 2 a span a href link 3 a div 我如何在 CSS 中选择 链接 3 无需编辑该 Htmlat a
  • Firebase 身份验证和 Google 日历

    我想做的是使用 Firebase 向 Google 进行身份验证 然后从 Google 日历获取一些数据 我让第一部分工作了 我可以通过 Google 进行身份验证并获取用户名 电子邮件等 但是一旦添加calendar to the sco
  • Button.PerformClick 的作用是什么?

    我知道这可能是一个微不足道的问题 但我只是想知道调用是否有任何优势Button PerformClick而不是直接调用按钮的点击事件 MSDN 文档简单地说 为按钮生成 Click 事件 这是否意味着它只是与调用按钮的单击事件执行相同的操作
  • 绘图中的保留热图

    为了方便起见 我将保留图从 Seaborn 转移到 Plotly 以便稍后对其应用形状 plotly库似乎适合this graph objects 但我不明白如何传递DataFrame数据 import pandas as pd impor
  • 访问连续表:添加控件而不修改基础表?

    我正在制作一个简单的访问表单 连续视图 详细信息部分中有一个复选框 页脚中有一个命令按钮 这样 用户可以使用复选框 选择 多个记录 然后单击按钮上的命令按钮来运行更新所选记录的脚本 无需永久存储这些检查值 通常 我会向基础表添加一个布尔字段
  • 更改文本区域中特定部分的文本颜色

    是否有可能更改 HTML 文本区域中某些部分的文本颜色 我喜欢在我的网站上输出一些突出显示的 PHP 代码 并可以通过单击此文本区域来选择完整的代码 我已经编写了一个 JavaScript 函数来选择完整的文本 但如果我尝试在文本周围放置跨
  • 将图钉放在屏幕中央,MKMapView

    我有一个使用以下代码删除 pin 的功能 ParkPlaceMark placemark ParkPlaceMark alloc initWithCoordinate location mapView addAnnotation place
  • 第二次单击时 redux 状态值发生变化

    我是 redux 的新手 我已将其与我的 React 应用程序集成 但我有一个关于小测试的说明 在下一个示例中 我看到用户的值在我的第二次单击时添加了 减速机 const initialState user password export
  • 计算表行数

    检索表中记录数的 MySQL 命令是什么 SELECT COUNT FROM fooTable 将计算表中的行数 See the 参考手册
  • getJSON 调用中的错误处理

    如何处理 getJSON 调用中的错误 我尝试使用 jsonp 引用跨域脚本服务 如何注册错误方法 getJSON 是常规 AJAX 调用的一种抽象 您必须在其中告诉您需要 JSON 编码的响应 ajax url url dataType
  • Ionic - 按下按钮后显示微调器

    This spinnerionic 的选项一直在旋转像这儿
  • JdbcTemplate - 使用 SQL MERGE 插入或更新 Oracle BLOB

    使用 JdbcTemplate 我想调用 MERGE SQL 语句 该语句将向表中插入新记录 或者如果具有特定键的行已存在则进行更新 关键部分是其中一列是 Oracle BLOB 类型 这是我到目前为止所尝试的 Try 1 sql语句 St
  • Java - 使用 Apache Commons 数学库计算导数

    我在使用 apache commons 数学库时遇到问题 我只想创建像 f x 4x 2 2x 这样的函数 并且我想计算这个函数的导数 gt f x 8x 2 我读过关于差异化的文章 http commons apache org prop
  • 过滤 thenInclude 三个嵌套级别

    我试图向下过滤三个子级别并仅查找 Property Mailing Address Status True 的子元素 它仍然返回 PropertyMailingAddress Status 下为 False 的值 如何将过滤器向下转换三级并
  • 使用 SqlBulkCopy 触发每个插入行的触发器

    我在用SqlBulkCopy类一次在表中插入 50k 行tbl records我已经设置了一个After Insert在此表上触发并使用以下代码 SqlBulkCopy SqlBc1 new SqlBulkCopy strConnStrin
  • 如何使用以下访问日志获取 uniq 报告

    Input Severity Warning Missing argument 1 for Pxxer rzxczt v3 mast sdfdsfv ddw hdd nddd system adsdn codsds pr rt v3 php
  • 如何解析 XML 以检索嵌入的文本节点

    我想解析这个 XML 文件 要解析的 XML 文件
  • 为什么不允许“SplFileInfo”序列化?

    我正在尝试存储一个数组SplFileInfo缓存中的实例serialize命令 但该命令抛出此异常 Exception with message Serialization of SplFileInfo is not allowed 为什么
  • Pygame:画线

    在我之前的问题中Python 中的 For 循环函数 我在放置包含为刽子手游戏画线的命令的函数时遇到了麻烦 它并没有完全划清界限 我首先怀疑这是 for 循环或函数的问题 现在我意识到 Pygame 存在一些问题 我尝试在加拿大国家使用此代