全图不在屏幕上显示pygam

2024-04-25 09:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下python/pygame代码:

import sys, pygame 
 from array import * 
 pygame.init() 

  height = 600 
  width = 800 

设置显示窗口

 DISPLAYSURFACE = pygame.display.set_mode((width, height)) 
   pygame.display.set_caption('Graphics Assignment Part 1') 

打开文件

 file = open('F:\\school\\Graphics\\PIXA.DAT', 'r') 

将文件读入列表并关闭它

 vlist = file.readlines() 
#close file 
 file.close 
#remove last value from list 
 del vlist[-1] 

将vlist中的值存储到点中,但将J更改为跳转位,并使用

  points = [list(map(int,v.split())) if v.strip().lower() != "j" else "JUMP" for v in vlist] 

设置循环,将vlist拆分为3个x、y、z坐标列表

Xs,Ys,Zs= zip(*points) 
      unique_Xs = [] 
    [unique_Xs.append(val) for val in Xs if val != "J"] 
      unique_Ys = [] 
    [unique_Ys.append(val) for val in Ys if val != "U"] 
      unique_Zs = [] 
    [unique_Zs.append(val) for val in Zs if val != "M"] 
      draw = list(zip(unique_Xs,unique_Ys)) 

将屏幕上的点列表绘制为一系列线

 drawing = pygame.draw.lines(DISPLAYSURFACE,(0,255,172),False, draw, 1) 

更新显示并退出游戏

 pygame.display.update() 
  running = True 
   while running: 
     for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
           running = False

我正在读取坐标列表,并将它们存储到x,y,z坐标列表中,以便在pygame中绘制一组线。你知道吗

我可以画的形象,但整个事情没有显示在屏幕上,因为点的范围是-2000至2000。你知道吗

如何更改python窗口中的坐标范围以在800x600显示窗口中显示整个图像


Tags: in列表forifdisplayvalpygamelist