{"id":2556,"date":"2023-04-20T13:29:41","date_gmt":"2023-04-20T05:29:41","guid":{"rendered":"https:\/\/benson.ml\/?p=2556"},"modified":"2023-04-20T14:22:33","modified_gmt":"2023-04-20T06:22:33","slug":"%e7%94%a8python%e5%86%99%e4%b8%aa%e9%ad%82%e6%96%97%e7%bd%97%ef%bc%8c%e5%8f%a6%e9%99%8430%e4%b8%aapython%e5%b0%8f%e6%b8%b8%e6%88%8f%e6%ba%90%e7%a0%81","status":"publish","type":"post","link":"https:\/\/benson80.eu.org\/?p=2556","title":{"rendered":"\u7528Python\u5199\u4e2a\u9b42\u6597\u7f57\uff0c\u53e6\u964430\u4e2aPython\u5c0f\u6e38\u620f\u6e90\u7801"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"358\" src=\"https:\/\/benson.ml\/wp-content\/uploads\/2023\/04\/image-49.png\" alt=\"\" class=\"wp-image-2563\" srcset=\"https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-49.png 750w, https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-49-300x143.png 300w, https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-49-421x201.png 421w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n\n\n\n<p>\u4eca\u5929\u5206\u4eab\u4e00\u4e2a\u7ecf\u5178\u5c0f\u6e38\u620f\u9b42\u6597\u7f57\u7684 Python \u7248\u5b9e\u73b0\u3002\u90e8\u5206\u4ee3\u7801\u5b9e\u73b0\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>class Game_Player():<br>def <strong>init<\/strong>(self,game_settings,screen):<\/p>\n\n\n\n<p>self.screen = screen<br>self.game_settings = game_settings<br>self.image = pygame.image.load(&#8216;images\/PR\/player.png&#8217;)<br>self.rect = self.image.get_rect()<br>self.screen_rect = self.screen.get_rect()<br>self.screen_center_pos = self.screen_rect.centerx<br>self.rect.centerx = self.screen_rect.centerx<br>self.rect.bottom = 380<br>self.center = float(self.rect.centerx)<br>self.moving_right = False<br>self.moving_left = False<br>self.player_moving = False<br>self.pos_i = 0.0#\u8dd1\u6b65\u753b\u9762\u6539\u53d8\u901f\u5ea6<br>self.pos_j = 0.0#\u8df3\u8dc3\u7684\u6539\u53d8\u521d\u59cb\u901f\u5ea6<br>self.pos_n = 0.0#\u5c04\u51fb<br>self.pos_d = 0.0<br>self.player_direction = 1#1\u4e3a\u53f3\uff0c-1\u4e3a\u5de6<br>self.player_down = False<br>self.player_up = False<br>self.player_jump = False<br>self.player_start_Y = 380#\u5f00\u59cb\u4eba\u7269\u7684\u9ad8\u5ea6<br>self.player_Y = self.player_start_Y<br>self.player_shooting = False<\/p>\n\n\n\n<p>def update(self):<br>if self.game_settings.player_is_alive:<br>if self.moving_right and self.rect.right &lt; self.screen_rect.right: if self.game_settings.boss_appear: self.center += self.game_settings.player_speed elif self.center &gt; self.screen_center_pos:<br>self.center += 0<br>else:<br>self.center += self.game_settings.player_speed<br>if self.moving_left and self.rect.left &gt; 0:<br>self.center -= self.game_settings.player_speed<br>self.rect.centerx = self.center<\/p>\n\n\n\n<p>self.update_image_moving()<br>else:<br>self.update_die()<\/p>\n\n\n\n<p>def update_die(self):<br>self.names = locals()<br>self.players = []<br>for self.i in range(1,3):<br>self.names[&#8216;player_image%s&#8217; %self.i] = pygame.image.load(&#8216;images\/PR\/death%s.png&#8217; %self.i)<br>self.players.append(self.names[&#8216;player_image%s&#8217; %self.i])<br>self.image = self.players[int(self.pos_d)]<br>self.pos_d += 0.1<br>if self.pos_d &gt; 2.0:<br>self.pos_d = 0.0<br>self.game_settings.player_die_end = True<\/p>\n\n\n\n<p>def update_image_moving_direction(self,direction):#\u5faa\u73af\u56fe\u7247<br>if self.player_shooting == True:<br>self.names = locals()<br>self.players = []<br>for self.i in range(1,4):<br>self.names[&#8216;player_image%s&#8217; %self.i] = pygame.image.load(&#8216;images\/&#8217;+direction+&#8217;\/shooting%s.png&#8217; %self.i)<br>self.players.append(self.names[&#8216;player_image%s&#8217; %self.i])<br>self.image = self.players[int(self.pos_n)]<br>self.pos_n += 0.1#\u5c04\u51fb\u65f6\u8dd1\u6b65\u901f\u7387<br>if self.pos_n &gt; 3.0:#\u5c04\u51fb\u65f6\u8dd1\u6b65\u67093\u4e2a\u52a8\u4f5c<br>self.pos_n = 0.0<br>else:<br>self.names = locals()<br>self.players = []<br>for self.i in range(1,6):<br>self.names[&#8216;player_image%s&#8217; %self.i] = pygame.image.load(&#8216;images\/&#8217;+direction+&#8217;\/player%s.png&#8217; %self.i)<br>self.players.append(self.names[&#8216;player_image%s&#8217; %self.i])<br>self.image = self.players[int(self.pos_i)]<br>self.pos_i += 0.1#\u8dd1\u6b65\u901f\u7387<br>if self.pos_i &gt; 5.0:#\u8dd1\u6b65\u67095\u4e2a\u52a8\u4f5c<br>self.pos_i = 0.0<\/p>\n\n\n\n<p>def update_image_jump(self,direction):#\u5faa\u73af\u56fe\u7247<br>if self.game_settings.player_is_alive:<br>if self.player_jump == True:<br>self.names1 = locals()<br>self.players1 = []<br>for self.j in range(1,5):<br>self.names1[&#8216;player_image%s&#8217; %self.j] = pygame.image.load(&#8216;images\/&#8217;+direction+&#8217;\/jump%s.png&#8217; %self.j)<br>self.players1.append(self.names1[&#8216;player_image%s&#8217; %self.j])<br>self.image = self.players1[int(self.pos_j)]<br>self.pos_j += 0.3#\u8df3\u8dc3\u65cb\u8f6c\u901f\u7387<br>if self.pos_j &gt; 4.0:#\u8df3\u8dc3\u67094\u4e2a\u52a8\u4f5c<br>self.pos_j = 0.0<br>else:<br>self.update_die()<\/p>\n\n\n\n<p>def update_image_moving(self):<br>if self.player_moving:<br>if self.moving_right:<br>self.update_image_moving_direction(&#8216;PR&#8217;)#PR\u662f\u5411\u53f3\u7684\u56fe\u7247<br>elif self.moving_left:<br>self.update_image_moving_direction(&#8216;PL&#8217;)<\/p>\n\n\n\n<p>def get_player_state(self,player_state):#\u68c0\u6d4bplayer\u7684\u72b6\u6001\u662f\u5426\u4e3a\u8db4\u4e0b\uff0c\u5411\u4e0a\uff0c\u8df3\u8dc3\u7b49<br>if self.player_direction == 1:<br>self.image = pygame.image.load(&#8216;images\/PR\/&#8217;+player_state+&#8217;.png&#8217;)<br>if self.player_direction == -1:<br>self.image = pygame.image.load(&#8216;images\/PL\/&#8217;+player_state+&#8217;.png&#8217;)<br>self.rect = self.image.get_rect()<br>self.rect.centerx = self.center<\/p>\n\n\n\n<p>def get_player_down(self):<br>self.get_player_state(&#8216;down&#8217;)<br>self.rect.bottom = self.player_start_Y<br>self.screen.blit(self.image,self.rect)<\/p>\n\n\n\n<p>def get_player_up(self):<br>self.get_player_state(&#8216;up&#8217;)<br>self.rect.bottom = self.player_start_Y<br>self.screen.blit(self.image,self.rect)<\/p>\n\n\n\n<p>def get_player_jump(self):<br>self.get_player_state(&#8216;jump1&#8217;)<br>self.rect.bottom = self.player_Y<br>if self.game_settings.jump_vel &lt; 0: self.game_settings.jump_vel += 0.6#\u8df3\u8dc3\u4e0a\u5347\u7684\u589e\u52a0\u7684\u901f\u7387 elif self.game_settings.jump_vel &gt; 0:<br>self.game_settings.jump_vel += 0.8#\u8df3\u8dc3\u4e0b\u964d\u589e\u52a0\u7684\u901f\u7387<br>self.player_Y += self.game_settings.jump_vel<br>if self.player_Y &gt; self.player_start_Y:<br>self.player_jump = False<br>self.player_Y = self.player_start_Y<br>self.game_settings.jump_vel = -14.0#\u6062\u590d\u8df3\u8dc3\u5f00\u59cb\u7684\u901f\u5ea6<br>if self.player_direction == 1:<br>self.image = pygame.image.load(&#8216;images\/PR\/player.png&#8217;)<br>self.reset_player()<br>if self.player_direction == -1:<br>self.image = pygame.image.load(&#8216;images\/PL\/player.png&#8217;)<br>self.reset_player()<br>if self.player_jump == True:#\u5224\u65ad\u662f\u5426\u5904\u4e8e\u8df3\u8dc3\u72b6\u6001\u6765\u51b3\u5b9a\u662f\u5426\u65cb\u8f6c\u8df3\u8dc3\u7684\u56fe\u50cf<br>if self.player_direction == 1:<br>self.update_image_jump(&#8216;PR&#8217;)<br>if self.player_direction == -1:<br>self.update_image_jump(&#8216;PL&#8217;)<br>self.screen.blit(self.image,self.rect)<\/p>\n\n\n\n<p>def reset_player(self):<br>self.rect = self.image.get_rect()<br>self.rect.centerx = self.center<br>self.rect.bottom = self.player_start_Y<br>self.screen.blit(self.image,self.rect)<\/p>\n\n\n\n<p>def blitme(self):<br>if self.player_jump:<br>self.get_player_jump()<br>elif self.player_down:<br>self.get_player_down()<br>elif self.player_up:<br>self.get_player_up()<br>else:<br>self.reset_player()<\/p>\n\n\n\n<p>def revive_player(self):<br>self.center = self.screen_rect.centerx<br>self.game_settings.player_is_alive = True<\/p>\n\n\n\n<p>\u5b9e\u73b0\u6548\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"361\" src=\"https:\/\/benson.ml\/wp-content\/uploads\/2023\/04\/image-46.png\" alt=\"\" class=\"wp-image-2557\" srcset=\"https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-46.png 732w, https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-46-300x148.png 300w, https:\/\/benson80.eu.org\/wp-content\/uploads\/2023\/04\/image-46-421x208.png 421w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\n\n\n\n<p>\u64cd\u4f5c\u8bf4\u660e\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A\uff1a\u5411\u5de6<\/li>\n\n\n\n<li>D\uff1a\u5411\u53f3<\/li>\n\n\n\n<li>W\uff1a\u8df3\u8d77<\/li>\n\n\n\n<li>S\uff1a\u8db4\u4e0b<\/li>\n\n\n\n<li>J\uff1a\u5c04\u51fb<\/li>\n\n\n\n<li>P\uff1a\u9000\u51fa\u7a0b\u5e8f<\/li>\n<\/ul>\n\n\n\n<p>\u9b42\u6597\u7f57\u53ca30\u4e2aPython\u5c0f\u6e38\u620f\u6e90\u7801\u5728\u516c\u4f17\u53f7<strong>\u82cf\u5dde\u777f\u6cc9\u79d1\u6280<\/strong>\u540e\u53f0\u56de\u590d<strong>python\u5c0f\u6e38\u620f<\/strong>\u83b7\u53d6<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u5929\u5206\u4eab\u4e00\u4e2a\u7ecf\u5178\u5c0f\u6e38\u620f\u9b42\u6597\u7f57\u7684 Python \u7248\u5b9e &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-2556","post","type-post","status-publish","format-standard","hentry","category-python"],"_links":{"self":[{"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/2556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2556"}],"version-history":[{"count":4,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/2556\/revisions"}],"predecessor-version":[{"id":2565,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/2556\/revisions\/2565"}],"wp:attachment":[{"href":"https:\/\/benson80.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benson80.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}