아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
엄격한타조202
엄격한타조20220.11.22
파이게임 공이 화면으로 안넘어 가게

실행을 시켜보면 공이 방향키로 움직일수 있는데요...(아직은 미완성)


저 공이 계속 화면으로 넘어가는걸 막을 수 있을까요?


%%code%%

import pygame


pygame.init()

x = 300

y = 400

screen = pygame.display.set_mode((y, x), 0, 32)

pygame.display.set_caption("ball")

WHITE = (255, 255, 255)

ball = pygame.image.load('ball.png')

ballx = 150

bally = 100

ballSize = ball.get_rect().size

ballWidth = ballSize[0]

ballHeight = ballSize[1]

ballXpos = (y / 2) - (ballWidth / 2)

ballYpos = x - ballHeight



done=False


while not done:

for event in pygame.event.get():

if event.type == pygame.QUIT:

done=True

elif event.type == pygame.KEYDOWN:

if event.key == pygame.K_RIGHT:

ballx+=5

elif event.key == pygame.K_LEFT:

ballx-=5

elif event.key == pygame.K_UP:

bally-=5

elif event.key == pygame.K_DOWN:

bally+=5

screen.fill(WHITE)

screen.blit(ball, (ballx, bally))

pygame.display.flip()

  • elif event.key == pygame.K_DOWN: bally+=5 ((( ))) ((( 여기에 화면크기를 넘어가는 x,y값일경우 해당값을 고정하는 if 문을 넣으면 됩니다 ))) screen.fill(WHITE) screen.blit(ball, (ballx, bally))

    위에 적었듯이 저 부분에 if 문을 사용해서 ballx 와 bally 의 좌표를 조정해주면됩니다

    예를 들어 if ballx > 40: ballx=40 이런식으로 하시면 됩니다

    또한 -값도 나올수 있으니 if ballx < 1: ballx=1 이렇게 음수값 나오는것에 대해서도 대비를 해줘야 합니다

    이걸 토대로 한번 다시 코딩 시도해보세요^^