加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

我如何使用二进制列表在PyGame中绘制正方形?

发布时间:2020-12-17 17:35:15 所属栏目:Python 来源:网络整理
导读:我想知道是否可以使用一和零的列表绘制图像,其中1表示 pygame.draw.rect(DISPLAY_SURF,(0,0),10,10)) 和0表示空格.它看起来像这样: blockMap = [ [0,1,0],[0,[1,1],0]] 我没有尝试太多,因为我在整个Internet上浏览都没有成功,并且显然无法为字符串分配整数.

我想知道是否可以使用一和零的列表绘制图像,其中1表示

pygame.draw.rect(DISPLAY_SURF,(0,0),10,10))

和0表示空格.它看起来像这样:

blockMap = [
    [0,1,0],[0,[1,1],0]]

我没有尝试太多,因为我在整个Internet上浏览都没有成功,并且显然无法为字符串分配整数.

blockMap = [
    [0,0]]

in blockMap if 1:
    pygame.draw.rect(DISPLAY_SURF,10))
else:
    pygame.draw.rect(DISPLAY_SURF,((BG_COLOUR)),10))

这应该在白色背景上以黑色显示笑脸,但绝对不是.我知道这是完全错误的,我已经尝试了很久了,那只是我希望工作的一次非常绝望的尝试.

最佳答案
您正在为绘图函数提供常量参数.您需要根据矩阵更改坐标.

例如:

square_size = 30 # example
for y,row in enumerate(blockMap):
    for x,val in enumerate(row):

        upper_left_point = x * square_size,y * square_size
        upper_right_point = (x + 1) * square_size,y * square_size
        lower_left_point = x * square_size,(y + 1) * square_size
        lower_right_point = (x + 1) * square_size,(y + 1) * square_size

        pointlist = [upper_left_point,upper_right_point,lower_right_point,lower_left_point]

        pygame.draw.polygon(Surface,color,pointlist,width=0)

这是一个非常基本的示例,因此在使用它之前,请尝试完全理解该代码.在实际开始可视化任何内容之前,您将需要了解这些概念.

别忘了将square_size调整为屏幕尺寸.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读