안녕하세요 저는 일반적으로 코딩에 새로운 경험이 있으며 유창함을 향상시키기 위해 노력하고 있습니다. 그게 내가 시각적 인 것을 원했기 때문에 파이 게임으로 테이블 게임을 시작한 이유입니다. 그래서 나는 벽에서 튀어 오르고 있지만 패들 충돌 핵심을 얻는 데 어려움을 겪고있는 패들과 공을 가지고 탁구 디자인을 만들었습니다. 내 외륜과 볼을 정렬 할 때 외륜을 인쇄하므로 항상 감지합니다. 어떻게하면 감도를 높이고 외륜에 바운스를 추가 할 수 있습니까? 다시 한번 나는 아주 새로운 오전 그래서 코드를 쉽게 만들기에 구문 수정이나 조언을 읽거나 좋은 것 간소화하기 :파이 게임에서 프로그래밍 가능한 탁구 게임 패들 충돌이 처음입니까?
import sys, pygame, pygame.mixer, random, math
from pygame.locals import *
pygame.init()
screen_size = width, height = 600, 400
black = 0,0,0
red = (200,0,0)
blue = 0,0,200
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption("PONG WANNABE")
screen.fill(black)
paddle = pygame.image.load("paddle.png")
divider = pygame.image.load("divider.png")
def addVectors((angle1, length1), (angle2, length2)):
x = math.sin(angle1) * length1 + math.sin(angle2) * length2
y = math.cos(angle1) * length1 + math.cos(angle2) * length2
length = math.hypot(x, y)
angle = 0.5 * math.pi - math.atan2(y, x)
return (angle, length)
class Ball:
def __init__(self):
self.size = 8
self.x = width/2
self.y = height/2
self.colour = (255, 255, 255)
self.thickness = 0
self.speed = 0.05
self.angle = math.pi/2
def display(self):
pygame.draw.circle(screen,self.colour,int(self.x),int(self.y)),
self.size,self.thickness)
def move(self):
self.x += math.sin(self.angle) * self.speed
self.y -= math.cos(self.angle) * self.speed
def bounce(self):
if self.x > width - self.size:
self.x = 2*(width - self.size) - self.x
self.angle = - self.angle
elif self.x < self.size:
self.x = 2*self.size - self.x
self.angle = - self.angle
if self.y > height - self.size:
self.y = 2*(height - self.size) - self.y
self.angle = math.pi - self.angle
elif self.y < self.size:
self.y = 2*self.size - self.y
self.angle = math.pi - self.angle
ball = Ball()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.display.quit()
sys.exit()
elif event.type == KEYDOWN and event.key == K_SPACE:
black = blue
elif event.type == KEYUP and event.key == K_SPACE:
black = 0,0,0
screen.fill(black)
mx,my = pygame.mouse.get_pos()
screen.blit(divider,(width/2, 0))
screen.blit(paddle,(10,my-35))
screen.blit(paddle,(width-20,365-my))
ball.move()
if ball.x < my + 73 and ball.x > my:
print "Paddle"
ball.bounce()
ball.display()
pygame.display.flip()