Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Pygame square not showing up because of sprites

I try to print a square for use as a hitbox because the collision detection doesn’t work on images. But when I try to draw a test square in setup it doesn’t appear. I have tried moving the command, and changing it but nothing worked. And that is only for the square. The images appear and move perfectly. I am pretty sure it has something to do with the sprites because without them everything works perfectly.

import pygame
import sys

pygame.init()
fps = 30
fpsclock=pygame.time.Clock()
window = pygame.display.set_mode((600, 600))

x = 275
y = 375
BulletX = x + 10
BulletY = y - 15
color = (250,210,240)
ship_img = pygame.image.load('spaceship.png')
ship = pygame.transform.scale(ship_img,(32,32))
bullet_img = pygame.image.load('bullet (2).png')
bullet = pygame.transform.scale(bullet_img,(12,12))

# main application loop
run = True
while run:
    # limit frames per second
    fpsclock.tick(fps)

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    key_input = pygame.key.get_pressed() #key inputs
    if key_input[pygame.K_LEFT]:
        x -= 5
    if key_input[pygame.K_RIGHT]:
        x += 5

    # clear the display
    window.fill(0)


    
    window.blit(ship,(x,y))
    pygame.draw.rect(window,color,pygame.rect(200,200,30,30))
    window.blit(bullet,(BulletX,BulletY))
    
    BulletY = BulletY - 20
    if(BulletY <= -10):
        BulletY = y - 10
        BulletX = x + 10
    

    # update the display
    pygame.display.flip()

pygame.quit()
exit()

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

The only problem with your code is a lowercase ‘r’ instead of of uppercase one. Change the appropriate line to:

    pygame.draw.rect(window, color, pygame.Rect(200,200,30,30) )

and have fun implementing the collision.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading