微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

逐渐增加背景移动速度

如何解决逐渐增加背景移动速度

我目前拥有它,因此背景以 1.4 速度单位移动,无论该单位是什么或意味着什么,但变量设置为 1.4,我可以将其更改为 10,背景会移动得更快,但我需要它随着时间的推移逐渐增加说每 X 秒 +10,我尝试过像

这样的正常方式
bgX-=bgX+10
bgX2-=bgX2+10

但这不起作用。

我的完整代码如果你想运行它,你需要一个 bg.png 和一个 dababy.png 否则你会得到错误

import pygame
import pygame.freetype
import math

pygame.init()

width=960
height=540
x=(width*0.45)
y=(height*0.6)
bgspeed=30
x_change=0
y_change=0
speed=5
realscore=0

WHITE=(255,255,255)
green=(0,0)
blue=(0,255)




maindisplay=pygame.display.set_mode((width,height))
pygame.display.set_caption("jetpack")

bg=pygame.image.load("bg.png")
bg=pygame.transform.scale(bg,(width,height))
bgX=0
bgX2=bg.get_width()

default="dababy.png"
flying="flying1.png"
current_model="dababy.png"

dababy_jetpack=pygame.image.load(current_model)
dababy_jetpack.convert()
rect=dababy_jetpack.get_rect()
rect.center=0,0
player_rect=dababy_jetpack.get_rect(topleft=(200,200))
maindisplay_rect=maindisplay.get_rect()

jetpacker=pygame.image.load("dababy.png")
jetpacker=pygame.transform.scale(jetpacker,(81,83))

maindisplay_rect=maindisplay.get_rect()
player_rect=jetpacker.get_rect()



def redrawWindow():
    maindisplay.blit(bg,(bgX,0))
    maindisplay.blit(bg,(bgX2,0))

clock=pygame.time.Clock()

def test(x,y):
    maindisplay.blit(jetpacker,(x,y))

crashed=False
while not crashed:
    realscore=realscore+0.05
    scoreTrunc=math.trunc(realscore)
    scoreText="score:"
    scoreString=str(scoreTrunc)
    scoredisplayed=scoreText+scoreString
    
    
    redrawWindow()
    bgX-=1.4
    bgX2-=1.4
    if bgX<bg.get_width()*-1:
        bgX=bg.get_width()
    elif bgX2<bg.get_width()*-1:
        bgX2=bg.get_width()

    if y > height-93:
        y = height - 93
    elif y < 0:
        y = 0

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            crashed=True
            
        if event.type==pygame.KEYDOWN:
            if event.key==pygame.K_SPACE:
                current_model=flying
                y_change=-1*speed
        elif event.type==pygame.KEYUP:
            if event.key==pygame.K_SPACE:
                y_change=0.7*speed
    y+=y_change
    test(x,y)
    player_rect.clamp_ip(maindisplay_rect)


    font=pygame.font.Font(None,74)
    text=font.render(str(scoredisplayed),1,WHITE)
    maindisplay.blit(text,(10,10))
    

    
    
    pygame.display.update()
    clock.tick(60)
pygame.quit()
quit()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。