Untitled

 avatar
unknown
plain_text
a year ago
3.0 kB
6
Indexable
import pygame
import random
import time

screen_height = 800
screen_width = 1200

screen = pygame.display.set_mode((screen_width,screen_height))

player = pygame.Rect((300,250,50,50))
goal = pygame.Rect((250,200,50,50))

bullets = []
running = True
direction = 'U'
bullet_created = time.time()

def create_bullet(direction,box):
    global bullet_num, bullets
    bullet_direction = direction
    switch = False
    if direction == 'U':
        x,y = box.midtop
        x -= 2.5 
        y -= 7.5
        switch = True
        bullet_loc = {'x': x, 'y': y}
    elif direction == 'D':
        x,y = box.midbottom
        x -= 2.5
        switch = True
        bullet_loc = {'x': x, 'y': y}
    elif direction == 'R':
        x,y = box.midright
        bullet_loc = {'x': x, 'y': y}
    elif direction == 'L':
        x,y = box.midleft
        x -= 7.5
        y -= 2.5
        bullet_loc = {'x': x, 'y': y}
    if switch:
        bullet_name = pygame.Rect(x,y,5,10)
    else:   
        bullet_name = pygame.Rect(x,y,10,5)
    bullet = {
        'name': bullet_name,
        'direction': bullet_direction,
        'location': bullet_loc
    }
    bullets.append(bullet)

def update_bullets(bullets):
    for bullet in bullets:
        bullet_name = bullet['name']
        direction = bullet['direction']
        bullet_loc = bullet['location']
        if direction == 'U':
            bullet_name.move_ip(0,-2)
        elif direction == 'D':
            bullet_name.move_ip(0,2)
        elif direction == 'R':
            bullet_name.move_ip(2,0)
        elif direction == 'L':
            bullet_name.move_ip(-2,0)
        if not (bullet_loc['x'] < 0 or bullet_loc['y'] < 0 or bullet_loc['x'] > screen_width or bullet_loc['y'] > screen_width):
            pygame.draw.rect(screen,(255,255,255),bullet_name)
        else:
            bullets.remove(bullet)

while running:

    screen.fill((0,0,0))

    pygame.draw.rect(screen,(0,0,255),player)
    pygame.draw.rect(screen,(0,255,0),goal)

    if player.colliderect(goal):
        new_x = random.randrange(25,screen_width-25)
        new_y = random.randrange(25,screen_height-25)
        goal.center = (new_x,new_y)

    key = pygame.key.get_pressed()
    if key[pygame.K_a] == True:
        player.move_ip(-1,0)
        direction = 'L'
    elif key[pygame.K_d] == True:
        player.move_ip(1,0)
        direction = 'R'
    elif key[pygame.K_w] == True:
        player.move_ip(0,-1)
        direction = 'U'
    elif key[pygame.K_s] == True:
        player.move_ip(0,1)
        direction = 'D'
    current_time = time.time()
    if key[pygame.K_SPACE] == True and (current_time - bullet_created) > 0.5:
        create_bullet(direction,player)
        bullet_created = time.time()

    update_bullets(bullets)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    pygame.display.flip()

pygame.quit()
Editor is loading...
Leave a Comment