so i have a problem with my collisions. My code is kinda funky because its for a gamejam in a time of 2 days and i havent got to sorting it yet. so i want the code to print something if the honey touches the player. i can work my way up from there. here is the code
i will attach the imagesenter image description here
import pygame
from pygame.locals import *
from random import randint
pygame.init()
bgImg = pygame.image.load("background.png")
beeImg = pygame.image.load("bee.png")
honeyImg = pygame.image.load("honey.png")
#game variables
screen_width = 720
screen_height = 484
clock = pygame.time.Clock()
last_hun = pygame.time.get_ticks()
hun_frequency = 0.5 * 1000 #milliseconds
fps = 60
honeySpeed = 6
class Bee(pygame.sprite.Sprite):
def __init__(self, x, y, alive, speed, score):
pygame.sprite.Sprite.__init__(self)
self.alive = alive
self.speed = speed
self.score = score
self.img = beeImg
self.rect = self.img.get_rect()
self.rect.center = [x, y]
self.x = x
self.y = y
def draw(self):
#DRAWING
screen.blit(self.img, (self.x, self.y))
# MOVEMENT
key_input = pygame.key.get_pressed()
if key_input[pygame.K_LEFT]:
player.x -= player.speed
elif key_input[pygame.K_RIGHT]:
player.x += player.speed
class Honey(pygame.sprite.Sprite):
def __init__(self, x, y,speed):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.speed = speed
self.image = honeyImg
self.image = pygame.transform.scale(honeyImg, (60,60))
self.rect = self.image.get_rect()
self.rect.center = [x,y]
def update(self):
screen.blit(self.image, (self.x,self.y))
self.y += 5
if self.y > screen_height:
self.kill()
player = Bee(screen_width/2-50, screen_height/2 +120, True, 8, 0)
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('Bee on the Run!')
honeyGroup = pygame.sprite.Group()
playerGroup = pygame.sprite.Group()
playerGroup.add(player)
running = True
run = True
while run:
clock.tick(fps)
time_now = pygame.time.get_ticks()
if time_now - last_hun > hun_frequency:
newHoney = Honey(randint(0, screen_width), -50, honeySpeed)
honeyGroup.add(newHoney)
last_hun = time_now
#draw pics
screen.blit(bgImg,(0,0))
hits = pygame.sprite.spritecollide(player, honeyGroup, False)
if hits:
print("touched")
player.draw()
#newHoney.draw()
honeyGroup.draw(screen)
honeyGroup.update()
hits = pygame.sprite.spritecollide(player, honeyGroup, False)
if hits:
print("touched")
#event controll
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.display.update()
pygame.quit()