鱼C论坛

 找回密码
 立即注册
查看: 2334|回复: 4

'MyPlane' object has no attribute 'image'

[复制链接]
发表于 2019-5-30 07:22:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
File "C:\Users\***\Desktop\飞机大战\myplane.py", line 23, in __init__
    self.mask = pygame.mask.from_surface(self.image)
AttributeError: 'MyPlane' object has no attribute 'image'
  1. self.mask = pygame.mask.from_surface(self.image)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-30 07:33:40 | 显示全部楼层
'MyPlane' object has no attribute 'image'   这句还看不懂吗
再说你代码只贴一句   又有谁能回答了你的问题呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-5-30 07:45:55 | 显示全部楼层
wp231957 发表于 2019-5-30 07:33
'MyPlane' object has no attribute 'image'   这句还看不懂吗
再说你代码只贴一句   又有谁能回答了你的 ...

受教了!不过其他地方也用了image属性,怎么提示没有属性呢?
  1. import pygame

  2. class MyPlane(pygame.sprite.Sprite):
  3.     def __init__(self,bg_size):
  4.         pygame.sprite.Sprite.__init__(self)

  5.         self.image1 = pygame.image.load("images/me1.png").convert_alpha()
  6.         self.image2 = pygame.image.load("images/me2.png").convert_alpha()
  7.         self.destroy_images = []
  8.         self.destroy_images.extend([\
  9.             pygame.image.load("images/me_destroy_1.png").convert_alpha(),\
  10.             pygame.image.load("images/me_destroy_2.png").convert_alpha(),\
  11.             pygame.image.load("images/me_destroy_3.png").convert_alpha(),\
  12.             pygame.image.load("images/me_destroy_4.png").convert_alpha(),\
  13.             ])
  14.         self.rect = self.image1.get_rect()
  15.         self.width,self.height = bg_size[0],bg_size[1]
  16.         self.rect.left,self.rect.top = \
  17.                                      (self.width - self.rect.width)//2,\
  18.                                      self.height - self.rect.height - 60
  19.         self.speed = 10
  20.         self.active = True
  21.         self.mask = pygame.mask.from_surface(self.image)

  22.     def moveUp(self):
  23.         if self.rect.top >0:
  24.             self.rect.top -= self.speed
  25.         else:
  26.             self.rect.top

  27.     def moveDown(self):
  28.         if self.rect.bottom < self.height - 60:
  29.             self.rect.top += self.speed
  30.         else:
  31.             self.rect.bottom = self.height - 60

  32.     def moveLeft(self):
  33.         if self.rect.left > 0:
  34.             self.rect.left -= self.speed
  35.         else:
  36.             self.rect.left = 0


  37.     def moveRight(self):
  38.         if self.rect.right < self.width:
  39.             self.rect.left += self.speed
  40.         else:
  41.             self.rect.right = self.width
  42.         
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 08:00:24 | 显示全部楼层
z1692300826 发表于 2019-5-30 07:45
受教了!不过其他地方也用了image属性,怎么提示没有属性呢?

我不懂类的编写呢,所以无法帮你修正
pygame.image.load("images/me_destroy_3.png").convert_alpha(),\
这个pygame 是具备image属性的  
而你的MyPlane 是没有image属性的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 10:42:19 | 显示全部楼层

  1. self.mask = pygame.mask.from_surface(self.image)
复制代码

改成

  1. self.mask = pygame.mask.from_surface(self, image)
复制代码

试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-16 03:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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