Note that there are some explanatory texts on larger screens.

plurals
  1. POPygame - AttributeError: 'int' object has no attribute 'y'
    primarykey
    data
    text
    <p>Hello I am currently working on a game in pygame and I am now trying to add a ground, gravity and jump. When I run the code I get an attribute error. Please help if you have a fix, here is the code:</p> <pre><code>import pygame, sys, time from pygame.locals import * pygame.init() # A few variables zx = 320 zy = 320 x = 25 y = 320 velX = 0 velY = 0 gravity = .50 ground = 720 clock = pygame.time.Clock() # Screen size = 1280, 720 screen = pygame.display.set_mode(size) pygame.display.set_caption('Moon Survival!') # Moon moon = pygame.image.load('images/arena2.jpg') pygame.display.update() # Player class Player(pygame.sprite.Sprite): global gravity def __init__(self, x, y): # Player dimensions and position self.x = x self.y = y self.width = 80 self.height = 80 # Player image and animation self.i0 = pygame.image.load('images/soldier.png') self.i1 = pygame.image.load('images/soldier2.png') self.timeTarget = 10 self.timeNum = 0 self.currentImage = 0 # Jump and gravity self.vSpeed = 1 self.jumpForce = 8 self.maxVspeed = 3 self.isJumping = False # Jump inputs def getInput(self): keys = pygame.key.get_pressed() if keys[pygame.K_SPACE]: if not self.isJumping: self.isJumping = True # PLayer updates def update(self): # Jumping self.getInput() self.vSpeed += gravity if self.vSpeed &gt; self.maxVspeed: self.vSpeed = self.maxVspeed self.y += self.vSpeed if self.y &gt;= ground.y: self.vSpeed = 0 self.y = ground.y self.isJumping = False if self.isJumping: self.vSpeed += -self.jumpForce # Animations #self.timeNum += 1 if (self.timeNum == self.timeTarget): if (self.currentImage == 0): self.currentImage = 0 else: self.currentImage = 0 self.timeNum = 0 self.render() # Player rendering def render(self): if (self.currentImage == 0): screen.blit(self.i0, (self.x, self.y)) #else: #screen.blit(self.i1, (self.x, self.y)) # Zombies zombie = pygame.image.load('images/zombie.png') pygame.display.update() # Sprite variables player = Player(25, 320) # Game loop while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Movement if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: velX = -5 if event.key == pygame.K_d: velX = +5 if event.type == pygame.KEYUP: if event.key == pygame.K_a: velX = 0 if event.key == pygame.K_d: velX = 0 # Image blitting screen.blit(moon, (0,0)) screen.blit(zombie, (zx, zy)) # Movement variables player.x += velX player.y += velY player.update() # Screen wrap if player.x &gt;= 1240: player.x = 1 if player.x &lt;= 0: player.x = 1240 # Display updating clock.tick(75) pygame.display.update() </code></pre> <p>Any help will be greatly appreciated, thank you.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload