鱼C论坛

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

关于飞机大战第93课的问题

[复制链接]
发表于 2020-2-8 17:08:01 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 zltzlt 于 2020-2-8 17:14 编辑
  1.         #画大飞机
  2.         for each in bigenemys:
  3.             if each.active:
  4.                 each.move()
  5.                 pygame.draw.line(screen,BLACK,\
  6.                     (each.rect.left,each.rect.top-5),\
  7.                                  (each.rect.right,each.rect.top-5),2)
  8.                 bl=each.HP/enemy.Bigenemy.HP
  9.                 if bl > 0.2:
  10.                     color = GREEN
  11.                 else :
  12.                     color = RED
  13.                 pygame.draw.line(screen,color,\
  14.                                  (each.rect.left,each.rect.top-5),\
  15.                                  (each.rect.left+bl*each.rect.width,each.rect.top-5),2)
复制代码


为什么我写的时候 报错
  1.     pygame.draw.line(screen,color,\
  2. DeprecationWarning: an integer is required (got type float).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
复制代码


提示我不能用小数
可是我看视频是可以用小数的啊
是我哪写错了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 17:08:46 | 显示全部楼层
本帖最后由 zltzlt 于 2020-2-8 17:14 编辑
  1. import pygame
  2. import sys
  3. import traceback
  4. import myplane
  5. import enemy
  6. import bullet

  7. pygame.init()
  8. pygame.mixer.init()

  9. BLACK=(0,0,0)
  10. RED=(255,0,0)
  11. GREEN =(0,255,0)
  12. size = width,height = 480,700
  13. screen=pygame.display.set_mode(size)
  14. ######一定记得要写标题########
  15. pygame.display.set_caption('飞机大战')
  16. background=pygame.image.load('images/background.png').convert_alpha()


  17. # 载入游戏音乐
  18. pygame.mixer.music.load("sound/game_music.ogg")
  19. pygame.mixer.music.set_volume(0.2)
  20. bullet_sound = pygame.mixer.Sound("sound/bullet.wav")
  21. bullet_sound.set_volume(0.2)
  22. bomb_sound = pygame.mixer.Sound("sound/use_bomb.wav")
  23. bomb_sound.set_volume(0.2)
  24. supply_sound = pygame.mixer.Sound("sound/supply.wav")
  25. supply_sound.set_volume(0.2)
  26. get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
  27. get_bomb_sound.set_volume(0.2)
  28. get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
  29. get_bullet_sound.set_volume(0.2)
  30. upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
  31. upgrade_sound.set_volume(0.2)
  32. enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_flying.wav")
  33. enemy3_fly_sound.set_volume(0.2)
  34. enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
  35. enemy1_down_sound.set_volume(0.1)
  36. enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
  37. enemy2_down_sound.set_volume(0.2)
  38. enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
  39. enemy3_down_sound.set_volume(0.5)
  40. me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
  41. me_down_sound.set_volume(0.2)
  42. def add_smallenemy(group1,group2,num):
  43.     for i in range(num):
  44.         e1=enemy.Smallenemy(size)
  45.         group1.add(e1)
  46.         group2.add(e1)
  47. def add_midenemy(group1,group2,num):
  48.     for i in range(num):
  49.         e2=enemy.Midenemy(size)
  50.         group1.add(e2)
  51.         group2.add(e2)
  52. def add_bigenemy(group1,group2,num):
  53.     for i in range(num):
  54.         e3=enemy.Bigenemy(size)
  55.         group1.add(e3)
  56.         group2.add(e3)

  57. def main():
  58.     #各种初始化
  59.     pygame.mixer.music.play(-1)
  60.     clock= pygame.time.Clock()
  61.    
  62.     #生成我方飞机
  63.     me=myplane.Myplane(size)
  64.     #生成敌机组
  65.     enemys = pygame.sprite.Group()
  66.     #生成小飞机
  67.     smallenemys = pygame.sprite.Group()
  68.     add_smallenemy(enemys,smallenemys,15)
  69.     #生成中飞机
  70.     midenemys = pygame.sprite.Group()
  71.     add_midenemy(enemys,midenemys,6)
  72.     #生成大飞机
  73.     bigenemys = pygame.sprite.Group()
  74.     add_bigenemy(enemys,bigenemys,2)
  75.     #生成子弹
  76.     bullets = []
  77.     bullet_num = 4
  78.     bullet_index=0
  79.     for i in range(bullet_num):
  80.         bullets.append(bullet.Bullet1(me.rect.midtop))
  81.    
  82.    
  83.     #延时
  84.     delay = 100
  85.    
  86.     switch = False
  87.     runing=True
  88.     while runing:
  89.         for event in pygame.event.get():
  90.             if event.type == pygame.QUIT:
  91.                 pygame.quit()
  92.                 sys.exit()
  93.         key_pressed = pygame.key.get_pressed()
  94.         if key_pressed[pygame.K_w] or key_pressed[pygame.K_UP]:
  95.             me.moveup()
  96.         if key_pressed[pygame.K_s] or key_pressed[pygame.K_DOWN]:
  97.             me.movedown()
  98.         if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]:
  99.             me.moveleft()
  100.         if key_pressed[pygame.K_d] or key_pressed[pygame.K_RIGHT]:
  101.             me.moveright()
  102.         #设定延时 5帧翻转一次
  103.         if delay:
  104.             delay-=1
  105.         else:
  106.             delay=100
  107.         if not (delay%5):
  108.             switch = not switch

  109.         screen.blit(background,(0,0))
  110.         #画子弹_发射子弹
  111.         if not (delay%10):
  112.             bullets[bullet_index].reset(me.rect.midtop)
  113.             bullet_index=(bullet_index+1)%bullet_num
  114.         #画子弹_子弹飞行
  115.         for each in bullets:
  116.             if each.active:
  117.                 each.move()
  118.                 screen.blit(each.image,each.rect)
  119.                 enemy_hit = pygame.sprite.spritecollide(each,enemys,False,\
  120.                                                         pygame.sprite.collide_mask)
  121.                 if enemy_hit:
  122.                     each.active =False
  123.                     for e in enemy_hit:
  124.                         if e in midenemys or e in bigenemys:
  125.                             e.HP-=1
  126.                             if e.HP == 0:
  127.                                 e.active = False
  128.                         else:
  129.                             e.active = False
  130.             else:
  131.                 each.reset(me.rect.midtop)
  132.                
  133.         #画大飞机
  134.         for each in bigenemys:
  135.             if each.active:
  136.                 each.move()
  137.                 pygame.draw.line(screen,BLACK,\
  138.                     (each.rect.left,each.rect.top-5),\
  139.                                  (each.rect.right,each.rect.top-5),2)
  140.                 bl=each.HP/enemy.Bigenemy.HP
  141.                 if bl > 0.2:
  142.                     color = GREEN
  143.                 else :
  144.                     color = RED
  145.                 pygame.draw.line(screen,color,\
  146.                                  (each.rect.left,each.rect.top-5),\
  147.                                  (each.rect.left+bl*each.rect.width,each.rect.top-5),2)
  148.                 if each.rect.bottom == -50:
  149.                     enemy3_fly_sound.play(-1)
  150.                 if switch:
  151.                     screen.blit(each.image1,each.rect)
  152.                 else:
  153.                     screen.blit(each.image2,each.rect)
  154.             #毁灭
  155.             else:
  156.                 if not (delay%3):
  157.                     if not (each.index%6):
  158.                         enemy3_down_sound.play()
  159.                     screen.blit(each.image_downs[each.index],each.rect)
  160.                     each.index+=1
  161.                     if not (each.index%6):
  162.                         each.reset()
  163.                         enemy3_fly_sound.stop()
  164.         #画中飞机
  165.         for each in midenemys:
  166.             if each.active:
  167.                 each.move()
  168.                 screen.blit(each.image,each.rect)
  169.                 pygame.draw.line(screen,BLACK,\
  170.                     (each.rect.left,each.rect.top-5),\
  171.                                  (each.rect.right,each.rect.top-5),2)
  172.                 bl=each.HP/enemy.Midenemy.HP
  173.                 if bl > 0.2:
  174.                     color = GREEN
  175.                 else :
  176.                     color = RED
  177.                 pygame.draw.line(screen,color,\
  178.                                  (each.rect.left,each.rect.top-5),\
  179.                                  (each.rect.left+bl*each.rect.width,each.rect.top-5),2)
  180.             #毁灭
  181.             else:
  182.                 if not (delay%3):
  183.                     if not (each.index%4):
  184.                         enemy2_down_sound.play()
  185.                     screen.blit(each.image_downs[each.index],each.rect)
  186.                     each.index+=1
  187.                     if not (each.index%4):
  188.                         each.reset()
  189.             
  190.         #画小飞机
  191.         for each in smallenemys:
  192.             if each.active:
  193.                 each.move()
  194.                 screen.blit(each.image,each.rect)
  195.             #毁灭
  196.             else:
  197.                 if not (delay%3):
  198.                     if not (each.index%4):
  199.                         enemy1_down_sound.play()
  200.                     screen.blit(each.image_downs[each.index],each.rect)
  201.                     each.index+=1
  202.                     if not (each.index%4):
  203.                         each.reset()
  204.         #检测碰撞
  205.         enemys_down = pygame.sprite.spritecollide(me,enemys,False,pygame.sprite.collide_mask)
  206.         if enemys_down:
  207.             for i in enemys_down:
  208.                 i.active = False
  209.         #画自己的飞机
  210.         if me.active:
  211.             if switch:
  212.                 screen.blit(me.image1,me.rect)
  213.             else:
  214.                 screen.blit(me.image2,me.rect)
  215.         #毁灭
  216.         else:
  217.             if not (delay%3):
  218.                 if not (each.index%4):
  219.                     me_down_sound.play()
  220.                 screen.blit(each.image_downs[each.index],each.rect)
  221.                 each.index+=1
  222.                 if not (each.index%4):
  223.                     each.reset()
  224.         
  225.         pygame.display.flip()
  226.         clock.tick(60)


  227. if __name__=='__main__':
  228.     try:
  229.         main()
  230.     except SystemExit:
  231.         pass
  232.     except:
  233.         traceback.print_exc()
  234.         pygame.quit()
  235.         input()
复制代码



这是全部的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 17:13:30 | 显示全部楼层
@zltzlt 帮他把代码用"<>"括起来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 17:14:32 | 显示全部楼层
一个账号 发表于 2020-2-8 17:13
@zltzlt 帮他把代码用""括起来

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

使用道具 举报

 楼主| 发表于 2020-2-9 14:50:32 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-12 16:40:03 | 显示全部楼层
求助
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 19:01:41 From FishC Mobile | 显示全部楼层
我的解决办法是把起始位置和终止位置分别int()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 18:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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