找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3660|回复: 1

[求助] 新人求助!这个问题怎么解决啊

2

主题

2

帖子

2

积分

贫民

积分
2
python_player 发表于 2017-7-22 14:56:40 | 显示全部楼层 |阅读模式
TypeError: add() argument after * must be an iterable, not Settings

我的代码是这样的
import sys
import pygame
from bullet import Bullet
def check_keydown_events(event,ai_settings,screen,plane,bullets):
    if event.key==pygame.K_RIGHT:
         plane.moving_right=True
    elif  event.key==pygame.K_LEFT:
         plane.moving_left=True
    elif  event.key==pygame.K_UP:
         plane.moving_up=True
    elif  event.key==pygame.K_DOWN:
         plane.moving_down=True
    elif  event.key==pygame.K_SPACE:
         new_bullet=Bullet(ai_settings,screen,plane)
         bullets.add(new_bullet)  
def check_keyup_events(event,plane):  
    if event.key==pygame.K_RIGHT:
         plane.moving_right=False
    elif event.key==pygame.K_LEFT:
          plane.moving_left=False
    elif  event.key==pygame.K_UP:
         plane.moving_up=False
    elif  event.key==pygame.K_DOWN:
         plane.moving_down=False
def check_events(ai_settings,screen,plane,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,plane,bullets)
          elif event.type==pygame.KEYUP:
                check_keyup_events(event,plane)
def update_screen(ai_settings,screen,plane,bullets):
    screen.fill(ai_settings.bg_color)
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    plane.blitme()
    pygame.display.flip()
   
回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
WeiGlory 发表于 2017-8-22 23:47:45 | 显示全部楼层
是在做打飞机的游戏吧,前段我也遇到了这个问题   我分析你的这贴的部分代码应该没有问题 问题在bullet.py里面  看看里面类的继承如class Bullet(sprite):   以及super.(Bullet,self).__init__()这两处有没有写对  我当时就是这部分出了点小差错   你应该也是类继承的代码出现了问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表