top rectangle jpg collide python pygame mouse

python - jpg - rectangle pygame



PyGame: draw.rect() tiene parĂ¡metros no vĂ¡lidos (1)

Echemos un vistazo a la definición de la función:

pygame.draw.rect(Surface, Color, Rect, Thickness)

  • La superficie es una superficie donde quieres dibujar
  • El color es un tupple con valores RGB que definen el color que se utilizará
  • Rect es un tupple en el formato: (x, y, ancho, alto)
    • x, y son las coordenadas de la esquina superior izquierda
    • ancho, alto son el ancho y alto del rectángulo
  • El espesor es el grosor de la línea. Si es cero, el rectángulo está lleno.

En base a esto, deberías hacer algo como:

redColor = (255,0,0) pygame.draw.rect(screen, redColor, (mousepos[0], mousepos[1], 20, 20), 1)

Fuentes:

La documentación oficial de python.draw se puede encontrar aquí:
http://www.pygame.org/docs/ref/draw.html

Tenga en cuenta los útiles Search examples for <function> botón Search examples for <function> debajo de cada descripción de función, que puede llevarlo a múltiples ejemplos de uso del mundo real.

Los tutoriales útiles también se pueden encontrar en las páginas oficiales: http://www.pygame.org/wiki/tutorials

Otros tutoriales no oficiales, como este , se pueden encontrar con un poco de esfuerzo en Google.

Intento aprender eventos de mouse con PyGame y estoy intentando dibujar un cuadro donde el usuario haga clic. Estoy estableciendo una variable igual a pygame.mouse.get_pos (), y llamando a los miembros individuales de la tupla según la posición x, y del mouse. Aquí está el código:

import pygame, sys pygame.init() screen = pygame.display.set_mode((800, 600)) mousepos = pygame.mouse.get_pos() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: pygame.draw.rect(mousepos[0], mousepos[1], 20, 20)

El juego se inicia, pero cuando hago clic, se cuelga, dando este error:

Traceback (most recent call last): File "C:/Users/User/Documents/proj/Python/mouse.py", line 13, in <module> pygame.draw.rect(mousepos[0], mousepos[1], 20, 20) TypeError: must be pygame.Surface, not int

Sé lo que estoy haciendo mal: mis parámetros para draw.rect() son de tipos no válidos, pero no sé cómo cambiar los parámetros para que sean apropiados. Entonces, ¿cómo puedo arreglar esto?