저는이 핀볼 게임 프로그램을 수업에 배정 해주었습니다. 핀볼의 움직임과 충돌을 고치려고 노력했습니다.핀볼의 이동 방향을 수정하여 충돌시키는 법
첫 번째 문제는 사용자가 속도로 설정 한 방향에 관계없이 공이 특정 각도에서만 움직이는 것입니다.
내 메모, 강의 슬라이드 및 토론 자료에 따르면 왜 작동하지 않아야하는지 전혀 알지 못합니다. 괜찮을 것입니다. 왜 아무도 그것이 작동하지 않는 이유를 알고 있습니까? 나는 주변을 둘러 보았고 확실한 답을 찾을 수 없었다. 어떤 도움을 주시면 감사하겠습니다. 나는 뒤죽박죽이다. (
작동하지 않는다는 것은 사용자가 핀볼을 어느 방향으로 가도 상관없이 한 방향으로 만 움직인다는 것을 의미한다 (예 : 사용자가 핀볼을 왼쪽으로 설정하고, 핀볼이 오른쪽으로 가고, 사용자 집합 여기
http://mcsp.wartburg.edu/zelle/python/graphics/graphics/index.html가 충돌 코드 : 핀볼는 벽이나 대상의 충돌되지 않으며, 또한) 등 을
그래픽 graphics.py이며, 핀볼은 바로 간다, 최대 이동합니다. (속도 반전과 함께 게임 보드의 오른쪽 벽에만 계속 충돌 함) :
def checkHit(ball,target,dispX,dispY,VelX,VelY,hit): ###pulled the definition out of the loop but keeping it here for easier reference
center = ball.getCenter() ###defines the center of the pinball as a point
hit = 0 ###used for differentiating between objects collided with
if center.getX() + 1 <= 45 and center.getX() + 1 + dispX > 45: ####if the pinball collides with the right wall of the board
VelX = VelX *(-1) ###velocity in the x direction reverses
hit = 0 ###did not collide with a target
for j in range(1000):####1000 frames (ball isn't expected to last long in the air, only a couple seconds)
vy = vy - 9.8 ###effect of gravity
dx = vx/math.sqrt(vx**2 + vy**2) ###speed in x direction over time
dy = vy/math.sqrt(vx**2 + vy**2) ###speed in y direction over time
checkHit(pinball,target_front1,dx,dy,vx,vy,0) ####runs function each frame for collision testing
pinball.move(dx , dy) ###moves pinball
문제의 문맥에서 "작동하지 않습니다"를 정의하십시오. –
"강의 노트"에 대해 언급하셨습니다. 이 숙제가 있니? 그렇다면 태그를 붙이십시오. – mgilson
일반적으로 전체 코드를 게시하는 것을 피하십시오 (특히 필요한 모듈 인'graphics'에 액세스 할 수없는 경우). 가능한 한 작은 코드 블록으로 수정하십시오. 우리가 당신을 도울 수있게 도와 주며, 당신 스스로 문제를 이해하게합니다. – TankorSmash