Друзья, нужна помощь, писал уже... Будет игра типа супер марио. Вопрос, как сделать так, чтобы персонаж не просто прыгал, а запрыгивал на вышестоящий блок и при этом у него чтобы сохранялась способность прыгать?
Вот код с комментариями. Заранее спасибо!
from pygame import*
init()
vin=display.set_mode((1366,768),FULLSCREEN) #Задаем размер экрана и полноэкранный режим
back=image.load('backland.jpeg') #Задний фон
borders=image.load('borders.png') #Кирпичная поверхность
bricks=image.load('bricks.png') #Кирпичики в воздухе
kfront=image.load('front.png') #Вид персонажа - стоит неподвижно
kright=image.load('right.png') #Вид персонажа - смотрит вправо
kleft=image.load('left.png') #Вид персонажа - смотрит влево
bx=by=0 #Координаты фоновой картинки
kx,ky=550,465 #Координаты персонажа
brx,bry=565,400 #Координаты кирпичиков
run=True #Включает и выключает цикл
jump=False #Активируется при прыжке
jc=60
jumpcount=jc
def jumping():#Функция прыжка
global keys,jump,jumpcount,jc,ky
if keys[K_SPACE]:#Если нажат пробел, то активируется прыжок
jump=True
if jump:
if jumpcount>=-jc:
ky-=jumpcount/2
jumpcount-=4
else:
jumpcount=jc
jump=False
#Основной цикл игры
while run:
for i in event.get():#Выхываем список событий
if i.type==QUIT:#При нажатии на крестик - выход
quit()
keys=key.get_pressed()#Вызываем список клавиш
if keys[K_ESCAPE]:#Если нажат esc, выход из игры
quit()
vin.blit(back,(0,0))#Рисуем задний фон
vin.blit(borders,(bx,by))#Рисуем поверхность
vin.blit(kfront,(kx,ky))#Рисуем персонажа
jumping()#Вызываем прыжок
#Действия при нажатии кнопок вправо влево
if keys[K_RIGHT]:
vin.blit(kright,(kx,ky))
bx-=10
brx-=10
if keys[K_LEFT]:
vin.blit(kleft,(kx,ky))
bx+=10
brx+=10
vin.blit(bricks,(brx,bry))#Рисуем кирпичики
display.update()