

{"id":134,"date":"2021-06-28T16:01:28","date_gmt":"2021-06-28T08:01:28","guid":{"rendered":"https:\/\/www.52dixiaowo.com\/python\/?p=134"},"modified":"2021-06-29T01:16:03","modified_gmt":"2021-06-28T17:16:03","slug":"pygame-%e9%a3%9e%e6%9c%ba%e5%a4%a7%e6%88%98-%e7%b2%be%e7%81%b5%e7%bb%84","status":"publish","type":"post","link":"https:\/\/www.52dixiaowo.com\/python\/post-134.html","title":{"rendered":"pygame \u98de\u673a\u5927\u6218 \u7cbe\u7075\u7ec4"},"content":{"rendered":"\n<p>pygame\u4e2d, \u7cbe\u7075\u548c\u7cbe\u7075\u7ec4\u662f\u4e24\u4e2a\u91cd\u8981\u7684\u7c7b, \u5206\u522b\u662f<\/p>\n\n\n\n<ul><li>pygame.sprite.Sprite  \u5b58\u50a8 \u56fe\u50cf\u6570\u636eimage \u548c \u4f4d\u7f6e rect \u7684\u5bf9\u8c61<\/li><li>pygame.sprite.Group \u5b58\u50a8\u540c\u7c7b\u7684\u7cbe\u7075<\/li><\/ul>\n\n\n\n<p>\u8fd9\u4e24\u4e2a\u7c7b, \u662fpygame\u5c01\u88c5\u597d\u7684\u5de5\u5177, \u524d\u8005\u7b80\u5355\u7406\u89e3\u4e3a\u4e00\u4e2a\u89d2\u8272(\u7ebf\u7a0b), \u540e\u8005\u662f\u4e00\u4e2a\u96c6\u5408( \u7c7b\u4f3c list)<\/p>\n\n\n\n<p>\u7cbe\u7075\u7c7b\u65e0\u6cd5\u76f4\u63a5\u4f7f\u7528, \u9700\u8981\u81ea\u5b9a\u4e49\u4e00\u4e2a\u7c7b\u7ee7\u627f\u5b83, \u4e5f\u53eb\u6d3e\u751f\u7cbe\u7075\u5b50\u7c7b<\/p>\n\n\n\n<p>\u521b\u5efaplane_sprites.py\u6a21\u5757<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import pygame as pg\n\nclass GameSprite(pg.sprite.Sprite):\n    \"\"\"\u98de\u673a\u5927\u6218\u6e38\u620f\u7cbe\u7075\"\"\"\n\n    def __init__(self, image_name, speed=1):\n\n        # \u8c03\u7528\u7236\u7c7b\u7684\u521d\u59cb\u5316\u65b9\u6cd5\n        super().__init__()\n\n        # \u5b9a\u4e49\u5bf9\u8c61\u7684\u5c5e\u6027\n        self.image = pg.image.load(image_name)\n        self.rect = self.image.get_rect()  #\u81ea\u52a8\u83b7\u53d6\u56fe\u7247\u7684\u5bbd\u9ad8\n        self.speed = speed\n\n    def update(self):\n\n        # \u5728\u5c4f\u5e55\u7684\u5782\u76f4\u65b9\u5411\u4e0a\u79fb\u52a8\n        self.rect.y += self.speed<\/code><\/pre>\n\n\n\n<p>\u5728main.py\u4e2d\u8c03\u7528, \u9700\u8981\u5148\u5bfc\u5165<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from plane_sprites import GameSprite<\/code><\/pre>\n\n\n\n<p>\u521b\u5efa\u7cbe\u7075\u5bf9\u8c61, \u4ee5\u53ca\u7cbe\u7075\u7ec4\u5bf9\u8c61<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u654c\u673a\u7cbe\u7075\nenemy = GameSprite(\".\/images\/enemy1.png\")\nenemy1 = GameSprite(\".\/images\/enemy1.png\", 2)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u654c\u673a\u7684\u7cbe\u7075\u7ec4\nenemy_group = pg.sprite.Group(enemy, enemy1)<\/code><\/pre>\n\n\n\n<p>\u63a5\u7740, \u628a\u7cbe\u7075\u7ec4\u66f4\u65b0\u5230\u754c\u9762\u4e2d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># update\nenemy_group.update()\nenemy_group.draw(screen)<\/code><\/pre>\n\n\n\n<h2>\u4ee3\u7801\u5c0f\u7ed3<\/h2>\n\n\n\n<p>\u672c\u8282\u66f4\u65b0\u4ee3\u7801, plant_sprites.py, \u8bf7\u53c2\u8003\u524d\u9762\u7684\u4ee3\u7801<\/p>\n\n\n\n<p>main.py\u4ee3\u7801\u66f4\u65b0\u5982\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import pygame as pg  #\u5bfc\u5165pygame\u6a21\u5757\nfrom plane_sprites import GameSprite\n\npg.init()   # pygame\u521d\u59cb\u5316\n\n# \u5b9e\u4f8b\u5316\u7a97\u53e3\nscreen = pg.display.set_mode((480, 700))\n\n# \u7ed8\u5236\u80cc\u666f\nbg = pg.image.load(\".\/images\/background.png\")\nscreen.blit(bg, (0,0))  # \u7ed8\u5236, \u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u56fe\u7247\u4f4d\u7f6e\n\n# \u7ed8\u5236\u5df1\u65b9\u98de\u673a\nhero = pg.image.load(\".\/images\/me1.png\")\nscreen.blit(hero, (200, 500))\npg.display.update()  # \u5237\u65b0\u5c4f\u5e55\n\n# \u521b\u5efa\u65f6\u949f\u5bf9\u8c61\nclock = pg.time.Clock()\n\n# \u5df2\u673a\u7684\u4f4d\u7f6e\nhero_rect = pg.Rect(200, 500, 102, 126)  # \u5bbd102, \u9ad8126\u662f\u8be5\u56fe\u7247\u7684\u9ed8\u8ba4\u5c5e\u6027\n\n# \u521b\u5efa\u654c\u673a\u7cbe\u7075\nenemy = GameSprite(\".\/images\/enemy1.png\")\nenemy1 = GameSprite(\".\/images\/enemy1.png\", 2)\n\n# \u521b\u5efa\u654c\u673a\u7684\u7cbe\u7075\u7ec4\nenemy_group = pg.sprite.Group(enemy, enemy1)\n\nwhile True:\n\n    clock.tick(60)\n    for event in pg.event.get():\n        if event.type == pg.QUIT:\n            print(\"\u6e38\u620f\u7ed3\u675f\")\n            pg.quit()\n            exit()  #python\u5185\u7f6e\u51fd\u6570\uff0c\u9000\u51fa\u7a0b\u5e8f\n\n    hero_rect.y -= 2\n    if hero_rect.y &lt;= 0:\n        hero_rect.y = 700\n    screen.blit(bg, (0, 0))   # \u91cd\u65b0\u7ed8\u5236\u80cc\u666f\n    screen.blit(hero, hero_rect)\n    # update\n    enemy_group.update()\n    enemy_group.draw(screen)\n\n    pg.display.update()\n\npg.quit()    #pygame\u7ed3\u675f<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>pygame\u4e2d, \u7cbe\u7075\u548c\u7cbe\u7075\u7ec4\u662f\u4e24\u4e2a\u91cd\u8981\u7684\u7c7b, \u5206\u522b\u662f pygame.sprite.Sprite \u5b58\u50a8 \u56fe\u50cf\u6570&hellip; <a href=\"https:\/\/www.52dixiaowo.com\/python\/post-134.html\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb <span class=\"screen-reader-text\">pygame \u98de\u673a\u5927\u6218 \u7cbe\u7075\u7ec4<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[],"_links":{"self":[{"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/posts\/134"}],"collection":[{"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/comments?post=134"}],"version-history":[{"count":0,"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/posts\/134\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/categories?post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.52dixiaowo.com\/python\/wp-json\/wp\/v2\/tags?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}