Dec-10-2019, 09:09 PM
Nothing is loading, and all I get is a blank surface. Please help.
#touhou rectangle import os import pygame pygame.init() win = pygame.display.set_mode((1000, 600)) pygame.display.set_caption("pesto anchovy") class player() : x = 10 y = 10 height = 60 width = 20 currentlevel = 1 projectiles = [] hitbox = [y-5, y+5, x-5, x+5] hp = 30 align = 'good' def draw(self, win): keys = pygame.key.get_pressed() if keys [pygame.K_SPACE] and self.projectiles == [] : self.projectiles.append(projectile(self.x-10, self.y, -2, 0, 20, (239, 229, 93))) self.projectiles.append(projectile(self.x, self.y, -2, 0, 20, (239, 229, 93))) self.projectiles.append(projectile(self.x+10, self.y, -2, 0, 20, (239, 229, 93))) self.projectiles.append(projectile(self.x+20, self.y, -2, 0, 20, (239, 229, 93))) self.projectiles.append(projectile(self.x+30, self.y, -2, 0, 20, (239, 229, 93))) #projectiles if keys [pygame.K_UP] : self.y -= 10 if keys [pygame.K_DOWN] : self.y += 10 if keys [pygame.K_RIGHT] : self.x += 10 if keys [pygame.K_LEFT] : self.x -= 10 pygame.draw.rect(win, (210, 0, 63), (10, 940, self.hp*10, 20)) pygame.draw.rect(win, (69, 218, 24), (self.x, self.y, self.width, self.height)) #movement class projectile(): def __init__(self, x, y, damage, xmove, ymove, color): self.x = x self.y = y self.damage = damage self.xmove = xmove self.ymove = ymove self.color = color def checkcollision(self, owner, collider) : if collider.hitbox[0] > self.y-5 and collider.hitbox[1] < self.y + 5 and collider.hitbox[2] < self.x-5 and collider.hitbox[3] < self.x+5 and owner.align != collider.align : collider.hp -= damage owner.projectiles.pop(index(self)) if self.x > 1000 or self.x < 0 or self.y > 600 or self.y < 0 : owner.projectiles.pop(index(self)) def draw(self, win) : self.x += self.xmove self.y += self.ymove pygame.draw.circle(win, self.color, (self.x, self.y), 5) class bluecircle(): actproj = False def __init__(self, going) : if going == 'r': self.goingright = True self.goingleft = False else: self.goingright = False self.goingleft = True projectiles = [] actcount = 1 health = 15 y = 10 align = 'bad' def __init__(self, x): self.x = x #hitbox format: up, down, left, right def draw(self, win) : if not self.actproj: self.actproj = True self.projectiles.append(projectile(self.x, self.y+10, 0, 10, 1, (218, 69, 143))) if self.goingright: self.projectiles.append(projectile(self.x, self.y+10, 10, 10, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, 10, 0, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, 5, 10, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, 10, 5, 1, (218, 69, 143))) else: self.projectiles.append(projectile(self.x, self.y+10, -10, 10, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, -10, 0, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, -5, 10, 1, (218, 69, 143))) self.projectiles.append(projectile(self.x, self.y+10, -10, 5, 1, (218, 69, 143))) elif self.goingright : self.x += 10 if x >= 980 : goingright = False goingleft = True else: self.x -= 10 if self. x <= 20: goingleft = False goingright = True pygame.draw.circle(win, (69, 188, 218), (self.x, self.y), 10) #behaviors def save (player) : if os.path.exists('save.txt') : os.remove('save.txt') o = open('save.txt', 'w+') o.write(player.currentlevel) def load (player) : if os.path.exists('save.txt') : e = open('save.txt', 'r') if e.mode == 'r' : level = e.read() player.currentlevel = int(level) else : player.currentlevel = 1 def level(level, player): for waves in level: intro = 50 while intro > 0 : win.fill((0, 0, 0)) font = pygame.font.SysFont("timesnewroman", 50, False) text = font.render("Level {}: Wave {}".format(player.currentlevel, level.index(waves)+1), 1, (0, 0, 0)) win.blit(text, (500, 300)) player.draw(win) for projectiles in player.projectiles : projectiles.draw(win) projectiles.checkcollision(player, player) currentenemyhealth = 1 check = 1 while currentenemyhealth > 0: currentenemyhealth = 0 win.fill((0, 0, 0)) player.draw(win) for enemies in waves: currentenemyhealth += enemies.health enemies.draw(win) if check == 1: check -= 1 currentenemyhealth -= 1 for bullets in enemies.projectiles : bullets.draw(win) bullets.checkcollision(enemies, player) for projectiles in player.projectiles : projectiles.draw(win) for enemies in waves: projectiles.checkcollision(player, enemies) player.currentlevel += 1 save(player) load(player) clock = pygame.time.Clock() p = player() run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False clock.tick(27) p.draw(win) for bullet in p.projectiles: bullet.draw(win) pygame.display.update pygame.quit()Sorry for the poor commenting.