#๐Ÿ”’ PyGame

7 messages ยท Page 1 of 1 (latest)

glad token
#

Hi there, I am creating a game in PyGame. I have two scripts, main.py and player.py. I have attached both of these. My error is as follows: TypeError: unsupported operand type(s) for +=: 'pygame.rect.Rect' and 'int'

to fix this, i have checked the type() and it is integer. The issue is on line 23 on the second script.

file: main.py)
import sys
import pygame
from player import Player

class Game:
def init(self):
playerSprite = Player((300, 500))
self.player = pygame.sprite.GroupSingle(playerSprite)

def run(self):
    self.player.draw(screen)
    self.player.update()

#basic setup to create empty game window
if name == 'main':
pygame.init()
screen_width = 600
screen_height = 600
screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption('Space Invaders')
clock = pygame.time.Clock()
game = Game()

#game loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((30,30,30))
game.run()

pygame.display.flip()
clock.tick(60)
keen ravenBOT
#

@glad token

Python help channel opened

Remember to:

  • Ask your Python question, not if you can ask or if there's an expert who can help.
  • Show a code sample as text (rather than a screenshot) and the error message, if you've got one.
  • Explain what you expect to happen and what actually happens.

:warning: Do not pip install anything that isn't related to your question, especially if asked to over DMs.

glad token
#

(file: player.py)

import pygame

class Player(pygame.sprite.Sprite):
def init(self,pos):
super().init()
self.image = pygame.image.load('D:\NEA Documents\Code Documents\Graphics\player.png').convert_alpha()
self.rect = self.image.get_rect(midbottom = pos)
self.speed = 5

def inputGet(self):
    moveKeys = pygame.key.get_pressed()

    if moveKeys[pygame.K_UP]:
        try:
            self.rect -= self.speed

        except Exception as e:
            print(e)
            print(type(self.rect.x))
            print(type(self.speed))

    elif moveKeys[pygame.K_DOWN]:
        self.rect += self.speed
    elif moveKeys[pygame.K_RIGHT]:
        self.rect.x += self.speed
    elif moveKeys[pygame.K_LEFT]:
        print(type(self.rect.x))
        print(type(self.speed))
        self.rect.x -= self.speed
        #self.rect.x = self.react.x + self.speed

def update(self):
    self.inputGet()
#

!solved

keen ravenBOT
#
Python help channel closed

This help channel has been closed and it's no longer possible to send messages here. If your question wasn't answered, feel free to create a new post in #1035199133436354600. To maximize your chances of getting a response, check out this guide on asking good questions.