pygame碎碎念

pygame中游戲的運行原理是不停的刷新屏幕再從新繪製圖像,因此每次操做完改變圖像大小或者位置再等待下次刷新就能夠作到移動和變化了google

  • 對於一個對象要建立屢次(像子彈)能夠用pygame.Group生成的對象來實現spa

    • 經過按下按鍵觸發事件,再經過事件生成對象放入group生成的對象中
    • 再經過gourp生成對象的update()方法,表示調用每一個成員各自的update()方法來更新對象
    • for循環依次畫出圖像
  • 正統獲取文件地址的方式os.path.join(os.getcwd(),'images','pic.jpg')code

  • os.path.abspath(__file__)獲取代碼文件的路徑orm

    • F:\abc\ab.py
  • os.path.dirname(os.path.abspath(__file__))對象

    • F:\abc
  • blit(self.image,self.rect)把image畫到rect位置上遊戲

  • pygame生成的畫面的座標是從左上角做爲(0,0)越右越大,越下越大事件

  • 移動能夠是按下座標加一,不過更好的是設置一個方向移動的flag在要移動的對象內,按下flag設置爲true,擡起設置爲false刷新圖像時調用對象自身的update()根據flag決定移不移動get

  • 重構就像b樹同樣,代碼量達到一個量才須要重構,把長的地方提取出來it

  • 打印字符到控制檯的時間消耗比把圖像畫到屏幕的耗時還大,因此少打印io

  • 出現了錯誤信息TypeError: invalid destination position for blit開始瘋狂瞎逼google,都是些無用信息,最後看了有用信息是screen.blit(sprite, tuple(position))因此我開始用type()來看其中的rect是否是tuple類型,發現竟然是int找哪裏改過這個,最後發現是在改rect.x的參數把它漏寫成rect因此把它的tuple類型改爲了int類型Orz

  • 自動移動的一種作法

    • 設置一個方向參數(1爲右,-1爲左)
    • 在更新時候計算移動位置時加上乘以方向參數的偏移量,能夠作到左移右移
  • 調用方法參數順序對其,不是按招名字找參數的,是按招順序找參數的

    • 出現AttributeError: 'Group' object has no attribute 'rect'可能是參數沒一一對應
      • 其實也可能真是方法名寫錯= =
  • "{:,}".format(1000000000)輸出'1,000,000,000'

相關文章
相關標籤/搜索