外星人入侵 外星人群整體移動

2021-10-25 17:27:27 字數 2712 閱讀 5865

import pygame,sys

from pygame.sprite import group

from settings import settings

class

alien

(pygame.sprite.sprite)

:def

__init__

(self,screen,ai_settings)

:super

(alien, self)

.__init__(

) self.screen = screen

self.ai_settings=ai_settings

self.screen_rect = self.screen.get_rect(

) self.image = pygame.image.load(

'imgage/alien.bmp'

) self.rect = self.image.get_rect(

) self.x =

float

(self.rect.x)

defupdate

(self)

:"""向左或向右移動外星人"""

self.x +=

(self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)

self.rect.x = self.x

defcheck_edges

(self)

:"""如果外星人位於螢幕邊緣,就返回true"""

screen_rect = self.screen.get_rect(

)if self.rect.right >= screen_rect.right:

return

true

elif self.rect.left <= screen_rect.left:

return

true

defupdate_aliens

(ai_settings, aliens)

:"""更新外星人群中所有外星人的位置"""

check_fleet_edges(ai_settings, aliens)

aliens.update(

)def

check_fleet_edges

(ai_settings, aliens)

:"""有外星人到達邊緣時採取相應的措施"""

for alien in aliens.sprites():

if alien.check_edges():

change_fleet_direction(ai_settings, aliens)

break

defchange_fleet_direction

(ai_settings, aliens)

:"""將整群外星人下移,並改變它們的方向"""

for alien in aliens.sprites():

alien.rect.y += ai_settings.fleet_drop_speed

ai_settings.fleet_direction *=-1

defcreate_alien

(screen,aliens,i,j,ai_settings)

: alien = alien(screen,ai_settings)

screen_rect = screen.get_rect(

) alien_width = alien.rect.width

alien.x = alien_width +

2* alien_width * i

alien.rect.x = alien.x

alien.rect.y = alien.rect.height +

2* alien.rect.height * j

aliens.add(alien)

defrun()

: pygame.init(

) fleet_direction =

1 bg_color =

230,

230,

230 ai_settings = settings(

) screen = pygame.display.set_mode(

(1200

,800))

aliens = group(

)for i in

range(4

):for j in

range(9

):create_alien(screen,aliens,j,i,ai_settings)

while

true

:for event in pygame.event.get():

if event.

type

== pygame.quit:

sys.exit(

) screen.fill(bg_color)

aliens.draw(screen)

update_aliens(ai_settings,aliens)

aliens.update(

) pygame.display.flip(

)run(

)

外星人入侵

今天是乙個週末,宿舍的人全部都出去玩了,而我因為太懶乙個人留在了宿舍,連床都不起,吃飯靠的是點外賣。不過,為了好玩,我跟著書本學習打了乙個2d小遊戲,並加入了一點自己的東西。一 遊戲頁面 剛開始我把所有的遊戲螢幕設定都放在了下面 裡,這使得 看起來非常長,和雜亂,所以為了使遊戲方便擴充套件和整個 邏...

Pygame 外星人入侵(7)外星人壓境

二 更加合理地移動 三 小結 在之前的博文中,實現了在螢幕上繪製一大群外星人,現在我們想讓這群外星人動起來,它們的移動遵循著一定的規律。我們首先要實現的是,如何讓一群外星人一起向螢幕右側移動。遊戲引數性質的變數統一存放在 設定模組中的設定類中 6 外星人的屬性 6。1 外星人移動的速度 self.a...

外星人入侵 Standard IO

description 外星人入侵地球。可怕的吃人外星人正在全國各地依次序建立它們的基地。全國共有n 1 n 10,000 座城市,城市編號1 n。城市之間有m 0 m 100,000 條雙向道路相連。外星人計畫建立a 0 a n 個基地。你只有在距離當前所有外星人基地至少k 1 k 100 單位長...