#!/usr/bin/env python
#coding: utf-8
import pygame
from pygame.locals import *
import os
import sys
import random

SCR_RECT = Rect(0, 0, 640, 480)
yy = 0
def main():
    pygame.init()
    screen = pygame.display.set_mode(SCR_RECT.size)
    # サウンドのロード
    Player.shot_sound = load_sound("shot.ogg")
    # スプライトグループを作成して登録
    all = pygame.sprite.RenderUpdates()
    player = pygame.sprite.Group()
    tekis = pygame.sprite.Group()
    shots = pygame.sprite.Group()
    Player.containers = all,player
    Shot.containers = all,shots
    Teki.containers = all,tekis
    # スプライトの画像を登録
    backg=load_image("j.jpg")
    Player.image = load_image("ojizousan3.png")
    Shot.image = load_image("isi.png")
    Teki.image = load_image("teki.png")
    # 自機を作成
    Player()
    teki1 = Teki(688,100,1,2)
    teki2 = Teki(688,200,1,2)
    teki3 = Teki(888,100,1,2)
    teki4 = Teki(1088,400,1,2)
    teki5 = Teki(1488,100,1,2)
    teki6 = Teki(1268,200,1,2)
    ##teki2 = Teki(33,200,233,222)
    #teki3 = Teki(119,300,333,9)
    #teki4 = Teki(119,300,333,9)
    #teki5 = Teki(119,300,333,9)
    
    
    clock = pygame.time.Clock()
    while True:
        clock.tick(60)
        collision_detection(shots,tekis)
        booll =collision_detection2(tekis,player)
        print(booll)
        if booll == False:
            exit()
        screen.fill((0, 0, 0))
        screen.blit(backg,(0,0))
        all.update()
        all.draw(screen)
        pygame.display.update()
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == KEYDOWN and event.key == K_ESCAPE:
                pygame.quit()
                sys.exit()
def collision_detection(shots, aliens):
    alien_collided = pygame.sprite.groupcollide(aliens, shots, True, True)
def collision_detection2(shots, aliens):
    alien_collided = pygame.sprite.groupcollide(aliens, shots, True, True)


class Player(pygame.sprite.Sprite):
    """自機"""
    speed = 5  # 移動速度
    reload_time = 15  # リロード時間
    def __init__(self):
        # imageとcontainersはmain()でセット
        pygame.sprite.Sprite.__init__(self, self.containers)
        self.rect = self.image.get_rect()
        self.rect.left = SCR_RECT.left  # プレイヤーが画面の一番下
        self.reload_timer = 0
    def update(self):
        # 押されているキーをチェック
        pressed_keys = pygame.key.get_pressed()
        # 押されているキーに応じてプレイヤーを移動
        if pressed_keys[K_UP]:
            self.rect.move_ip(0,-self.speed)
        elif pressed_keys[K_DOWN]:
            self.rect.move_ip(0, self.speed)
        self.rect.clamp_ip(SCR_RECT)
        # ミサイルの発射
        if pressed_keys[K_SPACE]:
            # リロード時間が0になるまで再発射できない
            if self.reload_timer > 0:
                # リロード中
                self.reload_timer -= 1
            else:
                # 発射！！！
                Player.shot_sound.play()
                Shot(self.rect.center)  # 作成すると同時にallに追加される
                #Teki(233,33,33,33)
                self.reload_timer = self.reload_time

class Teki(pygame.sprite.Sprite):
    """自機"""
    speed = 1  # 移動速度
    reload_time = 15  # リロード時間
    def __init__(self,x,y,width,height):
        pygame.sprite.Sprite.__init__(self, self.containers)
        width=self.image.get_width()
        height=self.image.get_height()
        self.rect =Rect(x,y,width,height)
        #self.rect.right = SCR_RECT.right  # プレイヤーが画面の一番下
        self.reload_timer = 0
        self.vx=0
        self.vy=0
    def update(self):
        #self.rect.right=33
        self.rect.right -= 5
        if self.rect.right == 0:
            self.rect.right=498
    def draw(self,screen):
        screen.blit(self.image,self.rect)


class Shot(pygame.sprite.Sprite):
    """プレイヤーが発射するミサイル"""
    speed = 9  # 移動速度
    def __init__(self, pos):
        # imageとcontainersはmain()でセット
        pygame.sprite.Sprite.__init__(self, self.containers)
        self.rect = self.image.get_rect()
        self.rect.center = pos  # 中心座標をposに
    def update(self):
        self.rect.move_ip(self.speed,0)#   上へ移動
        if self.rect.top < 0:  # 上端に達したら除去
            self.kill()


def load_image(filename, colorkey=None):
    """画像をロードして画像と矩形を返す"""
    filename = os.path.join("data", filename)
    try:
        image = pygame.image.load(filename)
    except pygame.error, message:
        print "Cannot load image:", filename
        raise SystemExit, message
    image = image.convert()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image

def load_sound(filename):
    filename = os.path.join("data", filename)
    return pygame.mixer.Sound(filename)

if __name__ == "__main__":
    main()

