- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是Python编程的初学者。我有一个使用 python 制作游戏的类(class)项目。我尝试使用 pygame 制作鸡蛋和篮子游戏。游戏在某种程度上正在发挥作用。我能够使鸡蛋下落并通过按键移动篮子,但我无法使鸡蛋连续下落,即只有一个鸡蛋下落,然后它就停止下落。我预计鸡蛋会像实际游戏中那样一个接一个地落下。
而且我不知道如何知道鸡蛋何时落入篮子以及如何在鸡蛋落入篮子时增加分数。
你能帮我一下吗?
#The egg and basket game
import pygame
from pygame.locals import *
import time
import random
clock = pygame.time.Clock()
x=260
y=500
#Screen initialize
pygame.init()
pygame.font.init()
screen=pygame.display.set_mode((600,600))
pygame.display.set_caption("egg")
#Background
cloud=pygame.image.load("clouds.jpg")
cloud=pygame.transform.scale(cloud,(600,600))
screen.blit(cloud,(0,0))
#Basket
basket=pygame.image.load("basket.jpg")
basket=pygame.transform.scale(basket,(80,80))
screen.blit(basket,(x,y))
pygame.display.update()
#egg
egg=pygame.image.load("egg.jpg")
egg=pygame.transform.scale(egg,(20,20))
#screen.blit(egg,(290,20))
pygame.display.update()
#Movement of basket
ychange=0
xchange=0
exiting=False
for yegg in range(20,550):
#for i in range(0,100):
xegg=random.randrange(50,550)
while not exiting:
#xegg=random.randrange(50,550)
#for yegg in range(20,550):
if yegg<550:
ychange+=1
pygame.display.update()
clock.tick(60)
screen.blit(egg,(xegg,ychange))
else:
yegg=20
yegg=yegg+ychange
pygame.display.update()
clock.tick(60)
screen.blit(egg,(xegg,yegg))
#yegg=20
pygame.display.update()
clock.tick(60)
#yegg=20
for event in pygame.event.get():
print(event)
if(event.type==pygame.QUIT):
exiting=True
pygame.quit()
quit()
if(event.type==pygame.KEYDOWN):
if(event.key==pygame.K_LEFT):
xchange=-5
if(event.key==pygame.K_RIGHT):
xchange=5
screen.blit(basket,(x,y))
if(event.type==pygame.KEYUP):
if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT):
xchange=0
x=x+xchange
print(x)
screen.blit(cloud,(0,0))
screen.blit(basket,(x,y))
pygame.display.update()
clock.tick(60)
i=i+1
ychange=0
#random position of eggs
#MOVEMENT OF egg
最佳答案
首先使用.png图像使图像周围的白色方 block 消失。使用pygame.image.load("myimage.png").convert_alpha()
xegg=random.randrange(50,550)
上面的行应该位于 while 循环内,以便每次迭代都能获得随机的 x 值。我对您的代码做了一些更改,现在鸡蛋从随机位置掉落。要捕获它们,您必须检查篮子和鸡蛋之间是否发生碰撞。
#The egg and basket game
import pygame
from pygame.locals import *
import time
import random
clock = pygame.time.Clock()
x=260
y=500
#Screen initialize
pygame.init()
pygame.font.init()
screen=pygame.display.set_mode((600,600))
pygame.display.set_caption("egg")
#Background
cloud=pygame.image.load("clouds.png").convert_alpha()
cloud=pygame.transform.scale(cloud,(600,600))
screen.blit(cloud,(0,0))
#Basket
basket=pygame.image.load("basket.png").convert_alpha()
basket=pygame.transform.scale(basket,(80,80))
screen.blit(basket,(x,y))
pygame.display.update()
#egg
egg=pygame.image.load("eggs.png").convert_alpha()
egg=pygame.transform.scale(egg,(20,20))
#screen.blit(egg,(290,20))
pygame.display.update()
#Movement of basket
ychange=0
xchange=0
exiting=False
xegg = random.randrange(50,550)
yegg = 20
while not exiting:
#xegg=random.randrange(50,550)
#for yegg in range(20,550):
print yegg
if yegg<550:
yegg += 5
pygame.display.update()
clock.tick(60)
screen.blit(egg,(xegg,yegg))
else:
yegg=20
xegg = random.randrange(50,550)
yegg=yegg+ychange
pygame.display.update()
clock.tick(60)
screen.blit(egg,(xegg,yegg))
#yegg=20
pygame.display.update()
clock.tick(60)
#yegg=20
for event in pygame.event.get():
print(event)
if(event.type==pygame.QUIT):
exiting=True
pygame.quit()
quit()
if(event.type==pygame.KEYDOWN):
if(event.key==pygame.K_LEFT):
xchange=-5
if(event.key==pygame.K_RIGHT):
xchange=5
screen.blit(basket,(x,y))
if(event.type==pygame.KEYUP):
if(event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT):
xchange=0
x=x+xchange
print(x)
screen.blit(cloud,(0,0))
screen.blit(basket,(x,y))
pygame.display.update()
clock.tick(60)
i=i+1
ychange=0
#random position of eggs
#MOVEMENT OF egg
转到pygame collisions并学习碰撞。去 here一些非常好的例子。另外here优秀的 Pygame 指南。
关于python - python 中的鸡蛋和篮子游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36871380/
我正在尝试使用 setuptools 为我的 python 项目构建一个鸡蛋,但是,每当我构建一个鸡蛋时,如果每个文件/文件夹都被删除,所有的内容都是用第一个字母构建的。 例如,我的父文件夹名为 dp
在 Java、Javascript、C、C++、C# 等语言中,我在教程和代码片段中看到过类似以下的代码。 int foo = 5; int bar = 10; baz(foo, bar); 我认为当
我有一个难倒我的 SQL 查询。基本上,我有一个 Recipes 表,其中包含(您肯定猜到了)许多食谱。我有一个 Ingredients 表,其中包含各种成分。我有一个 RecipeIngredien
我在 R 和 Rstudio 中工作,使用通常很棒的 ggarrange() 安排一组相当复杂的图,但这次我遇到了一个持续存在的问题,它似乎很容易重现并且可能是一个错误? library(ggplot
This problem (你需要将多少只猫扔出建筑物才能确定这样一只猫能够生存的最大楼层。实际上相当残酷),有一个 O(n^3) 复杂度的公认答案。问题等同于这个 Google Code Jam ,
我是一名优秀的程序员,十分优秀!