鱼C论坛

 找回密码
 立即注册
查看: 1806|回复: 7

pygame没报错却黑屏,音乐都有

[复制链接]
发表于 2020-7-26 19:07:39 | 显示全部楼层 |阅读模式

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

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

x
  1. import pygame
  2. import sys
  3. import traceback
  4. from pygame.locals import *
  5. from random import *

  6. # 球类继承自Spirte类
  7. class Ball(pygame.sprite.Sprite):
  8.     def __init__(self, grayball_image,  position, speed, bg_size):
  9.         # 初始化动画精灵
  10.         pygame.sprite.Sprite.__init__(self)

  11.         self.grayball_image = pygame.image.load(grayball_image).convert_alpha()
  12.         self.rect = self.grayball_image.get_rect()
  13.         # 将小球放在指定位置
  14.         self.rect.left, self.rect.top = position
  15.         self.side = [choice([-1, 1]), choice([-1, 1])]
  16.         self.speed = speed
  17.         self.collide = False
  18.         self.control = False
  19.         self.width, self.height = bg_size[0], bg_size[1]
  20.         self.radius = self.rect.width / 2

  21.     def move(self):
  22.         if self.control:
  23.             self.rect = self.rect.move(self.speed)
  24.         else:
  25.             self.rect = self.rect.move((self.side[0] * self.speed[0], \
  26.                                         self.side[1] * self.speed[1]))

  27.         # 如果小球的左侧出了边界,那么将小球左侧的位置改为右侧的边界
  28.         # 这样便实现了从左边进入,右边出来的效果
  29.         if self.rect.right <= 0:
  30.             self.rect.left = self.width

  31.         elif self.rect.left >= self.width:
  32.             self.rect.right = 0

  33.         elif self.rect.bottom <= 0:
  34.             self.rect.top = self.height

  35.         elif self.rect.top >= self.height:
  36.             self.rect.bottom = 0
  37.         
  38. def main():
  39.     pygame.init()

  40.     grayball_image = "UFO.jpg"
  41.     bg_image = "background.jpg"

  42.     running = True

  43.     # 添加背景音乐
  44.     pygame.mixer.music.load("music.ogg")
  45.     pygame.mixer.music.play()

  46.     # 添加音效
  47.     loser_sound = pygame.mixer.Sound("fail.ogg")
  48.     laugh_sound = pygame.mixer.Sound("laugh.ogg")
  49.     winner_sound = pygame.mixer.Sound("win.ogg")

  50.     # 根据背景图片指定游戏界面尺寸
  51.     bg_size = width, height = 1200,800
  52.     screen = pygame.display.set_mode(bg_size)
  53.     pygame.display.set_caption("Play the ball - FishC Demo")

  54.     background = pygame.image.load(bg_image).convert_alpha()

  55.     # 用来存放小球对象的列表
  56.     balls = []
  57.     group = pygame.sprite.Group()

  58.     # 创建 5 个小球
  59.     for i in range(5):
  60.         # 位置随机,速度随机
  61.         position = randint(0, width-100), randint(0, height-100)
  62.         speed = [randint(1, 10), randint(1, 10)]
  63.         ball = Ball(grayball_image, position, speed, bg_size)
  64.         # 检测新诞生的球是否会卡住其他球
  65.         while pygame.sprite.spritecollide(ball, group, False, pygame.sprite.collide_circle):
  66.             ball.rect.left, ball.rect.top = randint(0, width-100), randint(0, height-100)
  67.         balls.append(ball)
  68.         group.add(ball)


  69. if __name__ == "__main__":
  70.     try:
  71.         main()
  72.     except SystemExit:
  73.         pass
  74.     except:
  75.         traceback.print_exc()
  76.         pygame.quit()
  77.         input()
  78.    
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-26 19:40:38 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

 楼主| 发表于 2020-7-26 20:12:06 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2020-7-26 20:28:28 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

 楼主| 发表于 2020-7-26 20:33:47 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2020-7-27 10:11:02 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

 楼主| 发表于 2020-7-27 17:31:04 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2020-7-28 09:03:21 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-18 13:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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