国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python pygame如何實現拼圖游戲?下文給大家解答

89542767 / 444人閱讀

  Python pygame作為一門常見的技能,其實,它的應用范圍還是比較的廣泛的,那么,它是怎么實現其拼圖游戲呢?下面就以案例的形式,去給大家做個解答,下面就給大家詳細解答下。


  pygame介紹


  Python Pygame是一款專門為開發和設計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統,具有良好的跨平臺性。Pygame由Pete Shinners于2000年開發而成,是一款免費、開源的的軟件包,因此您可以放心地使用它來開發游戲,不用擔心有任何費用產生。


  Pygame在SDL(Simple DirectMedia Layer,使用C語言編寫的多媒體開發庫)的基礎上開發而成,它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標、鍵盤、顯示屏)模塊等。相比于開發3D游戲而言,Pygame更擅長開發2D游戲,比如于飛機大戰、貪吃蛇、掃雷等游戲。


  安裝pygame

  pip install pygame

  pygame常用模塊


  pygame.cdrom訪問光驅


  pygame.cursors加載光標


  pygame.display訪問顯示設備


  pygame.draw繪制形狀、線和點


  pygame.event管理事件


  pygame.font使用字體


  pygame.image加載和存儲圖片


  pygame.joystick使用游戲手柄或者類似的東西


  pygame.key讀取鍵盤按鍵


  pygame.mixer聲音


  pygame.mouse鼠標


  pygame.movie播放視頻


  pygame.music播放音頻


  pygame.overlay訪問高級視頻疊加


  pygame.rect管理矩形區域


  pygame.scrap本地剪貼板訪問


  pygame.sndarray操作聲音數據


  pygame.sprite操作移動圖像


  pygame.surface管理圖像和屏幕


  pygame.surfarray管理點陣圖像數據


  pygame.time管理時間和幀信息


  pygame.transform縮放和移動圖像


  pygame入門案例


  import pygame
  import sys
  pygame.init()#初始化pygame
  size=width,height=320,240#設置窗口大小
  screen=pygame.display.set_mode(size)#顯示窗口
  while True:#死循環確保窗口一直顯示
  for event in pygame.event.get():#遍歷所有事件
  if event.type==pygame.QUIT:#如果單擊關閉窗口,則退出
  sys.exit()
  pygame.quit()#退出pygame
  pygame實現拼圖游戲
  import pygame,sys,random
  from pygame.locals import*
  #一些常量
  WINDOWWIDTH=500
  WINDOWHEIGHT=500
  BACKGROUNDCOLOR=(255,255,255)
  BLUE=(0,0,255)
  BLACK=(0,0,0)
  FPS=40
  VHNUMS=3
  CELLNUMS=VHNUMS*VHNUMS
  MAXRANDTIME=100
  #退出
  def terminate():
  pygame.quit()
  sys.exit()
  #隨機生成游戲盤面
  def newGameBoard():
  board=[]
  for i in range(CELLNUMS):
  board.append(i)
  blackCell=CELLNUMS-1
  board[blackCell]=-1
  for i in range(MAXRANDTIME):
  direction=random.randint(0,3)
  if(direction==0):
  blackCell=moveLeft(board,blackCell)
  elif(direction==1):
  blackCell=moveRight(board,blackCell)
  elif(direction==2):
  blackCell=moveUp(board,blackCell)
  elif(direction==3):
  blackCell=moveDown(board,blackCell)
  return board,blackCell
  #若空白圖像塊不在最左邊,則將空白塊左邊的塊移動到空白塊位置
  def moveRight(board,blackCell):
  if blackCell%VHNUMS==0:
  return blackCell
  board[blackCell-1],board[blackCell]=board[blackCell],board[blackCell-1]
  return blackCell-1
  #若空白圖像塊不在最右邊,則將空白塊右邊的塊移動到空白塊位置
  def moveLeft(board,blackCell):
  if blackCell%VHNUMS==VHNUMS-1:
  return blackCell
  board[blackCell+1],board[blackCell]=board[blackCell],board[blackCell+1]
  return blackCell+1
  #若空白圖像塊不在最上邊,則將空白塊上邊的塊移動到空白塊位置
  def moveDown(board,blackCell):
  if blackCell<VHNUMS:
  return blackCell
  board[blackCell-VHNUMS],board[blackCell]=board[blackCell],board[blackCell-VHNUMS]
  return blackCell-VHNUMS
  #若空白圖像塊不在最下邊,則將空白塊下邊的塊移動到空白塊位置
  def moveUp(board,blackCell):
  if blackCell>=CELLNUMS-VHNUMS:
  return blackCell
  board[blackCell+VHNUMS],board[blackCell]=board[blackCell],board[blackCell+VHNUMS]
  return blackCell+VHNUMS
  #是否完成
  def isFinished(board,blackCell):
  for i in range(CELLNUMS-1):
  if board<i>!=i:
  return False
  return True
  #初始化
  pygame.init()
  mainClock=pygame.time.Clock()
  #加載圖片
  gameImage=pygame.image.load('1.jpg')
  gameRect=gameImage.get_rect()
  #設置窗口,窗口的寬度和高度取決于圖片的寬高
  windowSurface=pygame.display.set_mode((gameRect.width,gameRect.height))
  pygame.display.set_caption('拼圖')
  cellWidth=int(gameRect.width/VHNUMS)
  cellHeight=int(gameRect.height/VHNUMS)
  finish=False
  gameBoard,blackCell=newGameBoard()
  #游戲主循環
  while True:
  for event in pygame.event.get():
  if event.type==QUIT:
  terminate()
  if finish:
  continue
  if event.type==KEYDOWN:
  if event.key==K_LEFT or event.key==ord('a'):
  blackCell=moveLeft(gameBoard,blackCell)
  if event.key==K_RIGHT or event.key==ord('d'):
  blackCell=moveRight(gameBoard,blackCell)
  if event.key==K_UP or event.key==ord('w'):
  blackCell=moveUp(gameBoard,blackCell)
  if event.key==K_DOWN or event.key==ord('s'):
  blackCell=moveDown(gameBoard,blackCell)
  if event.type==MOUSEBUTTONDOWN and event.button==1:
  x,y=pygame.mouse.get_pos()
  col=int(x/cellWidth)
  row=int(y/cellHeight)
  index=col+row*VHNUMS
  if(
  index==blackCell-1 or index==blackCell+1 or index==blackCell-VHNUMS or index==blackCell+VHNUMS):
  gameBoard[blackCell],gameBoard[index]=gameBoard[index],gameBoard[blackCell]
  blackCell=index
  if(isFinished(gameBoard,blackCell)):
  gameBoard[blackCell]=CELLNUMS-1
  finish=True
  windowSurface.fill(BACKGROUNDCOLOR)
  for i in range(CELLNUMS):
  rowDst=int(i/VHNUMS)
  colDst=int(i%VHNUMS)
  rectDst=pygame.Rect(colDst*cellWidth,rowDst*cellHeight,cellWidth,cellHeight)
  if gameBoard<i>==-1:
  continue
  rowArea=int(gameBoard<i>/VHNUMS)
  colArea=int(gameBoard<i>%VHNUMS)
  rectArea=pygame.Rect(colArea*cellWidth,rowArea*cellHeight,cellWidth,cellHeight)
  windowSurface.blit(gameImage,rectDst,rectArea)
  for i in range(VHNUMS+1):
  pygame.draw.line(windowSurface,BLACK,(i*cellWidth,0),(i*cellWidth,gameRect.height))
  for i in range(VHNUMS+1):
  pygame.draw.line(windowSurface,BLACK,(0,i*cellHeight),(gameRect.width,i*cellHeight))
  pygame.display.update()
  mainClock.tick(FPS)

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128324.html

相關文章

  • 教你使用Pythonpygame模塊實現拼圖游戲

      pygame模塊是一個可以跨平臺的模塊,主要就是作為游戲開發來進行使用的,那么,怎么才能夠實現其游戲開發的技能了?比如說,怎么實現使用pygame去實現拼圖的游戲呢?下面就給大家詳細解答下。  pygame介紹  Python Pygame是一款專門為開發和設計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統,具有良好的跨平臺性。Pygame由Pete Shin...

    89542767 評論0 收藏0
  • pygame中Rect對象介紹案例解答

      小編寫此篇文章的目的,主要是給大家來做一個解答,解答關于pygame中Rect對象的相關內容知識,下面就給大家做一個比較詳細的解答。  class pygame.Rect Rect  對象的屬性:  Rect表示的區域必須位于一個Surface對象之上,比如游戲的主窗口(screen)。上述方法由四個關鍵參數值構成,分別是left、top、width、height,為了方便大家理解這些距離的含...

    89542767 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 關于pygame自定義窗口創建及相關操作指南

      pygame作為一個跨平臺的python數據庫,編輯起來也是比較的簡單的,只需要一段簡潔的代碼,就能高效的完成一些任務,能夠快速的實現其相關的一些應用服務。那么,如何使用pygame去做自定義窗口呢?怎么創建操作指南?下面給大家詳細解答下。  1.首先,我們需要導入幾個相關模塊  importpygame   importsys   frompygame.localsimport*  2,初始...

    89542767 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<