У меня была такая же проблема, когда я попытался сделать игру в стиле сбоку и собирать. При дальнейшем осмотре я нашел способ добиться этого с помощью двух изображений. Ниже приведен код, который я использовал.
Сначала создайте две переменные display_width
и display_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_x
и img_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
В этом примере изображение перемещается по горизонтали, если вы хотите, чтобы вертикальное перемещение просто изменялось вокруг переменных по своему вкусу. Надеюсь, это ответит на ваш вопрос, если что-то работает неправильно или есть какие-либо опечатки, не стесняйтесь комментировать ниже. Я знаю, что этот вопрос был опубликован примерно год назад, так что извините, если уже слишком поздно.
Удачи, JC
person
jcarder
schedule
20.06.2016