Untitled
unknown
plain_text
2 years ago
3.6 kB
8
Indexable
import pygame import sys import random # Ekran boyutu SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 # Renkler WHITE = (255, 255, 255) BLACK = (0, 0, 0) # Karakter sınıfı class Character(pygame.sprite.Sprite): def __init__(self, x, y, image_file): super().__init__() self.image = pygame.image.load(image_file).convert_alpha() self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y def update(self): self.rect.x += self.speed_x self.rect.y += self.speed_y if self.rect.x < 0 or self.rect.x > SCREEN_WIDTH - self.rect.width: self.speed_x = -self.speed_x if self.rect.y < 0 or self.rect.y > SCREEN_HEIGHT - self.rect.height: self.speed_y = -self.speed_y # Düşman sınıfı class Enemy(Character): def __init__(self, x, y, image_file): super().__init__(x, y, image_file) self.speed_x = random.choice([-2, 2]) self.speed_y = random.choice([-2, 2]) # Oyuncu sınıfı class Player(Character): def __init__(self, x, y, image_file): super().__init__(x, y, image_file) self.speed_x = 0 self.speed_y = 0 def update(self): keys = pygame.key.get_pressed() if keys[pygame.K_w]: self.speed_y = -2 elif keys[pygame.K_s]: self.speed_y = 2 else: self.speed_y = 0 if keys[pygame.K_a]: self.speed_x = -2 elif keys[pygame.K_d]: self.speed_x = 2 else: self.speed_x = 0 super().update() # Oyun başlat pygame.init() screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("Basit RPG Oyunu") # Karakterler player_images = ["player1.png", "player2.png", "player3.png"] enemy_image = "enemy.png" player = None running = True game_over = False enemy = Enemy(random.randint(0, SCREEN_WIDTH - 50), random.randint(0, SCREEN_HEIGHT - 50), enemy_image) while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if not game_over: if player is None: screen.fill(WHITE) for i, image in enumerate(player_images): img = pygame.image.load(image).convert_alpha() screen.blit(img, (i * (SCREEN_WIDTH // len(player_images)), SCREEN_HEIGHT // 2)) pygame.display.flip() mouse_clicked = pygame.mouse.get_pressed() if mouse_clicked[0]: x, y = pygame.mouse.get_pos() for i in range(len(player_images)): if i * (SCREEN_WIDTH // len(player_images)) < x < (i + 1) * (SCREEN_WIDTH // len(player_images)): player = Player(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2, player_images[i]) break else: screen.fill(WHITE) all_sprites = pygame.sprite.Group() all_sprites.add(player) all_sprites.add(enemy) all_sprites.update() all_sprites.draw(screen) pygame.display.flip() if pygame.sprite.collide_rect(player, enemy): screen.fill(WHITE) font = pygame.font.Font(None, 36) text = font.render("Öldün!", True, BLACK) screen.blit(text, (SCREEN_WIDTH // 2 - text.get_width() // 2, SCREEN_HEIGHT // 2 - text.get_height() // 2)) pygame.display.flip() pygame.time.wait(2000) game_over = True break pygame.quit() sys.exit()
Editor is loading...