Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyGame] Cockroach help
#2
Maybe increase your python skills first. Learn to use classes.
Using classes can make code more readable and easier to program.

example
import pygame
from random import randint
pygame.init()

class Roach:
    def __init__(self):
        self.rect = pygame.Rect(Game.screen.centerx, Game.screen.centery, 10, 10)
        self.direction = 'up'
        self.speed = 10
        self.step = 0
        self.tick = pygame.time.get_ticks() + 100

    def update(self, tick):
        if tick > self.tick:
            self.tick += randint(90, 110)
            if randint(1,10) in [2, 8]:
                if self.direction in ['up', 'down']:
                    self.direction = ['left', 'right'][randint(0,1)]
                else:
                    self.direction = ['up', 'down'][randint(0,1)]

            if self.direction == 'up':
                self.rect.y -= self.speed
            elif self.direction == 'left':
                self.rect.x -= self.speed
            elif self.direction == 'right':
                self.rect.x += self.speed
            elif self.direction == 'down':
                self.rect.y += self.speed

            self.rect.clamp_ip(Game.screen)

    def draw(self, surface):
        pygame.draw.rect(surface, (255,255,0), self.rect)

class Game:
    screen = pygame.Rect(0,0,640,640)

    def __init__(self, caption):
        pygame.display.set_caption(caption)
        self.surface = pygame.display.set_mode(Game.screen.size)
        self.clock = pygame.time.Clock()
        self.roach = Roach()

    def loop(self):
        self.running = True
        while self.running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.running = False

            tick = pygame.time.get_ticks()
            self.roach.update(tick)

            self.surface.fill((0,0,0))
            self.roach.draw(self.surface)
            pygame.display.flip()
            self.clock.tick(30)

def main():
    game = Game('Roach')
    game.loop()

    pygame.quit()

main()
99 percent of computer problems exists between chair and keyboard.
Reply


Messages In This Thread
Cockroach help - by Reywal - Jul-15-2018, 02:14 PM
RE: Cockroach help - by Windspar - Jul-15-2018, 08:57 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020