当苹果在三角形上方时,我尝试将苹果图片放在白色三角形的顶部,然后按h。我被困住了,不知道该怎么做。当我点击h时,没有任何好的或坏的事情发生。我可以移动我的矩形,但不能拿起图片。而且我不知道如何让矩形离开苹果。这是我的代码:
import pygame
import random
from pygame.locals import *
screenSize = (640,480)
surface = pygame.display.set_mode(screenSize)
running = True
clock = pygame.time.Clock()
x = 1
y = 1
a = random.randint(0,640)
b = random.randint(0,480)
while running:
clock.tick(15)
surface.fill((20,150,100))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x -= 10
elif event.key == pygame.K_RIGHT:
x += 10
elif event.key == pygame.K_UP:
y -= 10
elif event.key == pygame.K_DOWN:
y += 10
elif event.key == pygame.K_h:
a == x and b == y
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x -= 0
elif event.key == pygame.K_UP or event.key == pygame.K_DOWN:
y -= 0
line1 = pygame.draw.line(surface, (0,0,0), [100,100], [10,150], 4)
line2 = pygame.draw.line(surface, (0,0,0), [100,100], [100,300], 4)
line3 = pygame.draw.line(surface, (10, 20, 39), [100,100], [190,150] , 4)
line4 = pygame.draw.line(surface, (0,0,0), [100,300], [10,350], 4)
line5 = pygame.draw.line(surface, (0,0,0), [100,300], [190,350], 4)
circle = pygame.draw.circle(surface, (0,0,0), [100,60], 40, 4)
rect = pygame.draw.rect(surface, (150, 50, 0), [350, 250, 100, 100])
linerect = pygame.draw.line(surface, (75,25,0), [350, 280], [450,280],3)
rect2 = pygame.draw.rect(surface, (200, 150, 0), [395,275,10,10])
rect3 = pygame.draw.rect(surface, (75,25,0), [360,290,80,50],3)
box = pygame.draw.rect(surface, (255,255,255), [x,y,100,100])
apple = pygame.image.load('apple1.bmp')
surface.blit(apple,(a,b))
pygame.display.flip()
pygame.quit()
答案 0 :(得分:0)
你的一句话对我来说很奇怪:
I=imread('eight.tif');
hi = imagesc(I)
colormap gray
这应该是一个错误,因为此行未在a == x and b == y
或if
行中使用。 elif
只能用于if或Leif行,因为 比较 两个变量。所以使用上面的行除了引发错误或什么也不做之外什么都不做。尝试将其更改为:
==
您需要分开两个部分,不要使用任何多余的代码(extra =和a = x
b = y
)。要将三角形放在苹果下面,您需要确保苹果在三角形上方。使用碰撞代码来计算出来。为了更容易,如果它们都是精灵,请使用and
来检测碰撞。
要使苹果“粘”在三角形上,您需要将苹果的中心设为三角形的中心。因此,请尝试将if sprite_name.rectcollide()
更改为三角形的x坐标,将a
更改为三角形的y坐标。使用另一个可以实现这种粘贴的变量:
b
如何将sticky = True
if sticky == True:
a = x
b = y
else:
pass
更改为False是您的想法......