這是第一個(gè)marval_invasion
import pygame
from settings import Settings
from ironman import Ironman
from pygame.sprite import Group
from mieba import Mieba
import game_funtions as gf
def run_game():
pygame.init()
ai_settings=Settings()
screen=pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))
pygame.display.set_caption("marvel_invasion")
ironman=Ironman(ai_settings,screen)
bullets=Group()
miebas=Group()
gf.create_fleet(ai_settings,screen,ironman,miebas)
bg_color=(255,255,255)
mieba=Mieba(ai_settings,screen)
while True:
gf.check_events(ai_settings,screen,ironman,bullets)
ironman.update()
gf.update_bullets(bullets)
gf.update_screen(ai_settings,screen,ironman,miebas,bullets)
run_game()
The second
import pygame
class Ironman():
def __init__(self,ai_settings,screen):
self.screen=screen
self.ai_settings=ai_settings
self.image=pygame.image.load('images/iron-man.bmp')
self.rect=self.image.get_rect()
self.screen_rect=screen.get_rect()
self.rect.centery=self.screen_rect.centery
self.rect.right=self.screen_rect.right
self.center=float(self.rect.centery)
self.moving_down=False
self.moving_up=False
def update(self):
if self.moving_down and self.rect.bottom<self.screen_rect.bottom:
self.center+=self.ai_settings.ironman_speed_factor
if self.moving_up and self.rect.top>0:
self.center-=self.ai_settings.ironman_speed_factor
self.rect.centery=self.center
def blitme(self):
self.screen.blit(self.image,self.rect)
The third
import pygame
from pygame.sprite import Sprite
class Mieba(Sprite):
def __init__(self,ai_settings,screen):
super(Mieba,self).__init__()
self.screen=screen
self.ai_settings=ai_settings
self.image=pygame.image.load('images/mieba.bmp')
self.rect=self.image.get_rect()
self.rect.x=self.rect.width
self.rect.y=self.rect.height
self.x=float(self.rect.x)
def blitme(self):
self.screen.blit(self.image,self.rect)請輸入代碼
The fourth
import pygame
from pygame.sprite import Sprite
class Bullet(Sprite):
def __init__(self,ai_settings,screen,ironman):
super(Bullet, self).__init__()
self.screen=screen
self.rect=pygame.Rect(0,0,ai_settings.bullet_width,
ai_settings.bullet_height)
self.rect.centery=ironman.rect.centery
self.rect.left=ironman.rect.left
self.x=float(self.rect.x)
self.color=ai_settings.bullet_color
self.speed_factor=ai_settings.bullet_speed_factor
def update(self):
self.x-=self.speed_factor
self.rect.x=self.x
def draw_bullet(self):
pygame.draw.rect(self.screen,self.color,self.rect)
The fifth
import sys
import pygame
from bullet import Bullet
from mieba import Mieba
def check_keydown_events(event,ai_settings,screen,ironman,bullets):
if event.key == pygame.K_DOWN:
ironman.moving_down = True
elif event.key == pygame.K_UP:
ironman.moving_up = True
elif event.key==pygame.K_SPACE:
fire_bullet(ai_settings,screen,ironman,bullets)
elif event.key==pygame.K_q:
sys.exit()
def check_keyup_events(event,ironman):
if event.key == pygame.K_DOWN:
ironman.moving_down = False
elif event.key == pygame.K_UP:
ironman.moving_up = False
def check_events(ai_settings,screen,ironman,bullets):
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
elif event.type==pygame.KEYDOWN:
check_keydown_events(event,ai_settings,screen,ironman,bullets)
elif event.type==pygame.KEYUP:
check_keyup_events(event,ironman)
def update_screen(ai_settings,screen,ironman,miebas,bullets):
screen.fill(ai_settings.bg_color)
for bullet in bullets.sprites():
bullet.draw_bullet()
ironman.blitme()
miebas.draw(screen)
pygame.display.flip()
def update_bullets(bullets):
bullets.update()
for bullet in bullets.copy():
if bullet.rect.right<=0:
bullets.remove(bullet)
print(len(bullets))
def fire_bullet(ai_settings,screen,ironman,bullets):
if len(bullets)<ai_settings.bullets_allowed:
new_bullet=Bullet(ai_settings,screen,ironman)
bullets.add(new_bullet)
def get_number_miebas_y(ai_settings,mieba_height):
available_space_y = ai_settings.screen_height - 2 * mieba_height
number_miebas_y = int(available_space_y / (0.95 * mieba_height))
return number_miebas_y
def get_number_columns(ai_settings,ironman_width,mieba_width):
available_space_x=(ai_settings.screen_width-
(3*mieba_width)-ironman_width)
number_columns=int(available_space_x)/(2*mieba_width)
return number_columns
def create_mieba(ai_settings,screen,miebas,mieba_number):
mieba = Mieba(ai_settings, screen)
mieba_height=mieba.rect.height
mieba.y = mieba_height + 1 * mieba_height * mieba_number
mieba.rect.y = mieba.y
mieba.rect.x=mieba.rect.width+2*mieba.rect.width
miebas.add(mieba)
def create_fleet(ai_settings,screen,ironman,miebas):
mieba = Mieba(ai_settings, screen)
number_miebas_y=get_number_miebas_y(ai_settings,mieba.rect.height)
number_columns=get_number_columns(ai_settings,ironman.rect.width,
mieba.rect.width)
for colmns_number in range(number_columns):
for mieba_number in range(number_miebas_y):
create_mieba(ai_settings,screen,miebas,mieba_number,
colmns_number)
the sixth
class Settings():
def __init__(self):
self.screen_width=1200
self.screen_height=800
self.bg_color=(255,255,255)
self.ironman_speed_factor=1.5
self.bullet_speed_factor=4.5
self.bullet_width=20
self.bullet_height=3
self.bullet_color=255,215,0
self.bullets_allowed=5
以上就是所有代碼,但是運(yùn)行總是TypeError: 'float' object cannot be interpreted as an integer
我的構(gòu)思是將發(fā)射子彈的飛船放在屏幕右邊中間,外星人放在左側(cè)構(gòu)建成群的。
希望大佬看后能幫忙解惑一下哪里編寫不對,外星人的放置有沒有什么其他方法
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。