Ejemplo n.º 1
0
    def __init__(self, spriteGroup, hp, moveSpeed, x, y, img, bulletImg):
        self.spriteGroup = spriteGroup
        self.screenSize = pygame.display.get_surface().get_size()
        #self.hp = hp # 적의 체력
        self.moveSpeed = moveSpeed  # 적의 이동 속도
        self.lastTime = 0.00
        self.shootAngle = 0.0
        self.shootAngleRate = 0.0
        self.shootSpeed = 10.0
        self.shootSpeedRate = 0.0
        self.colliderRange = 25.0
        self.shootInterval = 0.1  # N초마다 총알 쏘기
        self.sceneManager = sceneManager.SceneManager()
        self.gameLevel = self.sceneManager.gameLevel
        self.hp = self.sceneManager.gameLevel  # 적의 체력
        self.player = self.sceneManager.getPlayer()
        self.bulletImg = bulletImg
        self.onEnemyDead = None

        Mixer.init()
        self.destroySound = Mixer.Sound('assets/sounds/destroy.mp3')

        super().__init__(x, y, img)

        spriteGroup.add(self)
Ejemplo n.º 2
0
    def __init__(self, screen):
        print("********** Init TitleScene **********")
        self.screenX, self.screenY = pygame.display.get_surface().get_size()
        self.allSprites = pygame.sprite.Group() #allSprites 객체 생성
        self.prevTime = pygame.time.get_ticks()
        self.elapsedTime = 0.0

        self.bg = Object(self.screenX / 2, self.screenY / 2, 'assets/images/titleSceneBg.png')
        self.titleImage = Object(self.screenX / 2, 190, 'assets/images/title.png')

        self.allSprites.add(self.bg)
        self.allSprites.add(self.titleImage)

        self.sceneManager = sceneManager.SceneManager()
        self.screen = screen
        self.buttonImage1 = "assets/images/buttonPlay.png"
        self.buttonImage2 = "assets/images/buttonOptions.png"
        self.buttonImage3 = "assets/images/buttonQuit.png"
        self.menu = ["Play", "HowToPlay", "Quit"]

        for i in range(3):
            if i == 0:
                self.menu[i] = (Object(0, 0, self.buttonImage1))
            elif i == 1:
                self.menu[i] = (Object(0, 0, self.buttonImage2))
            else:
                self.menu[i] = (Object(0, 0, self.buttonImage3))
            self.menu[i].x = 0.5 * self.screenX
            self.menu[i].y = 0.55 * self.screenY + i * 110
            self.menu[i].update()

        Mixer.init()
        Mixer.music.load("assets/sounds/title.mp3")
        Mixer.music.play()
Ejemplo n.º 3
0
    def __init__(self, x, y, spriteGroup, player, use=True):
        super().__init__(x, y, "assets/images/item.png")
        self.spriteGroup = spriteGroup
        self.sceneManager = sceneManager.SceneManager()
        self.player = player
        self.use = use
        self.speed = 8
        self.angle = rnd.randrange(2, 8, 2)
        self.xMove = (self.speed / (self.angle + 1))
        self.yMove = (self.speed - (self.speed / (self.angle + 1)))

        self.spriteGroup.add(self)
Ejemplo n.º 4
0
    def __init__(self, screen):
        print("********** Init GameOverScene **********")
        self.img = 'assets/images/gameOverScene.png'
        self.image = pygame.transform.scale(pygame.image.load(self.img),
                                            (480, 800))
        self.screen = screen
        self.rect = self.image.get_rect()
        self.x = self.image.get_width()
        self.y = self.image.get_height()

        self.sceneManager = sceneManager.SceneManager()

        Mixer.init()
        Mixer.music.load("assets/sounds/title.mp3")  # sound 변경 예정
        Mixer.music.play()
Ejemplo n.º 5
0
    def __init__(self, spriteGroup, x, y, angle, angleRate, speed, speedRate,
                 bulletImg):
        self.spriteGroup = spriteGroup
        self.angle = angle  # 총알이 나아가는 각도
        self.angleRate = angleRate  # 프레임당 각도 변화율
        self.speed = speed  # 총알이 나아가는 속도
        self.speedRate = speedRate  # 프레임당 속도 변화율
        self.screenSize = pygame.display.get_surface().get_size()
        self.sceneManager = sceneManager.SceneManager()
        self.player = self.sceneManager.getPlayer()
        super().__init__(x, y, bulletImg)

        # 총알 회전도에 따라서 image 회전
        imageAngle = self.angle
        if imageAngle < 0.0:
            imageAngle += 360.0
        self.image = pygame.transform.rotate(self.image,
                                             (360 - imageAngle) + 90)
Ejemplo n.º 6
0
    def __init__(self, screen, gameLevel=1):
        print("********** Init StageThreeScene **********")
        self.allSprites = pygame.sprite.Group()  #allSprites 객체 생성
        self.now = "stageThree"
        self.screen = screen
        self.screenX, self.screenY = pygame.display.get_surface().get_size()
        self.enemyList = []
        self.stageStartTime = pygame.time.get_ticks()  # 스테이지 시작 시간
        self.nextEnemyGenTime = 1.0
        self.gameClear = Object(self.screenX / 2, self.screenY / 2,
                                "assets/images/gameClear.png")
        self.stageClearYn = False
        self.gameLevel = gameLevel
        self.sceneManager = sceneManager.SceneManager()
        self.enemyGenInfoList = []
        self.lastTime = 1600.0

        self.initializeEnemyGenInfoList()
        self.initializeBackground()
        self.initializeBGM()
        self.initializePlayer()
        self.initializeItem()
Ejemplo n.º 7
0
    def __init__(self, screen):
        print("********** Init OptionsScene **********")
        self.img = 'assets/images/buttonOptions.png'
        self.image = pygame.transform.scale(pygame.image.load(self.img),
                                            (480, 200))
        self.rect = self.image.get_rect()
        self.x = self.image.get_width()
        self.y = self.image.get_height()
        self.screen = screen
        self.player = None
        self.screenX, self.screenY = pygame.display.get_surface().get_size()
        self.sceneManager = sceneManager.SceneManager()
        self.buttonImage1 = "assets/images/buttonOptionsEasy.png"
        self.buttonImage2 = "assets/images/buttonOptionsNormal.png"
        self.buttonImage3 = "assets/images/buttonOptionsHard.png"
        self.buttonImage4 = "assets/images/buttonQuit.png"
        self.selectOptionImage = "assets/images/bullet01.png"
        self.menu = ["Easy", "Normal", "Hard", "Quit"]

        self.selectOption = (Object(0, 0, self.selectOptionImage))

        for i in range(4):
            if i == 0:
                self.menu[i] = (Object(0, 0, self.buttonImage1))
            elif i == 1:
                self.menu[i] = (Object(0, 0, self.buttonImage2))
            elif i == 2:
                self.menu[i] = (Object(0, 0, self.buttonImage3))
            else:
                self.menu[i] = (Object(0, 0, self.buttonImage4))
            self.menu[i].x = 0.5 * self.screenX
            self.menu[i].y = 0.55 * self.screenY + i * 110
            self.menu[i].update()

        Mixer.init()
        Mixer.music.load("assets/sounds/title.mp3")
        Mixer.music.play()
Ejemplo n.º 8
0
    def __init__(self, screen, spriteGroup):
        super().__init__(screen.get_width() / 2,
                         screen.get_height() / 2 + 200,
                         "assets/images/player.png")
        self.spriteGroup = spriteGroup
        self.screen = screen
        self.sceneManager = sceneManager.SceneManager()
        self.screenX, self.screenY = pygame.display.get_surface().get_size()
        self.speed = 5
        self.lastTime = 0.00
        self.shootInterval = 0.1
        self.hp = 5
        self.playerHpBarList = []

        self.leftBullet = False
        self.rightBullet = False

        for i in range(self.hp):
            self.playerHpBarList.append(PlayerHpBar(i * 30 + 30, 770))
            self.spriteGroup.add(self.playerHpBarList[i])

        spriteGroup.add(self)
        Mixer.init()
        self.gunSound = Mixer.Sound('assets/sounds/gun.mp3')
Ejemplo n.º 9
0
size = [480, 800]
screen = pygame.display.set_mode(size)
clock = pygame.time.Clock()
pygame.display.set_caption("Space Shooter")
isRun = True
isPlay = False

# 프로세스의 현재 경로를 루트로 변경함.
path = os.path.join(os.path.dirname(__file__), "../")
os.chdir(path)

allSprites = pygame.sprite.Group()  #allSprites 객체 생성

titleScene = titleScene.TitleScene(screen)  #타이틀 화면 생성
sceneManager = sceneManager.SceneManager()  #sceneManager 생성
sceneManager.setScene(titleScene)  #시작화면을 titleScene 화면으로 고정

while isRun:
    clock.tick(60)

    mouse = pygame.mouse.get_pos()
    key = pygame.key.get_pressed()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            isRun = False

    sceneManager.update()
    sceneManager.render()
Ejemplo n.º 10
0
 def __init__(self, x, y):
     super().__init__(x, y, "assets/images/player_bullet.png")
     self.speed = 10
     self.screenSize = pygame.display.get_surface().get_size()
     self.sceneManager = sceneManager.SceneManager()
Ejemplo n.º 11
0
    def __init__(self, screen, gameLevel=1):
        print("********** Init StageOneScene **********")
        self.allSprites = pygame.sprite.Group()  #allSprites 객체 생성
        self.now = "stageOne"
        self.screen = screen
        self.screenX, self.screenY = pygame.display.get_surface().get_size()
        self.enemyList = []
        self.stageStartTime = pygame.time.get_ticks()  # 스테이지 시작 시간
        self.gameClear = Object(self.screenX / 2, self.screenY / 2,
                                "assets/images/gameClear.png")
        self.stageClearYn = False
        self.gameLevel = gameLevel
        self.sceneManager = sceneManager.SceneManager()
        self.lastTime = 1600.0
        # 일반 적이 출현하는 정보를 적어놓는 리스트
        # Tuple 값 해석
        # 튜플 요소 0번째: 적이 출현하는 시간대 (초 단위)
        # 튜플 요소 1번째: 적의 Type (0: 일반 적, 1: 보스)
        # 튜플 요소 2번째: 적이 출현하는 x 좌표
        # 튜플 요소 3번째: 적이 출현하는 y 좌표
        self.enemyGenInfoList = [
            (1.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (1.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (5.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (8.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (9.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (9.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (12.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (14.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (15.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (15.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (17.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (18.5, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (20.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (22.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (22.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (23.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (28.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (31.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (32.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (32.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (35.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (37.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (38.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (38.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (40.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (41.5, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (43.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (45.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (45.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (46.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (49.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (50.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (50.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (52.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (55.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (56.0, 0, random.randrange(50.0, self.screenX - 50.0), -15.0),
            (56.0, 1, self.screenX / 2.0, -15.0),
        ]

        self.initializeBackground()
        self.initializeBGM()
        self.initializePlayer()
        self.initializeItem()