When I try to make a shape using variables, I keep getting this error message:
"TypeError: integer argument expected, got float"
import pygame._view
import pygame, sys
from pygame.locals import *
import random
pygame.init()
...
barrel = pygame.image.load("images\Barrel.gif")
barrel_create = 0
barrelx = screen.get_height()- barrel.get_height()
barrely = screen.get_width()/2 - barrel.get_width()/2
barrel_exist = 0
explosion_delay = 0
...
while running:
if barrel_exist == 0:
if barrel_create == 500:
barrely = 200
barrelx = random.randint(0,400)
barrel_exist = 1
if barrel_exist == 1:
barrely = barrely + 0.1
if barrely > 400:
barrel_exist = 0
if explosion_delay > 0:
pygame.draw.circle(screen, (0,255,0), (barrelx, barrely), 64, 0)
explosion_delay = explosion_delay + 1
if explosion_delay == 100:
explosion_delay = 0
The explosion_delay > 0 when the barrel is "shot".
barrely = barrely + 0.1
barrely
must be a float at some point because of this line.
I think you should do pygame.draw.circle(screen, (0,255,0), (int(barrelx), int(barrely)), 64, 0)
to truncate the variables to integers as the function requires.
You don't say which line is giving the error, but if you're using Python 3, /
gives a float
result. Use //
for an integer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With