Hướng dẫn how to jump in python - làm thế nào để nhảy trong con trăn

Đăng ký công nghệ với Tim!

Thiết lập ranh giới

Trong hướng dẫn cuối cùng, chúng tôi đã tạo một hình chữ nhật mà chúng tôi có thể di chuyển xung quanh màn hình bằng các phím mũi tên. Tuy nhiên, khi chúng ta đi đến cuối màn hình, hình chữ nhật vẫn được phép tiếp tục di chuyển. Để dừng điều này, chúng ta cần thiết lập một số ranh giới và kiểm tra xem hình chữ nhật của chúng ta có nằm trong chúng trước khi di chuyển lại không.

Để làm điều này, chúng tôi chỉ có thể kiểm tra tọa độ X và Y của hình chữ nhật so với kích thước của màn hình. Khi chúng ta làm điều này, chúng ta cần nhớ rằng khi chúng ta vẽ một cái gì đó trong pygame, chúng ta rút ra từ góc trên cùng bên trái của đối tượng. Điều này có nghĩa là góc trên cùng bên trái sẽ là các giá trị X và Y của chúng tôi trong khi góc trên bên phải sẽ là (chiều rộng x +, y) và phía dưới bên trái sẽ là (chiều cao x, y +).

import pygame
pygame.init()

win = pygame.display.set_mode((500,500))
pygame.display.set_caption("First Game")

x = 50
y = 50
width = 40
height = 60
vel = 5

run = True

while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()
    
    if keys[pygame.K_LEFT] and x > vel:  # Making sure the top left position of our character is greater than our vel so we never move off the screen.
        x -= vel

    if keys[pygame.K_RIGHT] and x < 500 - vel - width:  # Making sure the top right corner of our character is less than the screen width - its width 
        x += vel

    if keys[pygame.K_UP] and y > vel:  # Same principles apply for the y coordinate
        y -= vel

    if keys[pygame.K_DOWN] and y < 500 - height - vel:
        y += vel

    
    win.fill((0,0,0))
    pygame.draw.rect(win, (255,0,0), (x, y, width, height))   
    pygame.display.update() 
    
pygame.quit()

Bây giờ nhân vật của chúng tôi không thể di chuyển khỏi màn hình!

Nhảy

Để nhảy, chúng ta cần thiết lập một vài biến.

# These go near the top of your program, outside the while loop
isJump = False
jumpCount = 10

Bây giờ chúng tôi sẽ kiểm tra xem người dùng có chạm vào thanh không gian không. Nếu họ làm, chúng ta sẽ thay đổi Isjump thành True và bắt đầu nhảy.

# Goes inside the while loop, under event for moving down
if keys[pygame.K_SPACE]:
    isJump = True

Bây giờ khi chúng tôi đang nhảy, chúng tôi không muốn cho phép người dùng nhảy lại hoặc có thể di chuyển lên xuống. Để không cho phép người dùng làm điều này, chúng tôi sẽ thêm một câu lệnh khác.

import pygame
pygame.init()

win = pygame.display.set_mode((500,500))
pygame.display.set_caption("First Game")

x = 50
y = 50
width = 40
height = 60
vel = 5

isJump = False
jumpCount = 10

run = True

while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()
    
    if keys[pygame.K_LEFT] and x > vel:  # Making sure the top left position of our character is greater than our vel so we never move off the screen.
        x -= vel

    if keys[pygame.K_RIGHT] and x < 500 - vel - width:  # Making sure the top right corner of our character is less than the screen width - its width 
        x += vel
        
    if not(isJump): # Checks is user is not jumping
        if keys[pygame.K_UP] and y > vel:  # Same principles apply for the y coordinate
            y -= vel

        if keys[pygame.K_DOWN] and y < 500 - height - vel:
            y += vel

        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        # This is what will happen if we are jumping

    
    win.fill((0,0,0))
    pygame.draw.rect(win, (255,0,0), (x, y, width, height))   
    pygame.display.update() 
    
pygame.quit()

Bây giờ chúng tôi sẽ bắt đầu viết mã để làm cho nhân vật nhảy. Chúng tôi sẽ thực hiện một công thức bậc hai cho việc nhảy của chúng tôi. Điều này là do lý tưởng nhất là chúng tôi muốn nhảy của chúng tôi trở nên mượt mà và trông giống như thế này:

Hướng dẫn how to jump in python - làm thế nào để nhảy trong con trăn

Bên trong người khác & nbsp; chúng tôi sẽ dán như sau.else we will paste the following.

if jumpCount >= -10:
    y -= (jumpCount * abs(jumpCount)) * 0.5
    jumpCount -= 1
else: # This will execute if our jump is finished
    jumpCount = 10
    isJump = False
    # Resetting our Variables

Và bây giờ nhân vật của chúng ta có thể nhảy!

*Nếu bạn bị nhầm lẫn bởi điều này, vui lòng tham khảo video bắt đầu từ 11: 00.*

Lưu ý: Tôi sử dụng ABS () sử dụng thay vì ** chỉ để loại bỏ sự cần thiết của biến NEG được thấy trong video. Cả hai phiên bản của mã này hoạt động giống nhau. I use abs() use instead of ** just to eliminate the need for the neg variable seen in the video. Both versions of this code work the same.

Mã đầy đủ

Đây là những gì mã đầy đủ của bạn nên trông như thế nào.

import pygame
pygame.init()

win = pygame.display.set_mode((500,500))
pygame.display.set_caption("First Game")

x = 50
y = 50
width = 40
height = 60
vel = 5

isJump = False
jumpCount = 10

run = True

while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()
    
    if keys[pygame.K_LEFT] and x > vel: 
        x -= vel

    if keys[pygame.K_RIGHT] and x < 500 - vel - width:  
        x += vel
        
    if not(isJump): 
        if keys[pygame.K_UP] and y > vel:
            y -= vel

        if keys[pygame.K_DOWN] and y < 500 - height - vel:
            y += vel

        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            y -= (jumpCount * abs(jumpCount)) * 0.5
            jumpCount -= 1
        else: 
            jumpCount = 10
            isJump = False
    
    win.fill((0,0,0))
    pygame.draw.rect(win, (255,0,0), (x, y, width, height))   
    pygame.display.update() 
    
pygame.quit()

Có một chức năng nhảy trong Python?

Các câu lệnh Jump Jump (Break, Contin và Pass) In Jump In Jump trong Python được sử dụng để thay đổi luồng của một vòng lặp như bạn muốn bỏ qua một phần của vòng lặp hoặc chấm dứt một vòng lặp.Jump statements in python are used to alter the flow of a loop like you want to skip a part of a loop or terminate a loop.

Làm thế nào để bạn sử dụng chức năng nhảy trong Python?

Các câu lệnh Jump được sử dụng để bỏ qua, nhảy hoặc thoát khỏi chương trình đang chạy bên trong từ vòng lặp ở điều kiện cụ thể.Chúng được sử dụng chủ yếu để ngắt các câu lệnh và vòng lặp.Báo cáo nhảy là phá vỡ, tiếp tục, trả lại và thoát ra.. They are used mainly to interrupt switch statements and loops. Jump statements are break, continue, return, and exit statement.

Làm thế nào để bạn mô phỏng một bước nhảy trong pygame?

Làm thế nào để bạn làm cho các đối tượng nhảy trong pygame?Bạn bắt đầu một bước nhảy bằng cách sử dụng vũ trụ (đặt một biến) và kết thúc nó bằng cách chạm vào mặt đất.Keydown (pygame. Keydown) bắt đầu một bước nhảy, không phải nếu được đẩy.begin a jump using the spacebar (which sets a variable) and end it by touching the ground. keydown (pygame. KEYDOWN) initiates a leap, not if pushed.