首页 > 解决方案 > 当我与它碰撞时,我的结束屏幕不会加载

问题描述

所以我已经开始制作我的结束屏幕并且我做到了,所以当它与这一块碰撞时它会加载,每次它与这一块碰撞时我的游戏都会冻结它会显示我写的文字但仅此而已,我想要它显示几秒钟的文字并让游戏重新启动,但它一直冻结。我曾尝试将代码放在不同的地方,将其切换/删除内容并向其中添加内容,但它仍然无法正常工作。

https://gyazo.com/b2a5861f14eeba5c43b1e1b6e9894aaa

这是一个短片,显示发生了什么

我遇到问题的地方

black = (0,0,0)
def text_objects(text, font):
    textSurface = font.render(text, True, black)
    return textSurface, textSurface.get_rect()

def message_display(text):
    largeText = pygame.font.Font('freesansbold.ttf',25)
    TextSurf, TextRect = text_objects(text, largeText)
    TextRect.center = ((500/2),(500/2))
    window.blit(TextSurf, TextRect)

    pygame.display.update()
    game_loop()
    time.sleep(2)


    
    

def crash():
    message_display('You Crashed')

我的完整代码



import pygame
import time
import random
pygame.init()

#this is screem height
window = pygame.display.set_mode((500,500))

#know we put screem name
pygame.display.set_caption("Noobs first Game")


#player class
class player:
    def __init__(self,x,y,width,height,color):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.color = color
        self.speed = 15
        self.isJump = False
        self.JumpCount = 7
        self.fall = 5
        self.rect = pygame.Rect(x,y,height,width)
    def draw(self):
        self.rect.topleft = (self.x,self.y)
        pygame.draw.rect(window,self.color,self.rect)

class platform:
    def __init__(self,x,y,width,height,color):
        self.x = x
        self.y = y
        self.height = height
        self.width = width
        self.color = color
        self.rect = pygame.Rect(x,y,height,width)
    def draw(self):
        self.rect.topleft=(self.x,self.y)
        pygame.draw.rect(window,self.color,self.rect)
        
 
class item:
    def __init__(self,x,y,width,height,color):
        self.x = x
        self.y = y
        self.height = height
        self.width = width
        self.color = color
        self.rect = pygame.Rect(x,y,height,width)
    def draw(self):
        self.rect.topleft = (self.x,self.y)
        pygame.draw.rect(window,self.color,self.rect)



# Colors
white = (255,255,255)

darkred = (200,0,0)

darkgreen = (0,200,0)

green = (0,255,0)

red = (255,0,0)

#draw player
player1 = player(255,-20,30,30,white)

item1 = item(360,360,30,30,red)
item2 = item(260,360,30,30,red)
item3 = item(100,560,30,30,red)
item4 = item(200,560,30,30,red)
item5 = item(300,760,30,30,red)
item6 = item(400,760,30,30,red)
item7 = item(260,760,30,30,red)
item8 = item(300,960,30,30,red)
item9 = item(200,960,30,30,red)
item10 = item(360,960,30,30,red)
item11 = item(160,1160,30,30,red)
item12 = item(200,1160,30,30,red)
item13 = item(360,1360,30,30,red)
item14 = item(400,1360,30,30,red)
item15 = item(120,1360,30,30,red)
item16 = item(230,1560,30,30,red)
item17 = item(410,1560,30,30,red)
item18 = item(200,1760,30,30,red)
item19 = item(100,1760,30,30,red)
item20 = item(150,1760,30,30,red)
item21 = item(170,1960,30,30,red)
item22 = item(330,1960,30,30,red)
item23 = item(420,1960,30,30,red)
item24 = item(360,2160,30,30,red)
item25 = item(100,2160,30,30,red)
item26 = item(190,2360,30,30,red)
item27 = item(230,2360,30,30,red)
item28 = item(370,2360,30,30,red)
item29 = item(300,2560,30,30,red)
item30 = item(160,2560,30,30,red)
item31 = item(230,2560,30,30,red)
item32 = item(370,2760,30,30,red)
item33 = item(250,2760,30,30,red)
item34 = item(150,2760,30,30,red)
item35 = item(440,2960,30,30,red)
item36 = item(390,2960,30,30,red)
item37 = item(220,3160,30,30,red)
item38 = item(110,3160,30,30,red)
item39 = item(390,3360,30,30,red)
item40 = item(450,3360,30,30,red)
item41 = item(242,3360,30,30,red)
item42 = item(412,3560,30,30,red)
item43 = item(210,3560,30,30,red)
item44 = item(310,3560,30,30,red)
item45 = item(321,3760,30,30,red)
item46 = item(213,3760,30,30,red)
item47 = item(412,3960,30,30,red)
item48 = item(230,3960,30,30,red)
item49 = item(461,3960,30,30,red)
item50 = item(360,4160,30,30,red)
item51 = item(200,4160,30,30,red)
item52 = item(140,4160,30,30,red)
item53 = item(321,4360,30,30,red)
item54 = item(123,4360,30,30,red)
item55 = item(321,4360,30,30,red)
item56 = item(432,4560,30,30,red)
item57 = item(234,4560,30,30,red)
item58 = item(240,4760,30,30,red)
item59 = item(360,4760,30,30,red)
item60 = item(100,4760,30,30,red)
item61 = item(220,4960,30,30,red)
item62 = item(360,4960,30,30,red)
item63 = item(4600,4960,30,30,red)
item64 = item(430,5160,30,30,red)
item65 = item(270,5160,30,30,red)
item66 = item(360,5160,30,30,red)
item67 = item(120,5360,30,30,red)
item68 = item(220,5360,30,30,red)
item69 = item(320,5560,30,30,red)
item70 = item(420,5560,30,30,red)
item71 = item(230,5760,30,30,red)
item72 = item(120,5760,30,30,red)
item73 = item(360,5960,30,30,red)
item74 = item(400,5960,30,30,red)
item75 = item(200,6160,30,30,red)
item76 = item(300,6160,30,30,red)
item77 = item(100,6160,30,30,red)
item78 = item(200,6360,30,30,red)
item79 = item(360,6360,30,30,red)
item80 = item(460,6360,30,30,red)
item81 = item(250,6560,30,30,red)
item82 = item(360,6560,30,30,red)
item83 = item(220,6760,30,30,red)
item84 = item(140,6760,30,30,red)
item85 = item(260,6760,30,30,red)
item86 = item(450,6960,30,30,red)
item87 = item(370,6960,30,30,red)
item88 = item(220,7160,30,30,red)
item89 = item(320,7160,30,30,red)
item90 = item(220,7360,30,30,red)
item91 = item(340,7360,30,30,red)
item92 = item(100,7560,30,30,red)
item93 = item(400,7560,30,30,red)
item94 = item(270,7560,30,30,red)
item95 = item(450,7760,30,30,red)
item96 = item(260,7760,30,30,red)
item97 = item(300,7960,30,30,red)
item98 = item(440,7960,30,30,red)
item99 = item(230,8160,30,30,red)
item100 = item(360,8160,30,30,red)

item101 = item(360,8360,30,30,red)
item102 = item(260,8360,30,30,red)
item103 = item(100,8360,30,30,red)
item104 = item(600,8560,30,30,red)
item105 = item(400,8560,30,30,red)
item106 = item(300,8760,30,30,red)
item107 = item(460,8760,30,30,red)
item108 = item(200,8760,30,30,red)
item109 = item(300,8960,30,30,red)
item110 = item(460,8960,30,30,red)
item111 = item(160,9160,30,30,red)
item112 = item(300,9160,30,30,red)
item113 = item(460,9160,30,30,red)
item114 = item(200,9360,30,30,red)
item115 = item(120,9360,30,30,red)
item116 = item(430,9560,30,30,red)
item117 = item(110,9560,30,30,red)
item118 = item(300,9760,30,30,red)
item119 = item(100,9760,30,30,red)
item120 = item(450,9960,30,30,red)
item121 = item(270,9960,30,30,red)
item122 = item(130,9960,30,30,red)
item123 = item(320,10160,30,30,red)
item124 = item(460,10160,30,30,red)
item125 = item(100,10360,30,30,red)
item126 = item(190,10360,30,30,red)
item127 = item(230,10560,30,30,red)
item128 = item(370,10560,30,30,red)
item129 = item(290,10560,30,30,red)
item130 = item(160,10760,30,30,red)
item131 = item(230,10760,30,30,red)
item132 = item(370,10760,30,30,red)
item133 = item(250,10960,30,30,red)
item134 = item(150,10960,30,30,red)
item135 = item(440,10960,30,30,red)
item136 = item(390,11160,30,30,red)
item137 = item(220,11160,30,30,red)
item138 = item(110,11360,30,30,red)
item139 = item(390,11360,30,30,red)
item140 = item(460,11560,30,30,red)
item141 = item(349,11560,30,30,red)
item142 = item(110,11560,30,30,red)
item143 = item(211,11760,30,30,red)
item144 = item(431,11760,30,30,red)
item145 = item(321,11960,30,30,red)
item146 = item(213,11960,30,30,red)
item147 = item(412,12160,30,30,red)
item148 = item(230,12160,30,30,red)
item149 = item(231,12360,30,30,red)
item150 = item(160,12360,30,30,red)
item151 = item(300,12360,30,30,red)
item152 = item(443,12560,30,30,red)
item153 = item(221,12560,30,30,red)
item154 = item(223,12560,30,30,red)
item155 = item(321,12760,30,30,red)
item156 = item(432,12760,30,30,red)
item157 = item(134,12760,30,30,red)
item158 = item(251,12960,30,30,red)
item159 = item(460,12960,30,30,red)
item160 = item(207,12960,30,30,red)
item161 = item(170,13160,30,30,red)
item162 = item(360,13160,30,30,red)
item163 = item(250,13360,30,30,red)
item164 = item(160,13360,30,30,red)
item165 = item(100,13360,30,30,red)
item166 = item(360,13560,30,30,red)
item167 = item(120,13560,30,30,red)
item168 = item(220,13560,30,30,red)
item169 = item(320,13760,30,30,red)
item170 = item(420,13760,30,30,red)
item171 = item(230,13960,30,30,red)
item172 = item(120,13960,30,30,red)
item173 = item(360,14160,30,30,red)
item174 = item(400,14160,30,30,red)
item175 = item(200,14360,30,30,red)
item176 = item(300,14360,30,30,red)
item177 = item(100,14560,30,30,red)
item178 = item(200,14560,30,30,red)
item179 = item(360,14760,30,30,red)
item180 = item(460,14760,30,30,red)
item181 = item(250,14960,30,30,red)
item182 = item(460,14960,30,30,red)
item183 = item(320,15160,30,30,red)
item184 = item(240,15160,30,30,red)
item185 = item(460,15360,30,30,red)
item186 = item(250,15360,30,30,red)
item187 = item(370,15560,30,30,red)
item188 = item(120,15560,30,30,red)
item189 = item(220,15560,30,30,red)
item190 = item(360,15760,30,30,red)
item191 = item(240,15760,30,30,red)
item192 = item(300,15760,30,30,red)

platform1 = platform(260,400,30,300,red)
platform2 = platform(4,400,30,200,red)
platform3 = platform(4,600,30,440,red)
platform4 = platform(60,800,30,450,red)
platform5 = platform(4,1000,30,60,red)
platform6 = platform(130,1000,30,500,red)
platform7 = platform(4,1200,30,150,red)
platform8 = platform(200,1200,30,400,red)
platform9 = platform(4,1400,30,440,red)
platform10 = platform(4,1600,30,250,red)
platform11 = platform(300,1600,30,300,red)
platform12 = platform(60,1800,30,480,red)
platform13 = platform(4,2000,30,120,red)
platform14 = platform(190,2000,30,400,red)
platform15 = platform(4,2200,30,440,red)
platform16 = platform(70,2400,30,480,red)
platform17 = platform(4,2600,30,440,red)
platform18 = platform(60,2800,30,500,red)
platform19 = platform(4,3000,30,50,red)
platform20 = platform(110,3000,30,400,green)
platform21 = platform(4,3200,30,300,red)
platform22 = platform(360,3200,30,300,red)
platform23 = platform(4,3400,30,320,red)
platform24 = platform(380,3400,30,400,red)
platform25 = platform(4,3600,30,440,red)
platform26 = platform(60,3800,30,500,red)
platform27 = platform(4,4000,30,440,red)
platform28 = platform(60,4200,30,500,green)

platform29 = platform(4,4400,30,120,red)
platform30 = platform(180,4400,30,500,green)

platform31 = platform(4,4600,30,120,red) 
platform32 = platform(190,4600,30,400,red)
platform33 = platform(4,4800,30,440,red)
platform34 = platform(60,5000,30,500,red)
platform35 = platform(4,5200,30,320,red)
platform36 = platform(380,5200,30,400,red)
platform37 = platform(4,5400,30,150,red)
platform38 = platform(200,5400,30,400,green)
platform39 = platform(60,5600,30,500,red)
platform40 = platform(4,5800,30,250,red)
platform41 = platform(310,5800,30,350,red)
platform42 = platform(60,6000,30,500,red)
platform43 = platform(4,6200,30,300,red)
platform44 = platform(360,6200,30,200,red)
platform45 = platform(4,6400,30,440,green)
platform46 = platform(70,6600,30,480,red)
platform47 = platform(4,6800,30,440,red)
platform48 = platform(60,7000,30,500,red)
platform49 = platform(4,7200,30,50,red)
platform50 = platform(110,7200,30,400,red)
platform51 = platform(4,7400,30,300,red)
platform52 = platform(360,7400,30,300,red)
platform53 = platform(4,7600,30,60,red)
platform54 = platform(130,7600,30,500,red) 
platform55 = platform(4,7800,30,440,red)
platform56 = platform(4,8000,30,10,red)
platform57 = platform(70,8000,30,480,green)
platform58 = platform(60,8200,30,500,red)




platform59 = platform(4,8400,30,30,red)
platform60 = platform(90,8400,30,480,red)

platform61 = platform(4,8600,30,250,red)
platform62 = platform(310,8600,30,400,red)
platform63 = platform(4,8800,30,300,red)
platform64 = platform(360,8800,30,450,red)
platform65 = platform(4,9000,30,100,red)
platform66 = platform(160,9000,30,500,red)
platform67 = platform(4,9200,30,90,red)
platform68 = platform(150,9200,30,500,red)
platform69 = platform(4,9400,30,210,red)
platform70 = platform(270,9400,30,450,red)
platform71 = platform(4,9600,30,440,red)
platform72 = platform(60,9800,30,500,red)
platform73 = platform(4,10000,30,120,red)
platform74 = platform(190,10000,30,400,red)
platform75 = platform(4,10200,30,10,red)
platform76 = platform(70,10200,30,500,red)
platform77 = platform(4,10400,30,440,red)
platform78 = platform(60,10600,30,500,red)
platform79 = platform(4,10800,30,50,red)
platform80 = platform(110,10800,30,400,red)
platform81 = platform(4,11000,30,300,red)
platform82 = platform(360,11000,30,300,red)
platform83 = platform(4,11200,30,440,red)
platform84 = platform(60,11400,30,500,red)
platform85 = platform(4,11600,30,440,red)
platform86 = platform(4,11800,30,30,red)
platform87 = platform(90,11800,30,500,red)
platform88 = platform(60,12000,30,500,red)

platform89 = platform(4,12200,30,40,red)
platform90 = platform(100,12200,30,500,red)

platform91 = platform(4,12400,30,300,red)
platform92 = platform(360,12400,30,300,red)
platform93 = platform(70,12600,30,480,red)
platform94 = platform(4,12800,30,120,red)
platform95 = platform(190,12800,30,400,red)
platform96 = platform(4,13000,30,440,red)
platform97 = platform(60,13200,30,500,red)
platform98 = platform(4,13400,30,440,red)
platform99 = platform(4,13600,30,250,red)
platform100 = platform(310,13600,30,400,red) 
platform101 = platform(4,13800,30,30,red)
platform102 = platform(90,13800,30,480,red)
platform103 = platform(4,14000,30,440,red)
platform104 = platform(4,14200,30,50,red)
platform105 = platform(110,14200,30,400,red)
platform106 = platform(4,14400,30,440,red)
platform107 = platform(4,14600,30,340,red)
platform108 = platform(400,14600,30,500,red)
platform109 = platform(4,14800,30,60,red)
platform110 = platform(130,14800,30,500,red)
platform111 = platform(4,15000,30,440,red)
platform112 = platform(60,15200,30,480,red)
platform113 = platform(4,15400,30,40,red)
platform114 = platform(100,15400,30,500,red)
platform115 = platform(4,15600,30,30,red)
platform116 = platform(90,15600,30,480,red)
platform117 = platform(4,15800,30,170,red)
platform118 = platform(230,15800,30,480,red)
#walls
platform119 = platform(0,-10,30000,10,red)
platform120 = platform(490,-10,30000,10,red)


#LIST

items = [item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15,item16,item17,item18,item19,item20,item21,item22,item23,item24,item25,item26,item27,item28,item29,item30,item31,item32,item33,item34,item35,item36,item37,item38,item39,item40,item41,item42,item43,item44,item45,item46,item47,item48,item49,item50,item51,item52,item53,item54,item55,item56,item57,item58,item59,item60,item61,item62,item63,item64,item65,item66,item67,item68,item69,item70,item71,item72,item73,item74,item75,item76,item77,item78,item79,item80,item81,item82,item83,item84,item85,item86,item87,item88,item89,item90,item91,item92,item93,item94,item95,item96,item97,item98,item99,item100,item101,item102,item103,item104,item105,item106,item107,item108,item109,item110,item111,item112,item113,item114,item115,item116,item117,item118,item119,item120,item121,item122,item123,item124,item125,item126,item127,item128,item129,item130,item131,item132,item133,item134,item135,item136,item137,item138,item139,item140,item141,item142,item143,item144,item145,item146,item147,item148,item149,item150,item151,item152,item153,item154,item155,item156,item157,item158,item159,item160,item161,item162,item163,item164,item165,item166,item167,item168,item169,item170,item171,item172,item173,item174,item175,item176,item177,item178,item179,item180,item181,item182,item183,item184,item185,item186,item187,item188,item189,item190,item191,item192]


platforms = [platform1,platform2,platform3,platform4,platform5,platform6,platform7,platform8,platform9,platform10,platform11,platform12,platform13,platform14,platform15,platform16,platform17,platform18,platform19,platform20,platform21,platform22,platform23,platform24,platform25,platform26,platform27,platform28,platform29,platform30,platform31,platform32,platform33,platform34,platform35,platform36,platform37,platform38,platform39,platform40,platform41,platform42,platform43,platform44,platform45,platform46,platform47,platform48,platform49,platform50,platform51,platform52,platform53,platform54,platform55,platform56,platform57,platform58,platform59,platform60,platform61,platform62,platform63,platform64,platform65,platform66,platform67,platform68,platform69,platform70,platform71,platform72,platform73,platform74,platform75,platform76,platform77,platform78,platform79,platform80,platform81,platform82,platform83,platform84,platform85,platform86,platform87,platform88,platform89,platform90,platform91,platform92,platform93,platform94,platform95,platform96,platform97,platform98,platform99,platform100,platform101,platform102,platform103,platform104,platform105,platform106,platform107,platform108,platform109,platform110,platform111,platform112,platform113,platform114,platform115,platform116,platform117,platform118]

fast = [item15,item35,item55,item70,item90,item130]

fps = (30)
clock = pygame.time.Clock()

pause = False



black = (0,0,0)
def text_objects(text, font):
    textSurface = font.render(text, True, black)
    return textSurface, textSurface.get_rect()

def message_display(text):
    largeText = pygame.font.Font('freesansbold.ttf',25)
    TextSurf, TextRect = text_objects(text, largeText)
    TextRect.center = ((500/2),(500/2))
    window.blit(TextSurf, TextRect)

    pygame.display.update()
    game_loop()
    time.sleep(2)


    
    

def crash():
    message_display('You Crashed')


        

def text_objects(text, font):
    textSurface = font.render(text, True, black)
    return textSurface, textSurface.get_rect()

def button(msg,x,y,w,h,ic,ac,action=None):
    mouse = pygame.mouse.get_pos()
    click = pygame.mouse.get_pressed()
    #print(click)
    if x+w > mouse[0] > x and y+h > mouse[1] > y:
        pygame.draw.rect(window, ac,(x,y,w,h))

        if click[0] == 1 and action != None:
            action()         
    else:
        pygame.draw.rect(window, ic,(x,y,w,h))

    smallText = pygame.font.SysFont("comicsansms",20)
    textSurf, textRect = text_objects(msg, smallText)
    textRect.center = ( (x+(w/2)), (y+(h/2)) )
    window.blit(textSurf, textRect)

def quitgame():
    pygame.quit()

def unpause():
    global pause
    pause = False
    
def paused():

    window.fill(white)
    largeText = pygame.font.SysFont("comicsansms",115)
    TextSurf, TextRect = text_objects("Paused", largeText)
    TextRect.center = ((500/2),(500/2))
    window.blit(TextSurf, TextRect)
    

    while pause:
        for event in pygame.event.get():

            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
                
        #gameDisplay.fill(white)
        

        button("Can Run",100,350,100,50,green,darkgreen,unpause)
        button("Sit",300,350,100,50,red,darkred,quitgame)
        
        pygame.display.update()
        clock.tick(15)


        
    
def game_intro():

    intro = True

    while intro:
        for event in pygame.event.get():
            #print(event)
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        
        largeText = pygame.font.Font('freesansbold.ttf',95)
        TextSurf, TextRect = text_objects("Lava Run", largeText)
        TextRect.center = ((500/2),(500/2))
        window.blit(TextSurf, TextRect)

        button("Run!",100,350,100,50,green,darkgreen,game_loop)
        button("Sit!",300,350,100,50,red,darkred,quitgame)

        pygame.display.update()
        clock.tick(15)

        bg = pygame.image.load("Sky2.jpg")
        window.blit(bg,(0,0))
     
############################################

def game_loop():
    global pause

    
    #window
    def redrawwindow():
        window.fill((0,0,0))    

        #draw plyer
        player1.draw()
        platform119.draw()
        platform120.draw()
        for platform in platforms:
            platform.draw()

        # the score draw it on the screen
        window.blit(text,textRect)

        for item in items:
            item.draw()

            
    font  = pygame.font.Font("freesansbold.ttf",30)
    score = 0
    text = font.render("Coins = "+str(score),True,(255,255,255))
    textRect = text.get_rect()
    textRect.center = ((100,40))


    


                    
    run = True
    while run:
        clock.tick(fps)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False


        if player1.rect.colliderect(platform5.rect):
            crash()
        
              

        
        if player1.rect.colliderect(platform119) and player1.rect.colliderect(platform120):
            player1.x = 40

    #going down

            # this makes things go down
        if player1.x < 600:
            for platform in platforms:
                platform.y -= 5

            for item in items:
                item.y -= 5

        if player1.y < -60:
            game_intro()

        for item in fast:
            if player1.rect.colliderect(item.rect):
                player1.speed +=1
                platform.y -= 5
                item.y -= 5

        

                
                
        if player1.y >450:
            player1.y -= player1.fall
            platform119.y -= player1.fall
            platform120.y -= player1.fall

            for platform in platforms:
                platform.y -= player1.fall
            

            for item in items:
                item.y -= player1.fall


         # coin collisions
        for item in items:
            for one in range(len(items)-1,-1,-1):
                if player1.rect.colliderect(items[one].rect):
                    del items[one]
                    score += 1
                    text = font.render("Coins = "+str(score),True,(255,255,255))
                    textRect.center = ((100,40))

        
        keys = pygame.key.get_pressed()

        if keys[pygame.K_a]and player1.x > player1.speed:
            player1.x -= player1.speed

        if keys[pygame.K_d]and player1.x <500 - player1.height - player1.speed:
            player1.x += player1.speed

        if keys[pygame.K_p]:
            pause = True
            paused()

        if keys[pygame.K_w]and player1.y > player1.speed:
            player1.y -= player1.speed

        if keys[pygame.K_s]and player1.y <500 - player1.width - player1.speed:
            player1.y += player1.speed



        if not player1.isJump:
            player1.y += player1.fall
            player1.fall += 1
            player1.isJump = False


            collide = False
            # this part lets you jump on platform
            for platform in platforms:
                if player1.rect.colliderect(platform.rect):
                    collide = True
                    player1.isJump = False
                    player1.y = platform.rect.top - player1.height + 1
                    if player1.rect.right > platform.rect.left and player1.rect.left < platform.rect.left - player1.width:
                        player1.x = platform.rect.left - player1.width
                    if player1.rect.left < platform.rect.right and player1.rect.right > platform.rect.right + player1.width:
                        player1.x = platform.rect.right
                              

                if player1.rect.bottom >= 500:
                    collide = True
                    player1.isJump = False
                    player1.JumpCount = 7
                    player1.y = 500 - player1.height

            if collide:
                if keys[pygame.K_SPACE]:
                    player1.isJump = True
                player1.fall = 0


        else:
            if player1.JumpCount >= 0:
                player1.y -= (player1.JumpCount*abs(player1.JumpCount))*0.3
                player1.JumpCount -= 1
            else:
                player1.JumpCount = 7
                player1.isJump = False
        

        redrawwindow()
        pygame.display.update()
    pygame.quit()
    unpause
game_intro()
crash()





标签: python

解决方案


两件事情:

在游戏循环中,每次游戏开始时重新创建玩家

def game_loop():
    global pause, player1
    player1 = player(255,-20,30,30,white)  # reset player at game start

当游戏退出时,只需返回到 intro 循环

if player1.y < -60:
    return  # go back to intro loop
    # game_intro()

当游戏重新启动时,您还需要重置所有平台。


推荐阅读