import pygame
import random
#Настройки окна
WIDTH = 608
HEIGHT = 416
FPS = 60
#Инициализация
pygame.init()
screen = pygame.display.set_mode((WIDTH,HEIGHT))
clock = pygame.time.Clock()
#Время
moving = ''
running = True
#block1
block = pygame.Rect(0, 0, 32, 32)
blockImg = pygame.image.load('block.png')
block = pygame.Rect(500, 250, 32, 32)
blockImg = pygame.image.load('block.png')
#block2
block2 = pygame.Rect(0, 0, 32, 32)
block2Img = pygame.image.load('block2.png')
#block3
block3 = pygame.Rect(0, 0, 32, 32)
block3Img = pygame.image.load('block3.png')
#пол
SKY = pygame.Rect(0, 0, 608, 343)
SKYImg = pygame.image.load('sky.png')
#пол
bottom = pygame.Rect(0, 343, 608, 73)
bottomImg = pygame.image.load('Screenshot69.png')
#MARIO
mario = pygame.Rect(40, 250, 26, 34)
marioImg = pygame.image.load("mario.png")
#Падение
GRAVITY = 0.3
y_change = 0
#Прыжок
isJump = False
hopCount = 0
moving = ''
running = True
while running:
for i in pygame.event.get():
if i.type == pygame.QUIT:
running = False
if i.type == pygame.KEYDOWN:
if i.key == pygame.K_LEFT:
moving = 'LEFT'
if i.key == pygame.K_RIGHT:
moving = 'RIGHT'
if i.key == pygame.K_UP:
moving = 'UP'
if i.key == pygame.K_DOWN:
moving = 'DOWN'
if i.key == pygame.K_SPACE:
isJump = True
hopCount = 0
if i.type == pygame.KEYUP:
if i.key == pygame.K_LEFT or i.key == pygame.K_RIGHT or i.key == pygame.K_UP or i.key == pygame.K_DOWN:
moving = 'STOP'
# Передвижение персонажа
if moving == 'LEFT' and mario.left > 0:
mario.left -= 5
if moving == 'RIGHT' and mario.right < WIDTH:
mario.left += 5
if moving == 'UP' and mario.top > 0:
mario.top -= 5
if moving == 'DOWN' and mario.bottom < HEIGHT:
mario.top += 5
if isJump:
hopCount += 1
mario.top -=20
if hopCount == 5:
isJump = False
y_change = 0
else:
y_change += GRAVITY
mario.top += y_change
#пол и mario
screen.blit(SKYImg,(SKY.left, SKY.top))
screen.blit(marioImg, (mario.left,mario.top))
screen.blit(blockImg,(block.left, block.top))
screen.blit(blockImg,(block.left, block.top))
screen.blit(block2Img,(block2.left, block2.top))
screen.blit(block3Img,(block3.left, block3.top))
screen.blit(bottomImg,(bottom.left, bottom.top))
clock.tick(FPS)
pygame.display.update()
pygame.quit()
Так а проблема в чем именно?
Похожие темы:
Как сделать твердый объект - #2 от пользователя AlexP
Не работает отталкивание мяча от верхней и нижней границы - #2 от пользователя AlexP
нужно сделать так, чтобы марио ходил по полу, а сейчас он проваливается под пол
Ну так надо проверять координаты, не двигать дальше пола.
По ссылкам выше похожее делается.
Относительно марио, изжеваная тема.
Есть статья на хабре: Пишем платформер на Python
Там же ссылка на релиз
И дополнительно можно посмотреть здесь: Super Mario Python Beta