鱼C论坛

 找回密码
 立即注册
查看: 1696|回复: 6

[已解决]飞机大战

[复制链接]
发表于 2020-7-3 14:47:56 | 显示全部楼层 |阅读模式

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

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

x
跟着小甲鱼做飞机大战,但载入我方飞机这边为什么会报错呀~代码也没打错啊
最佳答案
2020-7-3 20:11:32
你的缩进不对,改成
  1. import pygame

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

  5.         self.me1 = pygame.image.load("images/me1.png").convert_alpha()
  6.         self.me2 = pygame.image.load("images/me2.png").convert_alpha()
  7.         self.rect = self.me1.get_size()
  8.         self.width,self.height = bg_size[0],bg_size[1]
  9.         self.rect.left,self.rect.top = \
  10.                   (self.width - self.rect.width) // 2, \
  11.                   self.height - self.rect.height - 60
  12.         self.speed = 10

  13.     def MoveUp(self):
  14.         if self.rect.top > 0:
  15.            self.rect.top -= self.speed
  16.         else:
  17.            self.rect.top = 0
  18.     def MoveDown(self):
  19.         if self.rect.bottom < self.height - 60:
  20.            self.rect.top += self.speed
  21.         else:
  22.            self.rect.bottom = self.height - 60
  23.     def MoveLeft(self):
  24.         if self.rect.left > 0:
  25.            self.rect.left -= self.speed
  26.         else:
  27.            self.rect.left = 0
  28.     def MoveRight(self):
  29.         if self.rect.right < self.width:
  30.            self.rect.right += self.speed
  31.         else:
  32.            self.rect.right = self.width
复制代码
QQ浏览器截图20200703144627.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-3 14:50:27 | 显示全部楼层
  1. import pygame

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

  5.      self.me1 = pygame.image.load("images/me1.png").convert_alpha()
  6.      self.me2 = pygame.image.load("images/me2.png").convert_alpha()
  7.      self.rect = self.me1.get_size()
  8.      self.width,self.height = bg_size[0],bg_size[1]
  9.      self.rect.left,self.rect.top = \
  10.                                   (self.width - self.rect.width) // 2, \
  11.                                   self.height - self.rect.height - 60
  12.      self.speed = 10

  13.      def MoveUp(self):
  14.           if self.rect.top > 0:
  15.                self.rect.top -= self.speed
  16.           else:
  17.                self.rect.top = 0
  18.      def MoveDown(self):
  19.           if self.rect.bottom < self.height - 60:
  20.                self.rect.top += self.speed
  21.           else:
  22.                self.rect.bottom = self.height - 60
  23.      def MoveLeft(self):
  24.           if self.rect.left > 0:
  25.                self.rect.left -= self.speed
  26.           else:
  27.                self.rect.left = 0
  28.      def MoveRight(self):
  29.           if self.rect.right < self.width:
  30.                self.rect.right += self.speed
  31.           else:
  32.                self.rect.right = self.width
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 14:52:22 | 显示全部楼层
你确定实例化MyPlane的时候,窗口已经被建立了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 14:56:10 | 显示全部楼层


缩进乱了:

  1. import pygame

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

  5.         self.me1 = pygame.image.load("images/me1.png").convert_alpha()
  6.         self.me2 = pygame.image.load("images/me2.png").convert_alpha()
  7.         self.rect = self.me1.get_size()
  8.         self.width,self.height = bg_size[0],bg_size[1]
  9.         self.rect.left,self.rect.top = \
  10.                   (self.width - self.rect.width) // 2, \
  11.                   self.height - self.rect.height - 60
  12.         self.speed = 10

  13.     def MoveUp(self):
  14.         if self.rect.top > 0:
  15.            self.rect.top -= self.speed
  16.         else:
  17.            self.rect.top = 0
  18.     def MoveDown(self):
  19.         if self.rect.bottom < self.height - 60:
  20.            self.rect.top += self.speed
  21.         else:
  22.            self.rect.bottom = self.height - 60
  23.     def MoveLeft(self):
  24.         if self.rect.left > 0:
  25.            self.rect.left -= self.speed
  26.         else:
  27.            self.rect.left = 0
  28.     def MoveRight(self):
  29.         if self.rect.right < self.width:
  30.            self.rect.right += self.speed
  31.         else:
  32.            self.rect.right = self.width
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 15:00:50 | 显示全部楼层
me = myPlane.MyPlane(bg_size)

screen.blit(background,(0,0))
        
screen.blit(me.image,me.rect)

应该问题的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 15:39:26 | 显示全部楼层
1815702237 发表于 2020-7-3 15:00
me = myPlane.MyPlane(bg_size)

screen.blit(background,(0,0))

1,请回复我,不然我看不见。
2,发完整代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 20:11:32 | 显示全部楼层    本楼为最佳答案   
你的缩进不对,改成
  1. import pygame

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

  5.         self.me1 = pygame.image.load("images/me1.png").convert_alpha()
  6.         self.me2 = pygame.image.load("images/me2.png").convert_alpha()
  7.         self.rect = self.me1.get_size()
  8.         self.width,self.height = bg_size[0],bg_size[1]
  9.         self.rect.left,self.rect.top = \
  10.                   (self.width - self.rect.width) // 2, \
  11.                   self.height - self.rect.height - 60
  12.         self.speed = 10

  13.     def MoveUp(self):
  14.         if self.rect.top > 0:
  15.            self.rect.top -= self.speed
  16.         else:
  17.            self.rect.top = 0
  18.     def MoveDown(self):
  19.         if self.rect.bottom < self.height - 60:
  20.            self.rect.top += self.speed
  21.         else:
  22.            self.rect.bottom = self.height - 60
  23.     def MoveLeft(self):
  24.         if self.rect.left > 0:
  25.            self.rect.left -= self.speed
  26.         else:
  27.            self.rect.left = 0
  28.     def MoveRight(self):
  29.         if self.rect.right < self.width:
  30.            self.rect.right += self.speed
  31.         else:
  32.            self.rect.right = self.width
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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