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:画线 的相关文章

  • Python 中的字节数组

    如何在 Python 中表示字节数组 如 Java 中的 byte 我需要用 gevent 通过网络发送它 byte key 0x13 0x00 0x00 0x00 0x08 0x00 在Python 3中 我们使用bytes对象 也称为s
  • 即使页面未完全加载,我们也可以使用 Selenium 获取页面源吗(TimeoutException: Message: timeout)?

    即使遇到 TimeoutException Message timeout 也能获取页面源码吗 当我调用 driver page source 时 有时无法加载整页 但我只需要它的部分信息 尚未确定 所以我只想在任何情况下保存页面 是否可以
  • 从Python中的字符串中提取货币金额

    我正在制作一个程序 从字符串中获取货币并将其转换为其他货币 例如 如果字符串是 the car cost me 13 250 我需要得到 and 13250 我已经有了这个正则表达式 1 确实如此 但是该字符串很有可能有多个价格 并且全部使
  • Kivy - 文本换行工作错误

    我正在尝试在 Kivy 1 8 0 应用程序中换行文本 当没有太多文字时 一切正常 但如果文本很长并且窗口不是很大 它只是剪切文本 这是示例代码 vbox BoxLayout orientation vertical size hint y
  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • django-admin.py makemessages 不起作用

    我正在尝试翻译一个字符串 load i18n trans Well Hello there how are you to Hola amigo que tal 我的 settings py 文件有这样的内容 LOCALE PATHS os
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 在 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 存在一些问题 我尝试在加拿大国家使用此代