8.5 객체지향으로 개발하기 1
import random
import math
from pong_actors import Score, Ball, Bar
# 게임화면
TITLE = 'pong'
WIDTH = 800
HEIGHT = 600
# 반사판
BAR_H = 100
BAR_W = 15
GAP_FROM_SCR = 20
# 볼
BALL_RADIUS = 10
VELOCITY = 3
SPEED_UP = 1.05
# 점수
FINAL_SCORE = 11
# 주인공 객체들 생성
score = Score(FINAL_SCORE)
ball = Ball((WIDTH/2, HEIGHT/2), VELOCITY, score)
bar1 = Bar(GAP_FROM_SCR, HEIGHT/2 - BAR_H/2, ball)
bar2 = Bar(WIDTH - BAR_W - GAP_FROM_SCR, HEIGHT/2 - BAR_H/2, ball)
bars = [bar1, bar2]
def draw():
screen.clear()
screen.draw.line((WIDTH/2, GAP_FROM_SCR), (WIDTH/2, HEIGHT - GAP_FROM_SCR), \
color='grey') # 중심선
if not score.is_game_over():
ball.draw()
bar1.draw()
bar2.draw()
score.draw()
def update():
# 반사판
if keyboard.a:
bar1.up()
if keyboard.z:
bar1.down()
if keyboard.up:
bar2.up()
if keyboard.down:
bar2.down()
for bar in bars:
bar.collide_ball()
# 게임시작 조건
if score.is_game_over():
if keyboard.space:
score.reset()
ball.reset()
else:
# 공
ball.move()
ball.collide_wall()Last updated