Python 我怎样才能结束这场比赛
我正在尝试制作一个游戏,当玩家图标与喵喵碰撞时,游戏结束,屏幕上会显示“游戏结束”字样。然而,当我运行这个程序时,有一个短暂的闪烁,游戏继续。我应该对给定的代码进行哪些更改?另外,当我点击游戏窗口的退出按钮时,它只是挂在那里,游戏窗口/屏幕不会关闭。我非常感谢你们对这个游戏的任何帮助或建议Python 我怎样才能结束这场比赛,python,python-3.x,pygame,Python,Python 3.x,Pygame,我正在尝试制作一个游戏,当玩家图标与喵喵碰撞时,游戏结束,屏幕上会显示“游戏结束”字样。然而,当我运行这个程序时,有一个短暂的闪烁,游戏继续。我应该对给定的代码进行哪些更改?另外,当我点击游戏窗口的退出按钮时,它只是挂在那里,游戏窗口/屏幕不会关闭。我非常感谢你们对这个游戏的任何帮助或建议 import random import pygame import math from pygame import mixer pygame.init() mixer.init() # create t
import random
import pygame
import math
from pygame import mixer
pygame.init()
mixer.init()
# create the screen
screen=pygame.display.set_mode((800,600))
#icon and title
pygame.display.set_caption("pokecapture")
icon=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\pokeball.png")
pygame.display.set_icon(icon)
#background
bg=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\background.png")
# player
playerImg=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\pokeball.png")
playerX=374
playerY=536
playerX_change=0
def player(x,y):
screen.blit(playerImg,(x,y))
#sound
mixer.music.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\bgsound.wav")
mixer.music.play(-1)
#score
score=0
font=pygame.font.SysFont('inkfree.ttf',40)
textX=10
textY=10
def show_score():
score1=font.render('SCORE:'+str(score),True, (0,0,0))
screen.blit(score1,(30,30))
#pokemons
bullbasaur=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\bullbasaur.png")
charmander=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\charmander.png")
dratini=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\dratini.png")
eevee=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\eevee.png")
jigglypuff=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\jigglypuff.png")
meowth=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\meowth (2).png")
pikachu=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\pikachu.png")
psyduck=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\psyduck.png")
snorlax=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\snorlax.png")
squirtle=pygame.image.load("C:\\users\\khuhan rawat\\Desktop\\pokemon\\squirtle.png")
poke=[bullbasaur,charmander,dratini,eevee,jigglypuff,meowth,pikachu,psyduck,snorlax,squirtle]
pokeImg=[meowth,pikachu]
pokeX=[]
pokeY=[]
pokeY_change=[1,1]
for i in range(8):
n=random.randint(0,9)
poke1=poke[n]
pokeImg.append(poke1)
pokeX.append(random.randint(0,768))
pokeY.append(random.randint(-80,400))
pokeY_change.append(1)
for i in range (2):
pokeX.append(random.randint(0,768))
pokeY.append(random.randint(-80,400))
def pokemon(x,y,i,l):
screen.blit(l[i],(x,y))
#collision
def collision(x,y,playerX,playerY):
dist=math.sqrt((math.pow(x-playerX,2))+(math.pow(y-playerY,2)))
if dist<=27:
return True
#game over
over_font=pygame.font.SysFont('inkfree.ttf',60)
def gameover():
overtext=over_font.render("GAME OVER",True,(0,0,0))
screen.blit(overtext,(20,300))
#game loop
running=True
while running:
screen.fill((0,0,0))
screen.blit(bg,(0,0))
for event in pygame.event.get():
if event.type==pygame.QUIT:
running=False
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_LEFT:
playerX_change=-3
if event.key==pygame.K_RIGHT:
playerX_change=3
if event.type==pygame.KEYUP:
playerX_change=0
playerX+=playerX_change
if playerX<=0:
playerX=0
elif playerX>=736:
playerX=736
player(playerX,playerY)
#show score
for i in range(10):
pokeY[i]+=pokeY_change[i]
pokemon(pokeX[i],pokeY[i],i,pokeImg)
col=collision(pokeX[i],pokeY[i],playerX,playerY)
if pokeY[i]>=600:
pokeY[i]=random.randint(-20,40)
pokeX[i]=random.randint(0,768)
if col:
char=pokeImg[i]
if char==pikachu:
np=random.randint(0,9)
pokeX[i]=random.randint(0,736)
pokeY[i]=random.randint(0,40)
pokemon(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound("C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav")
cap.play()
score+=5
elif char==meowth:
for i in range(10):
pokeY[i]=2000
screen.fill((34,34,34))
gameover()
break
else:
np=random.randint(0,9)
pokeX[i]=random.randint(0,736)
pokeY[i]=random.randint(0,40)
pokemon(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound("C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav")
cap.play()
score+=5
np=random.randint(0,9)
pokeX[i]=random.randint(0,736)
pokeY[i]=random.randint(0,40)
pokemon(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound("C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav")
cap.play()
show_score()
pygame.display.update()
随机导入
导入pygame
输入数学
从pygame导入混合器
pygame.init()
mixer.init()
#创建屏幕
screen=pygame.display.set_模式((800600))
#图标和标题
pygame.display.set_标题(“pokecapture”)
icon=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\pokeball.png”)
pygame.display.set_图标(图标)
#背景
bg=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\background.png”)
#玩家
playerImg=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\pokeball.png”)
playerX=374
playerY=536
playerX_change=0
def播放器(x,y):
屏幕光点(playerImg,(x,y))
#声音
mixer.music.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\bgsound.wav”)
混音器。音乐。播放(-1)
#得分
分数=0
font=pygame.font.SysFont('inkfree.ttf',40)
textX=10
textY=10
def show_score():
score1=font.render('SCORE:'+str(SCORE),True,(0,0,0))
屏幕。blit(分数1,(30,30))
#口袋妖怪
bullbasaur=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\bullbasaur.png”)
charmander=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\charmander.png”)
dratini=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\dratini.png”)
eevee=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\eevee.png”)
jigglypuff=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\jigglypuff.png”)
meowth=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\meowth(2.png))
pikachu=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\pikachu.png”)
psyduck=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\psyduck.png”)
snorlax=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\snorlax.png”)
squirtle=pygame.image.load(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\squirtle.png”)
poke=[牛巴苏尔、查尔曼德、德拉蒂尼、伊维、吉格利普夫、喵喵、皮卡丘、普赛杜克、斯诺拉克斯、斯奎特尔]
博凯明=[meowth,pikachu]
pokeX=[]
pokeY=[]
零钱=[1,1]
对于范围(8)中的i:
n=random.randint(0,9)
poke1=poke[n]
pokeImg.append(poke1)
pokeX.append(random.randint(0768))
pokeY.append(random.randint(-80400))
零钱。追加(1)
对于范围(2)中的i:
pokeX.append(random.randint(0768))
pokeY.append(random.randint(-80400))
def口袋妖怪(x,y,i,l):
屏幕光点(l[i],(x,y))
#碰撞
def碰撞(x、y、playerX、playerY):
dist=math.sqrt((math.pow(x-playerX,2))+(math.pow(y-playerY,2)))
如果dist=600:
pokeY[i]=random.randint(-20,40)
pokeX[i]=random.randint(0768)
如果列:
char=pokeImg[i]
如果char==pikachu:
np=随机随机随机数(0,9)
pokeX[i]=random.randint(0736)
pokeY[i]=random.randint(0,40)
口袋妖怪(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav”)
第二节比赛
分数+=5
elif char==meowth:
对于范围(10)内的i:
pokeY[i]=2000
屏幕填充((34,34,34))
gameover()
打破
其他:
np=随机随机随机数(0,9)
pokeX[i]=random.randint(0736)
pokeY[i]=random.randint(0,40)
口袋妖怪(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav”)
第二节比赛
分数+=5
np=随机随机随机数(0,9)
pokeX[i]=random.randint(0736)
pokeY[i]=random.randint(0,40)
口袋妖怪(pokeX[i],pokeY[i],np,poke)
cap=mixer.Sound(“C:\\users\\khuhan rawat\\Desktop\\pokemon\\capture.wav”)
第二节比赛
显示分数()
pygame.display.update()
gameover条件中的中断仅中断for循环,而不中断外部while循环
elif char==meowth:
for i in range(10):
pokeY[i]=2000
screen.fill((34,34,34))
gameover()
running = False
break
将running flag设置为False可以解决问题。很高兴我能提供帮助,如果问题完全清楚,请将问题标记为已回答。