在执行代码时仍然在pygame控制台中获得黑屏

时间:2016-02-01 12:54:56

标签: python linux ubuntu pygame

在发布此问题之前,我已经在Stack中阅读了其他几个问题,但这些问题似乎与我的问题无关。此外,我已经阅读了我的代码几个小时试图解决它,但没有。

我真的想知道我的代码有什么问题,以及为什么我在执行pygame代码时仍然会出现黑屏。

以下是代码:

import pygame,sys
from pygame.locals import *
from random import randint

pygame.init()
ventana = pygame.display.set_mode((1000,1000))
#abajo se encuentra el fondo de la ventana
#ventana.fill(ColorDos)
pygame.display.set_caption("Retouch")

Mi_imagen = pygame.image.load("Image/meflag.png")
Imagen_Dos = pygame.image.load("Image/Kool-Aid.gif")
posX= randint (100, 300)
posY = randint (101, 200)

velocidad=4
Color = (66, 133 ,244)#Azul
ColorDos = pygame.Color(244, 180, 0)#Amarillo
ColorTres = (244,67,54)#Rojo
ColorCuatro = (0,135,68) #verde
derecha=True

rectangulo = pygame.Rect(0,0,100,50)
print posY, posX

# Color = (244,180,0)
#primero donde, despues, color(tupla u objeto), tupla de cordenadas en X, Y. El ultimo parametro es el tamano del radio.
pygame.draw.circle(ventana, Color, (200, 300), 500)
"""Primero donde, despues que color, despues tupla con cuatro valores.
Los primeros dos valores (X,Y) son la esquina izquierda superior.
El tercer valor es el ancho de nuestro rectangulo.
Y el cuarto valor es el alto del rectangulo:"""
pygame.draw.rect(ventana, ColorCuatro,(100,100,100,50) )
"""Primero donde, despues color, despues el tercer parametro es una tupla con tuplas dentro de esta.
Dentro de esa tupla se encuentras las cordenadas, posiciones (X,Y) de los puntos que al final pygame une."""
pygame.draw.polygon(ventana, ColorTres, ((80,90),(200,400), (80,10))  )


while True:
    ventana.fill(ColorDos)
    # ventana.blit(Mi_imagen,(posX, posY))  
    ventana.blit(Imagen_Dos,(posX, posY))
    pygame.draw.rect(ventana, ColorTres,rectangulo)
    rectangulo.left, rectangulo.top = pygame.mouse.get_pos()
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
"""Este de abajo mueve a Kool-Aid"""
# posX,posY=pygame.mouse.get_pos()
# posX=posX-100
# posY=posY-50

"""Lo de abajo(comentado) mueve la imagen sin parar"""
if derecha==True:
    if posX <400:
        posX+=velocidad
    else:
        derecha=False
else: 
    if posX>1:
        posX-=velocidad
    else:
        derecha=True

#       elif event.type == pygame.KEYDOWN:
#           if event.key == K_LEFT:
#               posX-=velocidad
#           elif event.key == K_RIGHT:
#               posX+=velocidad

pygame.display.update()

下次如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

您的缩进错误且update()不在while True循环内 - 因此您不会将数据从缓冲区发送到视频卡和屏幕上

while True:
    ventana.fill(ColorDos)
    # ventana.blit(Mi_imagen,(posX, posY))  
    ventana.blit(Imagen_Dos,(posX, posY))
    pygame.draw.rect(ventana, ColorTres,rectangulo)
    rectangulo.left, rectangulo.top = pygame.mouse.get_pos()
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    """Este de abajo mueve a Kool-Aid"""
    # posX,posY=pygame.mouse.get_pos()
    # posX=posX-100
    # posY=posY-50

    """Lo de abajo(comentado) mueve la imagen sin parar"""
    if derecha==True:
        if posX <400:
            posX+=velocidad
        else:
            derecha=False
    else: 
        if posX>1:
            posX-=velocidad
        else:
            derecha=True

#       elif event.type == pygame.KEYDOWN:
#           if event.key == K_LEFT:
#               posX-=velocidad
#           elif event.key == K_RIGHT:
#               posX+=velocidad

    pygame.display.update()