0

I'm on page 258 of the Python Crash Course 2nd Edition by Eric Matthes. I put everything in and the code works fine. The ship moves left and right and shoots the 3 bullets. The problem is my alien image that keeps glitching.

Where would the problem be to fix a glitch problem?


Thank you for helping! And I can't put in a video or images yet so I wrote down the code below.

So this is what is under the "alien.py" tab:

import pygame
from pygame.sprite import Sprite

class Alien(Sprite):
    """A class to represent a single alien in the fleet."""

    def __init__(self, ai_game):
        """Initialize the alien and set its starting position."""
        super().__init__()
        self.screen = ai_game.screen

        # Load the alien image and set its rect attribute.
        self.image = pygame.image.load('images/alien.bmp')
        self.rect = self.image.get_rect()

        # Start each new alien near the top left of the screen.
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        # Store the alien's exact horizontal position.
        self.x = float(self.rect.x)

And this is what was added on the "alien_invasion.py" tab:

import sys

import pygame

from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien

class AlienInvasion:
    """Overall class to manage game assets and behavior."""

    def __init__(self):
        """Initialize the game, and create game resources."""
        pygame.init()
        self.settings = Settings()

        self.screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
        self.settings.screen_width = self.screen.get_rect().width
        self.settings.screen_height = self.screen.get_rect().height
        pygame.display.set_caption("Alien Invasion")

        self.ship = Ship(self)
        self.bullets = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()

        self._create_fleet()

    def _create_fleet(self):
        """Create the fleet of aliens."""
        # Make an alien.
        alien = Alien(self)
        self.aliens.add(alien)

    def _update_screen(self):
        """Update images on the screen, and flip to the new screen."""
        self.screen.fill(self.settings.bg_color)
        self.ship.blitme()
        for bullet in self.bullets.sprites():
            bullet.draw_bullet()
        self.aliens.draw(self.screen)

        pygame.display.flip()
CryptoFool
  • 21,719
  • 5
  • 26
  • 44
  • 2
    Welcome to StackOverflow! Please take a look around and read [how to ask](https://stackoverflow.com/help/how-to-ask), and check this short guide on creating [minimal reproducible examples](https://stackoverflow.com/help/minimal-reproducible-example). – Alexander L. Hayes Apr 06 '22 at 00:42
  • What code have you written so far? – Alexander L. Hayes Apr 06 '22 at 00:42
  • Hey! Can you please send your code and what the issue is. It'll be a bit hard to help you fix it if you just tell us that it is "glitching", are you able to describe it or send an image/video of what is going wrong? – KingsDev Apr 06 '22 at 00:42

0 Answers0