breakout clone pygame - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Game Development (https://python-forum.io/forum-11.html) +--- Thread: breakout clone pygame (/thread-36299.html) |
breakout clone pygame - flash77 - Feb-06-2022 Hello, I'm trying to program a breakout clone. With lives = ball.move(lives) I'm trying to send "lives" to the move method of Ball. But an error occurs: Traceback (most recent call last): File "D:/Daten/Breakout-neu/main.py", line 89, in <module> main() File "D:/Daten/Breakout-neu/main.py", line 45, in main lives = ball.move(lives) File "D:\Daten\Breakout-neu\ball.py", line 43, in move lives -= 1 TypeError: unsupported operand type(s) for -=: 'NoneType' and 'int' What I'm doing wrong? ----------------------------------------------- Moreover: Do I have to add a bounce method to Ball? I tried: if ball.collpaddle(paddlegroup): ball.dy *= -1 ----------------------------------------- I'm politely asking for help... Please be so kind an help me... (main and Ball is attached as text files) RE: breakout clone pygame - metulburr - Feb-06-2022 Please post code in code tags instead of uploading an attachment. It makes it a pain to view in a phone Your traceback shows that lives is not an int as expected.Your move method returns an int only if thr if condition is met, so I suspect one time it is not met, and returning None. Functions return None if nothing else is returned. Also in pygame you can clamp a rect to the screen rect nullifying any code to restrict thr object from going out of screen with a one liner. RE: breakout clone pygame - flash77 - Feb-06-2022 Hello metulburr, thanks a lot for your answer! I moved the return statement outside the if-condition - now the error is fixed. |