我正在尝试在pygame中在两点之间进行直接移动。我已经能够使其移动到另一个矩形上然后停止,但是那样就不会向后移动了。 我不确定自己在做什么错,所以我决定寻求帮助。这是我的代码:
import pygame
width, height = 800, 600
gameDisplay = pygame.display.set_mode((width, height))
pygame.display.set_caption("Test")
gameExit = False
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
block_size = 10
def gameloop():
lead_x1, lead_x2 = 1, 100
lead_y1, lead_y2 = 1, 1
velocity = 0.2
gameExit = False
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
block_size = 10
while not gameExit:
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [lead_x1, lead_y1, block_size, block_size])
pygame.draw.rect(gameDisplay, black, [lead_x2, lead_y2, block_size, block_size])
lead_x1 += velocity
if lead_x1 >= lead_x2:
lead_x1 += -velocity
if lead_x1 <= 0:
lead_x1 += velocity
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
pygame.display.update()
pygame.quit()
quit()
gameloop()
答案 0 :(得分:1)
我认为您需要将d %>%
tidyr::spread(key = IDPRODUCT, value = IDPRODUCT) %>%
sjmisc::rec_if(is.character, rec = "NA=0;else=1", append = F) %>%
tibble::add_column(IDBILL = unique(d$IDBILL), .before = 1)
#> # A tibble: 3 x 5
#> IDBILL ABC123_r ABC124_r BCH134_r GDF345_r
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 111 1 1 0 0
#> 2 112 0 0 1 0
#> 3 113 1 0 0 1
行放在else语句中,如下所示:-
lead_x1 += velocity
所以我在这里要做的是,拿一个名为import pygame
width, height = 800, 600
gameDisplay = pygame.display.set_mode((width, height))
pygame.display.set_caption("Test")
gameExit = False
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
block_size = 10
def gameloop():
lead_x1, lead_x2 = 1, 100
lead_y1, lead_y2 = 1, 1
velocity = 0.2
gameExit = False
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
block_size = 10
toogle_flag = 1
while not gameExit:
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [lead_x1, lead_y1, block_size, block_size])
pygame.draw.rect(gameDisplay, black, [lead_x2, lead_y2, block_size, block_size])
lead_x1 += toggle_flag * velocity
if lead_x1 >= lead_x2:
toggle_flag = -1*toggle_flag
if lead_x1 <= 0:
toggle_flag = -1*toggle_flag
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
pygame.display.update()
pygame.quit()
quit()
gameloop()
的标志,将其初始化为toggle_flag
。
发件箱位于位置1,我们将1
添加到toggle_flag * velocity
中。即我们基本上是在添加lead_x1
。
一旦我们触摸第二个框,就会将velocity
的值翻转为toggle_flag
。
将会发生的是,我们继续将-1
添加到-velocity
中。
现在,一旦我们到达lead_x1
。我们通过将0
乘以toggle_flag
来再次翻转-1
的值,这使我们将velocity
加到lead_x1
中。
希望这会有所帮助!