import pygame
import random
import sys
pygame.init()
WIDTH = 800
HEIGHT = 600
RED = (255,0,0)
BLUE = (0,0,255)
YELLOW = (255,255,0)
BACKGROUND_COLOR = (139,35,35)
player_size = 40
player_pos = [WIDTH/2, HEIGHT-2*player_size]
enemy_size = 45
enemy_pos = [random.randint(0,WIDTH-enemy_size), 0]
enemy_list = [enemy_pos]
SPEED = 10
screen = pygame.display.set_mode((WIDTH, HEIGHT))
game_over = False
score = 0
clock = pygame.time.Clock()
myFont = pygame.font.SysFont("monospace", 35)
def set_level(score, SPEED):
if score < 20:
SPEED = 5
elif score < 40:
SPEED = 8
elif score < 60:
SPEED = 12
else:
SPEED = 15
return SPEED
# SPEED = score/5 + 1
def drop_enemies(enemy_list):
delay = random.random()
if len(enemy_list) < 10 and delay < 0.1:
x_pos = random.randint(0,WIDTH-enemy_size)
y_pos = 0
enemy_list.append([x_pos, y_pos])
def draw_enemies(enemy_list):
for enemy_pos in enemy_list:
pygame.draw.rect(screen, BLUE, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
def update_enemy_positions(enemy_list, score):
for idx, enemy_pos in enumerate(enemy_list):
if enemy_pos[1] >= 0 and enemy_pos[1] < HEIGHT:
enemy_pos[1] += SPEED
else:
enemy_list.pop(idx)
score += 1
return score
def collision_check(enemy_list, player_pos):
for enemy_pos in enemy_list:
if detect_collision(enemy_pos, player_pos):
return True
return False
def detect_collision(player_pos, enemy_pos):
p_x = player_pos[0]
p_y = player_pos[1]
e_x = enemy_pos[0]
e_y = enemy_pos[1]
if (e_x >= p_x and e_x < (p_x + player_size)) or (p_x >= e_x and p_x < (e_x+enemy_size)):
if (e_y >= p_y and e_y < (p_y + player_size)) or (p_y >= e_y and p_y < (e_y+enemy_size)):
return True
return False
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
x = player_pos[0]
y = player_pos[1]
if event.key == pygame.K_LEFT:
x -= player_size
elif event.key == pygame.K_RIGHT:
x += player_size
player_pos = [x,y]
screen.fill(BACKGROUND_COLOR)
drop_enemies(enemy_list)
score = update_enemy_positions(enemy_list, score)
SPEED = set_level(score, SPEED)
text = "Puan:" + str(score)
label = myFont.render(text, 1, YELLOW)
screen.blit(label, (WIDTH-200, HEIGHT-40))
if collision_check(enemy_list, player_pos):
game_over = True
break
draw_enemies(enemy_list)
pygame.draw.rect(screen, RED, (player_pos[0], player_pos[1], player_size, player_size))
clock.tick(30)
pygame.display.update()Kodlar bu şekilde. Oyunun amacı üstten düşen kutucuklardan kaçmak .Oyun bittiği zaman ekranda "Oyunu Kaybettin" ve alt satırda da "Skor = x" gibi bir şey çıkmasını istiyorum yardımcı olabilecek kimse varmı acaba?
Python Küçük Bir Ekleme
5
●297
- 05-07-2019, 00:20:24Herkese merhabalar. Çok küçük bir fikre ihtiyacım var. Şuan bir oyun yazmaya çalışıyorum youtube üzerinden giderek ancak istediğim özellikleri tam olarak yapamadım.
- 05-07-2019, 11:23:29
import pygame import random import sys pygame.init() WIDTH = 800 HEIGHT = 600 RED = (255,0,0) BLUE = (0,0,255) YELLOW = (255,255,0) BACKGROUND_COLOR = (139,35,35) player_size = 40 player_pos = [WIDTH/2, HEIGHT-2*player_size] enemy_size = 45 enemy_pos = [random.randint(0,WIDTH-enemy_size), 0] enemy_list = [enemy_pos] SPEED = 10 screen = pygame.display.set_mode((WIDTH, HEIGHT)) game_over = False score = 0 ########## eklenen ############ ending = False ############################### clock = pygame.time.Clock() myFont = pygame.font.SysFont("monospace", 35) def set_level(score, SPEED): if score < 20: SPEED = 5 elif score < 40: SPEED = 8 elif score < 60: SPEED = 12 else: SPEED = 15 return SPEED # SPEED = score/5 + 1 def drop_enemies(enemy_list): delay = random.random() if len(enemy_list) < 10 and delay < 0.1: x_pos = random.randint(0,WIDTH-enemy_size) y_pos = 0 enemy_list.append([x_pos, y_pos]) def draw_enemies(enemy_list): for enemy_pos in enemy_list: pygame.draw.rect(screen, BLUE, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size)) def update_enemy_positions(enemy_list, score): for idx, enemy_pos in enumerate(enemy_list): if enemy_pos[1] >= 0 and enemy_pos[1] < HEIGHT: enemy_pos[1] += SPEED else: enemy_list.pop(idx) score += 1 return score def collision_check(enemy_list, player_pos): for enemy_pos in enemy_list: if detect_collision(enemy_pos, player_pos): return True return False def detect_collision(player_pos, enemy_pos): p_x = player_pos[0] p_y = player_pos[1] e_x = enemy_pos[0] e_y = enemy_pos[1] if (e_x >= p_x and e_x < (p_x + player_size)) or (p_x >= e_x and p_x < (e_x+enemy_size)): if (e_y >= p_y and e_y < (p_y + player_size)) or (p_y >= e_y and p_y < (e_y+enemy_size)): return True return False ############################################ eklenen ########################################## def game_end_screen(score): ending_text = "Oyun Bitti!!!" score_text = "SCORE:" + str(score) ending_text_size = myFont.size(ending_text) score_text_size = myFont.size(score_text) ending_surface = pygame.Surface((WIDTH/2,HEIGHT/2)) ending_surface.fill(RED) ending_surface_rect = ending_surface.get_rect() ending_message = myFont.render(ending_text,False,BLUE) score_table = myFont.render(score_text,False,BLUE) ending_message_pos = (ending_surface_rect.width//2 - ending_text_size[0]//2,ending_surface_rect.height//4) score_table_pos = (ending_surface_rect.width//2 - score_text_size[0]//2,ending_surface_rect.height//4+ending_message_pos[1]) ending_surface.blit(ending_message,ending_message_pos) ending_surface.blit(score_table,score_table_pos) return ending_surface ################################################################################################### while not game_over: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: x = player_pos[0] y = player_pos[1] if event.key == pygame.K_LEFT: x -= player_size elif event.key == pygame.K_RIGHT: x += player_size player_pos = [x,y] screen.fill(BACKGROUND_COLOR) ############################################ eklenen ########################################## if ending: ending_screen_rect = ending_screen.get_rect() pos = (WIDTH//2-ending_screen_rect.width//2,HEIGHT//2-ending_screen_rect.height//2) screen.blit(ending_screen,pos) else: score = update_enemy_positions(enemy_list, score) SPEED = set_level(score, SPEED) drop_enemies(enemy_list) draw_enemies(enemy_list) ################################################################################################# text = "Puan:" + str(score) label = myFont.render(text, 1, YELLOW) ############################################### degistirildi #################################### if not ending: screen.blit(label, (WIDTH-200, HEIGHT-40)) if collision_check(enemy_list, player_pos): ending = True ending_screen = game_end_screen(score) ################################################################################################# pygame.draw.rect(screen, RED, (player_pos[0], player_pos[1], player_size, player_size)) clock.tick(30) pygame.display.update()
bu şekilde deneyebilir misiniz - 05-07-2019, 11:26:09hocam suan onula gidiyorum gider gitmez deneyecegimnozver adlı üyeden alıntı: mesajı görüntüle
Hocam Allah senden razı olsun işime çok yarayacaknozver adlı üyeden alıntı: mesajı görüntüle
- 05-07-2019, 14:09:16hocam suan pcde gosterecegim oyunu eger apk isterse yardim isterimnozver adlı üyeden alıntı: mesajı görüntüle
- 12-07-2019, 14:37:56bu koda şöyle bir kod satırı daha ekledim ama random olarak düşüremiyorum düşmanlarI;nozver adlı üyeden alıntı: mesajı görüntüle

nerde yanlış yapıyorum sizce_
