Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pygame image collsion trouble [duplicate]

I have tried to make a Zelda clone, and now I'm wondering how to calculate collision, can anyone tell me how to do that? I have tried colliderct and it simply won't work here is my code:

import pygame
pygame.init()
display = pygame.display.set_mode((800,600))
white=(255,255,255)
black=(0,0,0)
x=50
y=50
width = 40
height = 60
vel = 5
playerimg= pygame.image.load('link1.jpg').convert()
def player(x,y):
    display.blit(playerimg,(x,y))
while True:
    pygame.time.delay(100)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            break
        keys = pygame.key.get_pressed()
    if keys[pygame.K_a]:
        x -= vel
    if keys[pygame.K_d]:
        x += vel
    if keys[pygame.K_w]:
        y -= vel
    if keys[pygame.K_s]:
        y += vel
    display.fill(white)
    player(x,y)
    pygame.draw.rect(display, (255,0,0), hitbox,2)
    pygame.display.update() 
pygame.quit()
like image 232
Haoyang Song Avatar asked Nov 30 '25 08:11

Haoyang Song


1 Answers

you can use 'hitboxes' to do this, one you must know the dimensions of your image now that you got them, you can do

hitbox=(x,y, 102,131) 
hitbox1=pygame.draw.rect(display, (255,0,0), hitbox,2)
if the_thing_it_hits.colliderect(hitbox) == True:
        print('ouch')

put this in the while True: loop and it should be good

like image 157
haoyang song Avatar answered Dec 01 '25 22:12

haoyang song