小白@hust
建立飛船左右移動的能力之後,想繼續建立飛船上下移動的能力,可是出現問題,先貼上**片段
#飛船屬性
import pygame
class ship():
"""docstring for ship"""
def __init__(self, ai_settings,screen):
#初始化飛船並設定其初始位置
self.screen=screen
self.ai_settings=ai_settings
#載入飛船影象並獲取其外接矩形
self.image=pygame.image.load('images/ship.bmp')
self.rect=self.image.get_rect()
self.screen_rect=screen.get_rect()
#將每艘新飛船放在螢幕底部**
self.rect.centerx=self.screen_rect.centerx
self.rect.bottom=self.screen_rect.bottom
self.rect.centery=self.screen_rect.centery
#在飛船的屬性center中儲存小數值
self.centerx=float(self.rect.centerx)
self.centery=float(self.rect.centery)
#移動標誌
self.moving_right=false
self.moving_left=false
self.moving_up=false
self.moving_down=false
def update(self):
"""根據移動標誌調整飛船的位置"""
if self.moving_right and self.rect.right0:
self.centerx-=self.ai_settings.ship_speed_factor
if self.moving_down and self.rect.down0:
self.centery-=self.ai_settings.ship_speed_factor
self.rect.centerx=self.centerx
self.rect.centery=self.centery
def blitme(self):
"""在指定的位置繪製飛船"""
self.screen.blit(self.image,self.rect)
```#控制
import sys
import pygame
from bullet import bullet
def check_keydown_events(event,ai_settings,screen,ship,bullets):
"""響應按鍵"""
if event.key==pygame.k_right:
ship.moving_right=true
elif event.key==pygame.k_left:
ship.moving_left=true
elif event.key==pygame.k_up:
ship.moving_up=true
elif event.key==pygame.k_down:
ship.moving_down=true
elif event.key==pygame.k_space:
fire_bullet(ai_settings,screen,ship,bullets)
def fire_bullet(ai_settings,screen,ship,bullets):
if len(bullets)run_game()
file "alien_invasion.py", line 21, in run_game
ship.update()
file "/users/wuu/desktop/py/ship.py", line 32, in update
if self.moving_up and self.rect.up>0:
==attributeerror: 'pygame.rect' object has no attribute 'up'==
大神們能不能幫我看一看,第一次發帖,不是很熟練,**有點麻煩,謝謝啦
樹莓派 python 控制小車上下左右移動
樹莓派 python 控制小車上下左右移動程式注釋 import rpi.gpio as gpio import time pwma 18 兩個方向位 ain1 22 ain2 27 pwmb 23 bin1 25 bin2 24 速度0 100 利用time.sleep t time 函式控制執行...
C 關於控制項的上下左右移動
c 怎麼讓控制項上下左右移動?如圖 有多個控制項 根據上下左右鍵 控制每個控制項的焦點 public partial class form1 form 定義乙個二位陣列 存放textbox控制項 textbox arr private void form1 load object sender,ev...
js 彷excel 鍵盤上下左右移動
思路 假設初始座標為 0,0 首先要算出 的最大最小座標 即 0到maxx,0到maxy maxx table.rows 0 cells.length maxy tableid.rows.length 再去監聽上下左右的key值 觸發事件 就去計算座標 不能超過最大最小座標 對應這個 tableid...