鱼C论坛

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

小白求助。

[复制链接]
发表于 2022-3-30 16:39:17 | 显示全部楼层 |阅读模式

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

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

x
代码没有报错。为什么无法加载图片?
import pygame
from plane_sprites import *

class PlaneGame(object):
    def __init__(self):
        print("游戏初始化")

        self.screen = pygame.display.set_mode(SCREEN_RECT.size)
        self.clock = pygame.time.Clock()
        self.__create_sprites()

    def __create_sprites(self):

        bg1 = Background("./images/background.png")
        bg2 = Background("./images/background.png")

        self.back_group = pygame.sprite.Group(bg1,bg2)

    def start_game(self):
        print("游戏开始...")
        while True:
            self.clock.tick(FRAME_PER_SEC)
            self.__event_handler()
            self.__check_collide()
            self.__update_sprites()


    def __event_handler(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                PlaneGame.__game_over()

    def __check_collide(self):
        pass

    def __update_sprites(self):
        self.back_group.update()
        self.back_group.draw(self.screen)

    @staticmethod
    def __game_over():
        print("游戏结束...")
        pygame.quit()
        exit()

if __name__ == '__main__':

    game = PlaneGame()
    game.start_game()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-30 18:23:13 | 显示全部楼层
把你的代码上全吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 19:20:34 | 显示全部楼层
ba21 发表于 2022-3-30 18:23
把你的代码上全吧。

稍等。我先把敌机添加上去。至于为什么不能加载图片稍后帮我看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 19:23:01 | 显示全部楼层
import pygame
SCREEN_RECT = pygame.Rect(0,0,480,700)
FRAME_PER_SEC = 60
CREATE_ENEMY_EVENT = pygame.USEREVENT

class GameSprite(pygame.sprite.Sprite):

    def __init__(self, image_name,speed=1):

        super().__init__()

        self.image = pygame.image.load(image_name)
        self.rect = self.image.get_rect()
        self.speed = speed

    def update(self):

        self.rect.y += self.speed

class Background(GameSprite):
    def __init__(self, is_alt=False):
        super().__init__("G:/飞机大战/images/background.png")
        if is_alt:
            self.rect.y = - self.rect.height

    def update(self):
        super().update()

        if self.rect.y >= SCREEN_RECT.height:
            self.rect.y = -self.rect.height

class Enemy(GameSprite):
    def __init__(self):
        super().__init__("G:/飞机大战/images/enemy1.png")

        pass
    def update(self):
        super().update()
        if self.rect.y >= SCREEN_RECT.height:
            print("飞出屏幕。需要删除...")
        pass






(精灵组)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 19:23:32 | 显示全部楼层
本帖最后由 ynoneone 于 2022-3-30 19:29 编辑
import pygame
from plane_sprites import *


class PlaneGame(object):
    def __init__(self):
        print("游戏初始化")

        self.screen = pygame.display.set_mode(SCREEN_RECT.size)
        self.clock = pygame.time.Clock()
        self.__create_sprites()

        pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000)

    def __create_sprites(self):

        bg1 = Background()
        bg2 = Background(True)
        self.back_group = pygame.sprite.Group(bg1, bg2)

        self.enemy_group = pygame.sprite.Group()



    def start_game(self):
        print("游戏开始...")
        while True:
            self.clock.tick(FRAME_PER_SEC)
            self.__event_handler()
            self.__check_collide()
            self.__update_sprites()

    def __event_handler(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                PlaneGame.__game_over()
            elif event.type == CREATE_ENEMY_EVENT:
                print("敌机出场...")

                enemy = Enemy()

                self.enemy_group.add(enemy)




    def __check_collide(self):
        pass

    def __update_sprites(self):
        self.back_group.update()
        self.back_group.draw(self.screen)
        self.enemy_group.update()
        self.enemy_group.draw(self.screen)

    @staticmethod
    def __game_over():
        print("游戏结束...")
        pygame.quit()
        exit()


if __name__ == '__main__':
    game = PlaneGame()
    game.start_game()

(主控文件)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-30 19:39:57 | 显示全部楼层

你的代码很乱,很杂。
图片加载了,当然还要画上去。
screen.blit(background, (0, 0)) # 画背景

先多敲敲别人现成的代码,然后理情思路再来搞自己的吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 19:47:56 | 显示全部楼层
ba21 发表于 2022-3-30 19:39
你的代码很乱,很杂。
图片加载了,当然还要画上去。
screen.blit(background, (0, 0)) # 画背景

添加到哪里?

还在练习。最后肯定不是这样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 02:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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