设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Pygame 第6课】 面向对象的游戏设计

[复制链接]

0

主题

0

好友

14

积分

新手上路

Rank: 1

楼主
发表于 2018-8-18 17:34:53 |显示全部楼层

  1. class Bullet:
  2.     x = 0
  3.     y = -1
  4.     image = pygame.image.load('bullet.png').convert_alpha()

  5.     def move(self):
  6.         if self.y < 0:
  7.             bulletX, bulletY = pygame.mouse.get_pos()
  8.             self.x = bulletX - self.image.get_width() / 2
  9.             self.y = bulletY - self.image.get_height() / 2
  10.         else:
  11.             self.y -= 1
复制代码
我嘗試了在Class裡不要使用__init__,
但都會出錯顯示
    image = pygame.image.load('bullet.png').convert_alpha()
pygame.error: cannot convert without pygame.display initialized

感覺只有 image = pygame.image.load('bullet.png').convert_alpha()才有問題
所以寫成下面這樣子就沒錯了
  1. class Bullet:
  2.     x = 0
  3.     y = -1
  4.     def __init__(self):
  5.         self.image = pygame.image.load('bullet.png').convert_alpha()
复制代码
但是我不懂為什麼子彈圖片一定要初始化?
不是給了圖片就好了嗎?
想了很久  没有搞明白
谢谢老师
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

沙发
发表于 2018-8-19 19:55:08 |显示全部楼层
crossin先生 发表于 2018-8-19 14:34
执行先后顺序不一样
不放在 __init__ 里,你这句话执行的时候,pygame还没初始化 ...

原來如此
谢谢老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-6 21:54 , Processed in 0.027750 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部