space invader,是外星人入侵地球的一个经典街机射击小游戏,曾经风靡世界。 以下是用pygame设计的部分代码预览:
"""pygame经典游戏space invader太空入侵者核心原理程序,本程序给作品加了封面,做了结尾设计,读者可自行完善.""" __author__ = "李兴球" __date__ = "2018年11月" import pygame from pygame.locals import * class Block(pygame.sprite.Sprite): def __init__(self,width,height,color,x,y,screen): pygame.sprite.Sprite.__init__(self) self.screen = screen self.width = width self.height = height "敌人的图像,可自行更换成漂亮的图像用pygame.image.load命令" self.image = pygame.Surface((width,height)) self.image.fill(color) self.rect = self.image.get_rect() self.rect.centerx,self.rect.centery = x,y self.xspeed = 0 self.yspeed = height pass def make_enemis(): pass def make_fighter(): fighter = Block(50,25,(255,0,0),screenwidth//2,screenheight - 50,screen) return fighter def shoot(posx,posy): red = (255,0,0) bullete = Block(15,25,red,posx,posy,screen) bullete.yspeed = -5 bullete_group.add(bullete) def display_shell(image): """显示封面""" pass def display_result(image): """显示结果""" pass if __name__ == "__main__": died_enemy_counter = 0 # 用来统计敌人死的数量 screenwidth,screenheight = 800,600 screen = pygame.display.set_mode((screenwidth,screenheight)) pygame.display.set_caption("太空入侵_封面设计与结尾") display_shell(pygame.image.load("封面.png")) # 显示封面,单击鼠标就会进入游戏环节 enemy_group = make_enemis() # 创建敌人组 enemy_amount = len(enemy_group) # 敌人总数 print("共有",str(enemy_amount),"架敌机") fighter = make_fighter() # 创建战斗机 bullete_group = pygame.sprite.Group() # 子弹组 timer_move = USEREVENT + 1 # 定时移动事件 pygame.time.set_timer(timer_move,3000) # 每3秒种发生一次 clock = pygame.time.Clock() # 时钟对象 running = True "新增的startshoot变量让主角不能连续发射" startshoot = -10 #让发射有间隔,而不是能连续发射. while running: if startshoot < 0 : startshoot = startshoot + 1 # 自增1,到0的时候就不会增了 clock.tick(30) pass ret = pygame.sprite.spritecollideany(fighter,enemy_group) # 我方与敌方的碰撞检测 if ret : running = False screen.fill((0,0,0)) # 背景色 enemy_group.draw(screen) # 在screen上重画所有小方块 bullete_group.update() # 更新坐标位置 bullete_group.draw(screen) # 重画子弹 mousex,mousey = pygame.mouse.get_pos() fighter.rect.centerx = mousex fighter.draw() pygame.display.update() if died_enemy_counter < enemy_amount : image = pygame.image.load("失败.png") else: image = pygame.image.load("成功.png") display_result(image)
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
发表评论