敵機左右移動不出邊界

2022-08-22 23:39:09 字數 2955 閱讀 4857

import pygame  #

pygame2d遊戲

import

time

from pygame.locals import *

class

heroplane(object):

def__init__

(self,screen_temp):

self.x=210self.y=700self.screen=screen_temp

self.image= pygame.image.load("

./feiji/hero1.png")

self.bullet_list=

defdisplay(self):

self.screen.blit(self.image, (self.x, self.y))

for bullet in

self.bullet_list:

bullet.display()

bullet.move()

defmove_left(self):

self.x-=5

defmove_right(self):

self.x+=5

deffire(self):

class

enemyplane(object):

def__init__

(self,screen_temp):

self.x=0

self.y=0

self.screen=screen_temp#

顯示敵機

self.image= pygame.image.load("

./feiji/enemy0.png")

self.bullet_list=

self.direction="

right"#

飛機預設的顯示方向

defdisplay(self):

self.screen.blit(self.image, (self.x, self.y))

for bullet in

self.bullet_list:

bullet.display()

bullet.move()

defmove(self):

if self.direction=="

right

":#控制方向

self.x+=5

elif self.direction=="

left":

self.x-=5

if self.x>480-50:#

測試距離

self.direction="

left

"elif self.x<0:#

往右 self.direction="

right

"def

fire(self):

class

bullet(object):

def__init__

(self,screen_temp,x,y):

self.x = x+40self.y = y-20self.screen =screen_temp

self.image = pygame.image.load("

./feiji/bullet.png")

defdisplay(self):

self.screen.blit(self.image,(self.x,self.y))

defmove(self):

self.y-=20

defkey_control(herotemp):

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

11if event.type == quit: #

按下叉號

print("

exit")

exit()

#退出程式,迴圈結束是break

elif event.type == keydown: #

按下鍵盤鍵

if event.key == k_a or event.key ==k_left:

print("

left")

herotemp.move_left()

elif event.key == k_d or event.key ==k_right:

print("

right")

herotemp.move_right()

elif event.key ==k_space:

print("

space")

herotemp.fire()

def main(): #

01 screen = pygame.display.set_mode((480, 852), 0, 32) #

1視窗 background = pygame.image.load("

./feiji/background.png

") #

2背景 hero =heroplane(screen)

enemy=enemyplane(screen)

while true: #

5死迴圈,一直重複

screen.blit(background, (0, 0)) #

3背景貼到視窗00處

hero.display()

enemy.display()

enemy.move()

#呼叫敵機方法

pygame.display.update() #

4顯示貼的效果

key_control(hero)

time.sleep(0.01) #

6電腦配置不高的話,記憶體占用會很大,所以延時顯示可以減少記憶體消耗

if__name__ == '

__main__

': #

0 main()

python中列表左右移動問題

引例 乙個陣列a中存有n 0 個整數,將每個整數迴圈向右移m 0 個位置。輸入樣例 6 2 輸入乙個6個整數的列表 向右移動2個位置12 3456 乙個6個整數的列表輸出樣例 561 2341.右移 n input split 輸入列表個數和移動個數 m int n 1 移動 個位置 num lis...

pygame控制飛船上下左右移動

小白 hust 建立飛船左右移動的能力之後,想繼續建立飛船上下移動的能力,可是出現問題,先貼上 片段 飛船屬性 import pygame class ship docstring for ship def init self,ai settings,screen 初始化飛船並設定其初始位置 sel...

C 關於控制項的上下左右移動

c 怎麼讓控制項上下左右移動?如圖 有多個控制項 根據上下左右鍵 控制每個控制項的焦點 public partial class form1 form 定義乙個二位陣列 存放textbox控制項 textbox arr private void form1 load object sender,ev...