五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Python Pygame中精靈和碰撞檢測詳解

發(fā)布日期:2021-12-28 16:33 | 文章來源:腳本之家

Pygame精靈和碰撞檢測

今天來看看python最出名的游戲庫pygame。學(xué)習(xí)兩個名詞:精靈和碰撞檢測。

精靈英文字母是Sprite。Sprite是二維的圖形,在游戲中可以用做各種物品,例如人物,道具,反正所有一切展現(xiàn)在游戲圖像中的都可以用Sprite。

而碰撞檢測就是檢測兩個Sprite之間是否有碰撞。例如游戲中的吃金幣,吃豆豆,打敵人都可以用到碰撞檢測。

class Sprite(pygame.sprite.Sprite):
 def __init__(self, pos):
  pygame.sprite.Sprite.__init__(self)
  self.image = pygame.Surface([20, 20])
  self.image.fill((255, 0, 255))
  self.rect = self.image.get_rect()
  self.rect.center = pos

上面這個是Sprite類的定義,如果你需要更多的內(nèi)容,自己可以增添。或者直接繼承就好。

pygame.init()
 clock = pygame.time.Clock()
 fps = 50
 bg = [0, 0, 0]
 size =[300, 300]
 screen = pygame.display.set_mode(size)
 player = Sprite([40, 50])
 # Define keys for player movement
 player.move = [pygame.K_LEFT, pygame.K_RIGHT, pygame.K_UP, pygame.K_DOWN]
 player.vx = 5
 player.vy = 5
 wall = Sprite([100, 60])
 wall_group = pygame.sprite.Group()
 wall_group.add(wall)
 player_group = pygame.sprite.Group()
 player_group.add(player)

初始化游戲,并且將墻壁分成wall_group ,將玩家分成了player_group。這是為了碰撞檢測做準(zhǔn)備。

while True:
  for event in pygame.event.get():
if event.type == pygame.QUIT:
 return False
  key = pygame.key.get_pressed()
  for i in range(2):
if key[player.move[i]]:
 player.rect.x += player.vx * [-1, 1][i]
  for i in range(2):
if key[player.move[2:4][i]]:
 player.rect.y += player.vy * [-1, 1][i]
  screen.fill(bg)
  # first parameter takes a single sprite
  # second parameter takes sprite groups
  hit = pygame.sprite.spritecollide(player, wall_group, True)
  if hit:
  # if collision is detected call a function to destroy
# rect
player.image.fill((255, 255, 255))

上面這段代碼有按鍵檢測,例如按下了退出鍵就會結(jié)束游戲。按下上下左右就會移動player。最后pygame.sprite.spritecollide就是碰撞檢測函數(shù)。當(dāng)玩家碰撞到墻壁就會變成紅色。

附更多pygame精靈碰撞檢測示例

兩個精靈之間的矩形檢測

pygame.sprite.collide_rect(first, second) #返回布爾值

精靈與組之間的矩形檢測

#第一個參數(shù)是精靈,
#第二個參數(shù)是精靈組,
#第三個參數(shù)為True,則碰撞檢測后,組中所有碰撞的精靈被刪除
#返回 組中被碰撞的精靈
collide_list = pygame.sprite.spritecollide(sprite,group,False)

兩個組之間的矩形檢測

#前兩個參數(shù)都是組
#后兩個參數(shù),代表發(fā)生碰撞時,是否刪除精靈
#該函數(shù)返回一個字典
#第一個組中的每一個精靈都會添加到字典中
#第二組中與之碰撞的精靈會添加到字典相應(yīng)的條目中
hit_list = pygame.sprite.groupcollide(group1,group2,True,False)

總結(jié)

到此這篇關(guān)于Python Pygame中精靈和碰撞檢測的文章就介紹到這了,更多相關(guān)Pygame精靈和碰撞檢測內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部