Python pygame侧卷轴小行星不出现?
我正在用python制作一个侧面滚动的街机游戏,你可以控制火箭 而且必须避免小行星从右到左。我的问题是我的小行星没有出现在屏幕上。非常感谢您的帮助Python pygame侧卷轴小行星不出现?,python,pygame,Python,Pygame,我正在用python制作一个侧面滚动的街机游戏,你可以控制火箭 而且必须避免小行星从右到左。我的问题是我的小行星没有出现在屏幕上。非常感谢您的帮助 import pygame as pg import numpy as np from pygame.locals import * from random import * #Make a first "game" which is actually the menu res = (1000,800) screen = pg.display.se
import pygame as pg
import numpy as np
from pygame.locals import *
from random import *
#Make a first "game" which is actually the menu
res = (1000,800)
screen = pg.display.set_mode(res)
pg.display.set_caption('Rocket game')
black = (0,0,0)
white = (255,255,255)
backgroundmenu = pg.image.load("menuscreen.jpg")
pg.init()
running1 = True
while running1:
pg.event.pump()
keys = pg.key.get_pressed()
if keys[pg.K_1]:
running1 = False
running2 = True
elif keys[pg.K_2]:
running1 = False
running2 = False
for event in pg.event.get():
if event.type == pg.QUIT:
running1 = False
screen.blit(backgroundmenu,(0,0))
pg.display.flip()
pg.quit()
pg.init()
#Setup screen and define colors
res = (1000,800)
screen = pg.display.set_mode(res)
pg.display.set_caption('Rocket game')
#pg.image.load("space.jpg")
black = (0,0,0)
white = (255,255,255)
background1 = pg.image.load("space.jpg").convert()
background2 = pg.image.load("space.jpg").convert()
background3 = pg.image.load("space.jpg").convert()
#screen.blit(background1,(0,0))
x_back = 0
screenwidth = 1000
#Initialize variables and clock
vx = 0
vy = 0
x = 200
y = 600
t0 = 0.001*pg.time.get_ticks()
maxdt = 0.5
#Load rocket and asteroids
rocketgif = pg.image.load("rocket.gif")
rocketimg = pg.transform.scale(rocketgif, (100,100))
asteroidgif = pg.image.load("Asteroid.gif")
asteroidimg = pg.transform.scale(asteroidgif, (75,75))
#Load music
pg.mixer.music.load('gamesound.mp3')
pg.mixer.music.set_endevent(pg.constants.USEREVENT)
pg.mixer.music.play()
#clock = pg.time.Clock()
#Generate random asteroids
Nasteroid = 5
x_ast = 999
dx = 5
i = 0
asteroidpos_y= []
while i<Nasteroid:
y = randint(0,800)
asteroidpos_y.append(y)
i = i + 1
#Start game loop
running2 = True
while running2:
t = 0.001*pg.time.get_ticks()
dt = min(t-t0,maxdt)
i = 0
pg.event.pump()
while i<Nasteroid:
x_ast -= dx
y = y
screen.blit(asteroidimg,(x_ast,asteroidpos_y[i-1]))
i = i + 1
for event in pg.event.get():
if event.type == pg.QUIT: #Quit using red cross button
running2 = False
elif event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE:
running2 = False #Quit using key combination
elif event.type == pg.KEYDOWN: #Make user control rocket movement
#and stop if key is released.
if event.key == pg.K_LEFT:
vx = -8
elif event.key == pg.K_RIGHT:
vx = 8
elif event.key == pg.K_UP:
vy = -8
elif event.key == pg.K_DOWN:
vy = 8
elif event.type == pg.KEYUP:
if event.key == pg.K_LEFT:
vx = 0
elif event.key == pg.K_RIGHT:
vx = 0
elif event.key == pg.K_UP:
vy = 0
elif event.key == pg.K_DOWN:
vy = 0
elif event.type == pg.constants.USEREVENT:
pg.mixer.music.load("gamesound.mp3")
pg.mixer.music.play()
#Make the screen scroll behind the rocket to make it "move" (3x the same background behind eachother)
screen.blit(background1,(x_back,0))
screen.blit(background2,(x_back - screenwidth,0))
screen.blit(background3,(x_back - (2*screenwidth),0))
x_back = x_back - 1
if x_back == screenwidth:
x_back = 0
#Update the position of the rocket. If the rocket hits the edges the game stops.
x = x + vx
y = y + vy
"""if x <= 0 or x >=100:
running2 = False
if y <= 0 or y >=800:
running2 = False"""
pg.event.pump()
screen.blit(rocketimg,(x,y))
pg.display.flip()
pg.quit()
将pygame导入为pg
将numpy作为np导入
从pygame.locals导入*
从随机导入*
#制作第一个“游戏”,实际上是菜单
res=(1000800)
屏幕=pg.display.set_模式(res)
pg.display.set_标题(“火箭游戏”)
黑色=(0,0,0)
白色=(255255)
backgroundmenu=pg.image.load(“menuscreen.jpg”)
第init页()
running1=真
运行1时:
pg.event.pump()
keys=pg.key.get_pressed()
如果键[pg.K_1]:
运行1=错误
running2=真
elif键[pg.K_2]:
运行1=错误
running2=错误
对于pg.event.get()中的事件:
如果event.type==pg.QUIT:
运行1=错误
屏幕blit(背景菜单,(0,0))
pg.display.flip()
第页退出
第init页()
#设置屏幕并定义颜色
res=(1000800)
屏幕=pg.display.set_模式(res)
pg.display.set_标题(“火箭游戏”)
#pg.image.load(“space.jpg”)
黑色=(0,0,0)
白色=(255255)
background1=pg.image.load(“space.jpg”).convert()
background2=pg.image.load(“space.jpg”).convert()
background3=pg.image.load(“space.jpg”).convert()
#屏幕blit(背景1,(0,0))
x_back=0
屏幕宽度=1000
#初始化变量和时钟
vx=0
vy=0
x=200
y=600
t0=0.001*pg.time.get_ticks()
maxdt=0.5
#装载火箭和小行星
rocketgif=pg.image.load(“rocket.gif”)
rocketimg=pg.transform.scale(rocketgif,(100100))
asteroidgif=pg.image.load(“Asteroid.gif”)
asteroidimg=pg.transform.scale(asteroidgif,(75,75))
#加载音乐
pg.mixer.music.load('gamesound.mp3')
pg.mixer.music.set_endevent(pg.constants.USEREVENT)
pg.mixer.music.play()
#时钟=pg.time.clock()
#生成随机小行星
鼻甾体=5
x_ast=999
dx=5
i=0
位置y=[]
虽然我不能尝试,因为这台电脑上没有pygame。但是,也许在你对背景进行光点扫描后,再进行光点扫描,以使小行星光点扫描?他们可能是幕后的人。这很有效,谢谢你,先生!它们现在出现了。然而,它们同时出现,而我希望它们一个接一个地出现,像一条“小行星高速公路”,而不是汽车,你对如何做到这一点有什么建议吗?非常感谢;)我的建议是在游戏循环中设置一个计时器/时钟,当它到达某个时间时,在起始位置画一个小行星。然后你可以在任何给定的时间生成它们你对如何编程这样的计时器有什么建议吗?我对python和pygame相当陌生这里是关于时钟的pygame文档。否则,我相信stack overflow对此有一些很好的答案。