0
처음으로 파이 게임에서 뭔가를 만드는 ... 나는 이미지의 여러 인스턴스를 생성하고 맨 아래로 스크롤하려고합니다. 웬일인지 원래의 imagestays는 다른 imagemove 동안 예상대로 넣어. 나는 또한 화면의 맨 왼쪽 1/4 또는 가장 오른쪽 부분에 이미지의 인스턴스를 생성하려고 시도하고있다. 내 이미지는 왼쪽에만 나타납니다. 내 gameDisplay는 1150x500 픽셀입니다. 내 코드를 수정할 수있는 방법에 대한 정보는 크게 감사하겠습니다.파이 게임에서 이미지 블 리팅
여기 내가 사용하는 방법입니다 :
def gameHighScore():
points=0
guesses=0
time=0
balloons= pygame.image.load("balloons.png")
objects=[]
for i in range (4):
xpos= random.randrange(0, round(display_width/4)) or random.randrange(round((3/4)*display_width), display_width)
#object generated at start height 400, random xpos with a speed -i*2
o=Balloons(balloons, 400, xpos ,-i*2)
objects.append(o)
gamehs=True
while gamehs:
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
quit()
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_SPACE: # space for continue
paused=False
gameTimer.start()
elif event.key==pygame.K_q: #q for quit
pygame.quit()
quit()
for o in objects:
gameDisplay.fill(BLACK)
message_to_screen("HIGH SCORE", WHITE, y_displace=-100, size="large")
message_to_screen(" You scored " +str(points) +" points", WHITE, y_displace=0, size="medium")
message_to_screen("in " +str(time) +" after " +str(guesses) +" guesses", WHITE, y_displace=50, size="medium")
button("Play (space bar)", 300,400,250,50, GRAY, BLUE, action ="continue")
button("Quit (Q)", 600,400,250,50, GRAY, BLUE, action ="quit")
for o in objects:
o.move()
gameDisplay.blit(o.image, o.pos)
pygame.display.update()
clock.tick(30) #static screen, no need for high fps
그리고 여기에 객체를 이동 클래스의 :
class Balloons:
def __init__(self, image, height, xpos, speed):
self.speed=speed
self.image=image
self.xpos=xpos
self.pos=image.get_rect().move(xpos, height) #momve(x,y) change x to random
def move(self):
self.pos=self.pos.move(0, self.speed)
if self.pos.top< -200:
self.pos.bottom=800
파이썬 3 인 경우'3/4'는 0으로 평가되지 않습니다 (클래스가 상속하지 않기 때문에 믿을 수 있습니다). 목적). 또한, if-else-statement를하는 것이 더 명확하지 않습니까? 그런 다음 값을 두 번 지정할 필요가 없습니다. 그것은 단지 의견의 문제 일지 모르지만. 그렇지 않으면 위대한 대답, +1 –