您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)pygame如何添加碰撞效果,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
對(duì)car和障礙的寬高進(jìn)行比較然后打印即可:
if y < thing_starty + thing_height: print('y crossover') if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width: print('x crossover') crash()
全部代碼:
import pygame import time import random pygame.init() white = (255,255,255) black = (0,0,0) car_width = 100 display_width = 800 display_height = 600 gameDisplay = pygame.display.set_mode( (display_width,display_height) ) pygame.display.set_caption('A bit Racey') clock = pygame.time.Clock() carImg = pygame.image.load('car.png') def things(thingx, thingy, thingw, thingh, color): pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh]) def car(x, y): gameDisplay.blit(carImg, (x,y)) def text_objects(text, font): textSurface = font.render(text, True, black) return textSurface, textSurface.get_rect() def message_diaplay(text): largeText = pygame.font.Font('freesansbold.ttf',115) TextSurf, TextRect = text_objects(text, largeText) TextRect.center = ((display_width/2),(display_height/2)) gameDisplay.blit(TextSurf, TextRect) pygame.display.update() time.sleep(2) game_loop() def crash(): message_diaplay('You Crashed') def game_loop(): x = display_width * 0.45 y = display_height * 0.8 x_change = 0 gameExit = False thing_startx = random.randrange(0, display_width) thing_starty = -600 thing_speed = 7 thing_width = 100 thing_height = 100 while not gameExit: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x_change = -5 elif event.key == pygame.K_RIGHT: x_change = 5 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: x_change = 0 print(event) x += x_change gameDisplay.fill(white) things(thing_startx, thing_starty, thing_width, thing_height, black) thing_starty += thing_speed car(x,y) if x > display_width - car_width or x < 0: gameExit = True if thing_starty > display_height: thing_starty = 0 - thing_height thing_startx = random.randrange(0, display_width) if y < thing_starty + thing_height: print('y crossover') if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width: print('x crossover') crash() pygame.display.update() clock.tick(60) crash() #game_loop() pygame.quit() quit()
結(jié)果圖:
關(guān)于“pygame如何添加碰撞效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。