Skip to content

Bs #165

@kemal234

Description

@kemal234

import pygame
import sys
import math
import random

Ekran boyutu

WIDTH, HEIGHT = 800, 600

Renkler

WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)

Pygame başlat

pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Mini Brawl Stars")
clock = pygame.time.Clock()

Karakter sınıfı

class Player(pygame.sprite.Sprite):
def init(self):
super().init()
self.image = pygame.Surface((40, 40))
self.image.fill(GREEN)
self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT//2))
self.speed = 5
self.health = 100

def update(self, keys):
    dx = dy = 0
    if keys[pygame.K_w]: dy = -self.speed
    if keys[pygame.K_s]: dy = self.speed
    if keys[pygame.K_a]: dx = -self.speed
    if keys[pygame.K_d]: dx = self.speed
    self.rect.x += dx
    self.rect.y += dy

Mermi sınıfı

class Bullet(pygame.sprite.Sprite):
def init(self, pos, dir):
super().init()
self.image = pygame.Surface((10, 10))
self.image.fill(RED)
self.rect = self.image.get_rect(center=pos)
self.velocity = 10
self.dir = dir

def update(self):
    self.rect.x += self.velocity * math.cos(self.dir)
    self.rect.y += self.velocity * math.sin(self.dir)
    if not screen.get_rect().collidepoint(self.rect.center):
        self.kill()

Düşman sınıfı

class Enemy(pygame.sprite.Sprite):
def init(self):
super().init()
self.image = pygame.Surface((30, 30))
self.image.fill((0, 0, 255))
self.rect = self.image.get_rect(center=(random.randint(0, WIDTH), random.randint(0, HEIGHT)))
self.direction = random.choice([(1,0), (-1,0), (0,1), (0,-1)])
self.speed = 2

def update(self):
    self.rect.x += self.direction[0] * self.speed
    self.rect.y += self.direction[1] * self.speed
    if not screen.get_rect().contains(self.rect):
        self.direction = (-self.direction[0], -self.direction[1])

  • Gruplar

player = Player()
player_group = pygame.sprite.Group(player)
bullet_group = pygame.sprite.Group()
enemy_group = pygame.sprite.Group()

for _ in range(5):
enemy = Enemy()
enemy_group.add(enemy)

Oyun döngüsü

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

    # Ateş etme
    if event.type == pygame.MOUSEBUTTONDOWN:
        mx, my = pygame.mouse.get_pos()
        dx = mx - player.rect.centerx
        dy = my - player.rect.centery
        angle = math.atan2(dy, dx)
        bullet = Bullet(player.rect.center, angle)
        bullet_group.add(bullet)

keys = pygame.key.get_pressed()
player.update(keys)
bullet_group.update()
enemy_group.update()

# Mermi ve düşman çarpışması
for bullet in bullet_group:
    hit_enemies = pygame.sprite.spritecollide(bullet, enemy_group, True)
    if hit_enemies:
        bullet.kill()

# Düşman ve oyuncu çarpışması
if pygame.sprite.spritecollide(player, enemy_group, False):
    player.health -= 1
    if player.health <= 0:
        print("GAME OVER")
        pygame.quit()
        sys.exit()

# Çizim
screen.fill(WHITE)
player_group.draw(screen)
bullet_group.draw(screen)
enemy_group.draw(screen)

# Can barı
pygame.draw.rect(screen, RED, (10, 10, 100, 10))
pygame.draw.rect(screen, GREEN, (10, 10, player.health, 10))

pygame.display.flip()
clock.tick(60)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions