August 15, 2010 - Tagged as: python, pygame, django.
Python ile Django’dan sonra pygame’e el attım biraz. Daha yeni başladım ve henüz pygame’in özelliklerinin çok azından yararlanarak birşeyler yapabiliyorum. Aşağıdaki kod ilk yazdığım basit bir çarpışma şeyi(neyi ben de bilmiyorum). İstediğiniz büyüklükte ekrana istediğiniz kadar top ekleyip onları rastgele hızlarda bir yerlere yolluyor ve çarpıştırıyor.
import pygame, random, math
= 500, 500 #ekran buyuklugu
screenx, screeny class Ball:
def __init__(self, surface):
self.surface = surface
self.radius = 10
self.color = (255, 255, 255)
self.x = random.randint(0+self.radius, screenx-self.radius)
self.y = random.randint(0+self.radius, screeny-self.radius)
self.vx = random.randint(1, 10)
self.vy = random.randint(1, 10)
def move(self, time_passed):
if self.x >= screenx-self.radius or self.x <= self.radius:
self.vx *= -1
if self.y >= screeny-self.radius or self.y <= self.radius:
self.vy *= -1
self.x += self.vx * time_passed
self.y += self.vy * time_passed
def draw(self):
self.surface, self.color, (self.x, self.y),
pygame.draw.circle(self.radius)
pygame.init()= pygame.time.Clock()
clock = pygame.display.set_mode((screenx, screeny), 0, 32)
screen = True
running = []
balls for i in range(1, 21): #top sayisi
balls.append(Ball(screen))def CollisionDetect(b1):
for b2 in balls:
if b1 is not b2:
range = math.sqrt((b1.x - b2.x)**2 + (b1.y - b2.y)**2)
if range < (b1.radius + b2.radius):
= b2.vx, b1.vx
b1.vx, b2.vx = b2.vy, b1.vy
b1.vy, b2.vy #b1.move(); b2.move()
while running:
for event in pygame.event.get():
#print event
if event.type == pygame.QUIT:
= False
running
= clock.tick(50)
time_passed 0, 0, 0))
screen.fill((for b in balls:
b.draw()
CollisionDetect(b)
b.move(time_passed)
pygame.display.flip()
Onun dışında kendime bir okunacaklar listesi hazırladım, ilk fırsatta okuyacaklarım: