2015-02-04 2 views
2

이미지가 주어지면 어떻게 그 이미지를 화면에서 "감쌀"수 있습니까?화면 가장자리 파이 게임 주위에 깜박임 blot

예를 들어, 이미지의 rect 스타일 객체를 화면 가장자리 아래에 설정하면 보이지 않는 절반이 화면 상단에 blit됩니다.

imageRect.top=800 #Below screen edge 
screen.blit(image,imageRect) #Blit on both sides of the screen 

어떤 방식 으로든 가능합니까 (파이 게임)?

+0

어쨌든 이것이 가능할 수 있습니다. – user2592835

답변

1

사이드 래핑을 시도하고 스타일 게임을 수집 할 때 동일한 문제가 발생했습니다. 추가 검사에서 두 가지 이미지로이 묘기를 성취 할 수있는 방법을 발견했습니다. 아래는 내가 사용한 코드입니다.

먼저 두 개의 변수를 만듭니다. display_widthdisplay_height 이것은 게임 창의 너비와 높이입니다.

display_width = [width of window] 
display_height = [height of window] 

다음으로 첫 번째와 두 번째 이미지의 'x'위치에 두 개의 변수를 추가로 만듭니다. 그런 다음 이미지 너비를 픽셀 단위로 obj_width 변수로 선언하십시오.

img_x = ['x' position of first image] 
img2_x = ['x' position of second image, works best with same 'x' as 'img_x' above] 
obj_width = [width of img] 

이제 img_ximg_y를 취하는 이미지 기능을 만든다. img_x은 로컬 변수이며 다른 하나와 혼동하지 마십시오. img_x.

def img(img_x,img_y): 
    screen.blit([image file here], (img_x,img_y)) 

다음은 프로그램에 사용 된 조건입니다. 자유롭게 복사하여 붙여 넣기하십시오. 당신이 수직 이동 그냥 원하는대로 변수 주위에 변경하려는 경우

if img_x + img_width > display_width: 
    img(img2_x, display_height * 0.8) 
    img2_x = img_x - display_width 
if img_x < 0: 
    img(img2_x, display_height * 0.8) 
    img2_x = img_x + display_width 

if img2_x + bag_width > display_width: 
    img(img_x, [where you want the image to appear, ex. display_height * 0.8]) 
    img_x = img2_x - display_width 
if img2_x < 0: 
    img(img_x, display_height * 0.8) #same as above 
    img_x = img2_x + display_width 

이 예제에서는 이미지, 수평 이동합니다. 뭔가 올바르게 작동하지 않거나 오타가 있으면 아래에서 의견을 말할 수 있습니다. 나는이 질문이 대략 1 년 전에 게시되었음을 안다. 너무 늦어서 미안해.

행운을 빕니다. JC

1

아무 것도 내장되어 있다고 생각하지 않습니다. 이미지의 수직 및 수평 구분이 어디인지 파악하고 여러 블리트를 수행하십시오.