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'

相关文章
相关标签/搜索