Пример #1
0
def chooseShip():
    global type, surface, startAnimationChoose, playerChoose, up, shipIsOut

    upPres = [upPressed, wPressed]
    downPres = [downPressed, sPressed]

    for num in range(0, 2):
        if startAnimationChoose[num]:
            if not shipIsOut[num]:  # Si todavía no ha salido la nave vieja
                if up[num]:
                    shipIsOut[num] = playerChoose[num].moveSlow(
                        XSELECTION[num], -300, 0.5, multiplier
                    )  # Movemos la nave vieja fuera de la pantalla y activamos shipIsOut cuando sale
                else:
                    shipIsOut[num] = playerChoose[num].moveSlow(
                        XSELECTION[num], WINDOW_HEIGHT + 300, 0.5, multiplier)
                if shipIsOut[
                        num]:  # Sólo una vez, cuando la nave ha salido, creo la nueva nave con al nuevo tipo
                    if up[num]:
                        playerChoose[num] = ship.ship(type[num],
                                                      XSELECTION[num],
                                                      WINDOW_HEIGHT + 100,
                                                      pygame, 'big')
                    else:
                        playerChoose[num] = ship.ship(type[num],
                                                      XSELECTION[num], -100,
                                                      pygame, 'big')
            elif playerChoose[num].moveSlow(
                    XSELECTION[num], YSELECTION[num], 0.5, multiplier
            ):  # Movemos la nave al centro y comprobamos simultáneamente si ha llegado
                playerChoose[num].goTo(XSELECTION[num], YSELECTION[num])
                startAnimationChoose[num] = False
                resetPressed()
                shipIsOut[num] = False

        if upPres[num] and not startAnimationChoose[num]:
            type[num] -= 1
            type[num] = type[num] % MAXTYPES
            resetPressed()
            startAnimationChoose[num] = True
            up[num] = True
        elif downPres[num] and not startAnimationChoose[num]:
            type[num] += 1
            type[num] = type[num] % MAXTYPES
            resetPressed()
            startAnimationChoose[num] = True
            up[num] = False

        playerChoose[num].draw(surface, GAME_TIME)

    if startButtonPressedToDraw:  # Draw the button when it is pressed
        surface.blit(startButtonDown, (XSTARTBUTTON + 10, YSTARTBUTTON + 10))
    else:
        surface.blit(startButtonUp, (XSTARTBUTTON, YSTARTBUTTON))
Пример #2
0
async def boat(message, cmd):
    msgId = message.author.id
    cIndex = -1
    print('boat : ' + msgId)
    if cList.count(msgId):
        await client.send_message(message.channel, 'he\'s already on his boat')
    else:
        ship(message.author)
        if ship.sList[-1] == msgId:
            cList.append(msgId)
            if len(cmd) > 1:
                ship.sList[-1].subject = cmd[1]
            await client.send_message(message.channel, 'your boat is ready')
        else:
            await client.send_message(message.channel, 'has a problem')
Пример #3
0
    def __init__(self):

        pygame.init()
        self.settings = settings()
        self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Alien Invasion")
        self.ship = ship(self)
Пример #4
0
    def __init__(self):

        pygame.init()
        self.setting = Settings()

        # Setting the screen

        self.screen = pygame.display.set_mode(
            (self.setting.screen_width, self.setting.screen_height))
        self.setting.screen_width = self.screen.get_rect().width
        self.setting.screen_height = self.screen.get_rect().height

        self.background = pygame.image.load("starfield.png")

        # Setting a Caption

        pygame.display.set_caption("Alien Invasion")

        # Setting a value for other python pages that are imported

        self.stats = Gamestats(self)
        self.S_B = scoreboard(self)
        self.ship = ship(self)
        self.bullets = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()

        self.S_B.check_high_score()
        self.create_fleet()

        # Setting button and a message

        self.play_button = Button(self, "Play")
Пример #5
0
def run_game():
    # 定义全局变量
    global ship
    # 初始化并创建一个窗口对象
    pygame.init()
    ai_settings = settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    # 创建按钮
    play_button = Button(ai_settings, screen, "PLAY")
    # 储存信息
    stats = Gamestats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)

    ship = ship(ai_settings, screen)
    # 储存子弹编组
    bullets = Group()

    # 创建外星人群
    aliens = Group()
    gf.create_fleet(ai_settings, screen, ship, aliens)

    # 游戏主循环
    while True:
        gf.check_events(ai_settings, screen, stats, play_button, ship, aliens,
                        bullets)
        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, ship, aliens, bullets)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
        gf.undate_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
Пример #6
0
def main():
    pygame.init()
    screen = pygame.display.set_mode((600, 600))
    background = pygame.Surface(screen.get_size())
    background = background.convert()
    nimbus = ship.ship(300.0, 300.0, 90)
    #pewpew = bullet.bullet(nimbus.rect.x,nimbus.rect.y,nimbus.angle)
    aster = asteriod.asteriod(300, 300, 90)
    background.fill((0, 0, 0))
    screen.blit(background, (0, 0))
    #pygame.transform.scale(aster, (20, 20))
    #pygame.transform.scale(pewpew, (5, 5))
    pygame.display.flip()
    allsprites = pygame.sprite.Group((nimbus))
    clock = pygame.time.Clock()
    pygame.key.set_repeat(1, 10)
    while True:

        clock.tick(30)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return

            keys = pygame.key.get_pressed()
            #if keys[pygame.K_e]:
            #laser = bullet.bullet()
            #laser.rect.x = nimbus.rect.x
            #laser.rect.y = nimbus.rect.y
            #laser.angle = nimbus.angle
            #allsprites.add(laser)
            #laser.move(laser.rect.x,laser.rect.y,laser.angle)
            nimbus.move(keys)
        #aster.move()
        allsprites.draw(screen)
        pygame.display.flip()
 def prep_ships(self):
     self.ships = Group()
     for ship_num in range(self.stats.ship_left):
         ship_2 = ship(self.screen, self.ai_settings)
         ship_2.rect.x = 10 + ship_num * ship_2.rect.width
         ship_2.rect.y = 1
         self.ships.add(ship_2)
Пример #8
0
    def parse_ship_and_into_fleet(self, new_fleet, parsed_fleet):
        import ship
        shipfile = open(parsed_fleet[0].replace('.fleet', '.ship'), 'r')
        shiplines = shipfile.readlines()
        name, hitpoints, targettingrange, speed, inertia, signature, weapon = map(
            str, shiplines)
        parsed_weapon = weaponsystems.parse_weapon(weapon)
        ship = ship.ship(int(hitpoints), 50, int(targettingrange), int(speed),
                         int(inertia), name, 0, 0, 0, new_fleet, parsed_weapon)
        # hitpoints, damage, targettingrange, speed, inertia, name, x, y, z, fleet, weapons):

        return ship
Пример #9
0
    def __init__(self):
        '''
        Defines the game screen.
        param list:(object) only needs self
        return: (None)
        '''
        pygame.init()
        self.begin = True
        while self.begin:
            self.x = WIDTH / 2
            self.y = HEIGHT - 140
            self.cont = True
            self.front = Start.Start()
            if self.front.choice():
                try:
                    self.char = Char.Char()
                    self.image = self.char.start()
                    self.display = pygame.display.set_mode((WIDTH, HEIGHT))
                    self.background = pygame.Surface(
                        self.display.get_size()).convert()
                    self.room = pygame.image.load('classroom2.jpg')
                    self.room = pygame.transform.scale(self.room, (1000, 700))
                    self.background.blit(self.room, (0, 0))

                    self.ship = ship.ship(self.image[0], self.x, self.y)
                    self.alien = []
                    self.bullet = []
                    self.num = 0
                    self.speed = 1
                    self.spriteship = pygame.sprite.Group(self.ship)
                    self.spritealien = pygame.sprite.Group(self.alien)
                    self.spritebullet = pygame.sprite.Group(self.bullet)

                    self.font = pygame.font.SysFont('bodoniblack', 30)
                    self.score = score.score()
                    self.value = self.font.render(
                        'Score: ' + str(self.score.count), True, (0, 255, 0))
                    self.game = Controller.start(self)
                    self.end = End.End(self.game)
                    Controller.end(self)
                except:
                    self.cont = False
            else:
                self.end = End.End(0)
                Controller.end(self)
            if not self.cont:
                self.begin = False
Пример #10
0
def run_game():
    #初始化
    pygame.init()
    ai_settings = settings()
    #创建屏幕对象
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption('Alien Invasion')

    #创建一艘飞船
    ship_new = ship(screen)

    #开始主循环
    while True:
        gf.check_events(ship_new)
        gf.update(ai_settings, screen, ship_new)
        ship_new.update()
Пример #11
0
def prepare(row, keepPortname=True):

    speedtreshold = 15
    # delete reported draught
    row = row.drop(columns=['REPORTED_DRAUGHT'])
    Id = row.at['SHIP_ID']
    typ = row.at['SHIPTYPE']
    speed = row.at['SPEED']
    lon = row.at['LON']
    lat = row.at['LAT']
    course = row.at['COURSE']
    heading = row.at['HEADING']
    timestamp = row.at['TIMESTAMP']
    dep = row.at['DEPARTURE_PORT_NAME']
    s = ship_list.hasShip(Id)

    if (s == None):
        # add new ship to a list
        s = ship(Id, typ, speed, lon, lat, course, heading, timestamp, dep,
                 ind)
        ship_list.addShip(s)
        row.at['TIMESTAMP'] = 0
    else:
        # ship already seen atleast once, update track and timestamps with the help of
        # a ship object which holds the trackinformation for each single ship object
        t1 = s.getFirstTimestamp()
        t = row.at['TIMESTAMP']
        row.at['TIMESTAMP'] = calcTimeDifference(t, t1)

        prev_speed = s.getLastTrack()['SPEED']
        # correct erronous speed
        if (speed - prev_speed > speedtreshold):
            check = interp.speedcheck(s.getLastTrack(), row)
            if (check != None):
                speed = check
                row.at['SPEED'] = check

        s.updateTrack(speed, lon, lat, course, heading, timestamp, 0)

    if (not keepPortname):
        row.at['DEPARTURE_PORT_NAME'] = pre_clean.stringToInt(dep)

    row = norma.normalize_minmax(row, keepPortname)
    return row, s
Пример #12
0
    def __init__(self):
        #initialize the game and create game resources
        pygame.init()
        self.settings = settings()

        self.screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
        self.settings.screen_width = self.screen.get_rect().width
        self.settings.screen_height = self.screen.get_rect().height
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Alien invesion")

        self.ship = ship(self)
        self.bullets = pygame.sprite.Group()
        self.alians = pygame.sprite.Group()

        self._create_fleet()

        # set the background color.
        self.bg_color = (230, 230, 230)
def run_game():
	pygame.init()
	ai_settings=settings()
	screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
	pygame.display.set_caption("Alien invasion by Aman Pandey")
	play_button=button(ai_settings,screen,'PLAY')
	stats=game_stats(ai_settings)
	sb=score_bored(ai_settings,screen,stats)
	ship_1=ship(screen,ai_settings)
	bullets=Group()
	aliens=Group()
	#bg_color=(230,230,230)
	gf.create_fleet(ai_settings,screen,ship_1,aliens)

	while True:
		gf.check_events(ai_settings,screen,sb,stats,play_button,ship_1,aliens,bullets)
		if stats.game_active:
			ship_1.update()
			gf.update_bullets(ai_settings,screen,stats,sb,ship_1,bullets,aliens)
			gf.update_aliens(ai_settings,stats,screen,sb,ship_1,aliens,bullets)
		gf.update_screen(ai_settings,screen,stats,sb,ship_1,aliens,bullets,play_button)
Пример #14
0
    def joinShip(self, name):
        '''add self to ship'''
        name = ' '.join(name[1:])
        self.leaveShip()

        #try to find ship with given name
        for obj in gameObject.objects:
            try:
                if obj.name == name:
                    self.ship = obj
            except:
                continue

        #create new ship if not found
        if not self.ship:
            self.ship = ship.ship()
            self.ship.name = name

        #add self to crew
        self.ship.crew.append(self)
        self.updatePrompt()
        self.log.info('joined %s', self.ship.name)
        return response.ok, 'you have joined the crew of {}'.format(self.ship.name)
Пример #15
0
def main():
	
	pygame.init()
	pygame.mixer.pre_init()
	player = score.score()
	screen = pygame.display.set_mode((600,600))
	background = pygame.Surface(screen.get_size()) 
	background = background.convert()
	nimbus = ship.ship(100.0,100.0,90)
	#pewpew = bullet.bullet(nimbus.rect.x,nimbus.rect.y,nimbus.angle)
	aster = asteriod.asteriod(100,100,90) 
	background.fill((0,0,0)) 
	white = (250, 250,250)
	screen.blit(background,(0,0)) 
	laser = bullet.bullet(10,10,0) 
	#pygame.transform.scale(aster, (20, 20))
	#pygame.transform.scale(pewpew, (5, 5))
	pygame.display.flip() 
	randx = random.randrange(300)
	randy = random.randrange(300)
	allsprites = pygame.sprite.Group((nimbus,aster,))
	clock = pygame.time.Clock() 
	pygame.key.set_repeat(1,10) 
	start_screen = True
	game_screen = False 
	end_screen = False 	
	while start_screen == True:
		myfont = pygame.font.SysFont("Britannic Bold", 40)
		intro = myfont.render("Welcome, press enter to start", 1,white) 
		game_over = myfont.render(" G A M E  O V E R", 4,white)
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
					return 
			keys = pygame.key.get_pressed()
			if keys[pygame.K_KP_ENTER ]:
				print("test") 
				start_screen = False
				game_screen = True 
		screen.blit(intro,(100,100)) 
		pygame.display.flip() 

	while game_screen == True:
		screen.blit(background,(0,0))
		clock.tick(120) 
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				return
			#pygame.mixer.music.load('theme.mp3') #plays music
			#pygame.mixer.music.play( loops = -1, start = 0.0)	
			counter = 0
			'''if pygame.sprite.collide_rect(aster,nimbus):
				for i in range counter collision:		
				counter += 1				
				print('cross')
				#print(counter)'''
			if counter == 5:
				screen.blit(game_over,(100,100))				
			if pygame.sprite.collide_rect(aster,laser):
				print('hit')
			keys = pygame.key.get_pressed()
			nimbus.move(keys) 
			nimbus.shoot(keys) 
			if keys[pygame.K_e]:
				coor = nimbus.shoot(keys)
				laser.setCoor(coor[0] + 30,coor[1],coor[2]) 
				allsprites.add(laser) 
		currentscore = str(player.current())
		pygame.display.set_caption(currentscore)   
		laser.update()
		allsprites.draw(screen)
		pygame.display.flip() 

	#quit()
	while end_screen == True:
		playerscore = player.player() 
		playerscore = 'High Score' + ':' + str(up) 
		print("up", up) 
		myfont = pygame.font.SysFont("Britannic Bold", 40)
		intro = myfont.render("Gameover, press enter to continue", 1,white)
		scorer = myfont.render(up, 0 , white) 
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
					return 
			keys = pygame.key.get_pressed()
			if keys[pygame.K_KP_ENTER]:
				print("test") 
				end_screen = False 
				start_screen = True
		screen.blit(intro,(100,100)) 
		screen.blit(scorer,(100,200)) 
		pygame.display.flip() 
Пример #16
0

def tick(foo):
	galaxie.Tick()
 	glutPostRedisplay()
 	glutTimerFunc(50, tick, 0)



def init():
	glClearColor(0, 0, 0, 0)
	glLoadIdentity()

galaxie = galaxy()
	
centre = ship(pom(0, 0, 0, 0, 10 ** 2), cercle(10,20))
galaxie.planetes.append(centre)

# orbite rond
Test = ship(pom(-30, 0, 0, 14.8), triangle(), "hiro p.")
Test2 = ship(pom(-20, 0, 0, 18.166), triangle())

galaxie.vaisseaux.append(Test)
galaxie.vaisseaux.append(Test2)
# escape velocity
# Test = ship(pom(-10, 0, 0, 36.33), triangle())




# centre.rayon = 10
Пример #17
0
    def start_of_game(self):
        #this is the start of the game

        #this creates the player object
        self.player = ship(self.canvas, self.width, self.height, master=self)

        #this starts the creation of all asteroids
        self.make_asteroids()

        #get random number which decides which 6 asteroids to start with
        #loop through a list of different sized asteroids
        for i in range(6):
            x = self.get_random_size()
            if x == 1:
                for i in self.small_asteroids:
                    #if it is frozen then unfreeze it and break from the loop for the next asteroid
                    if i.freeze == True:
                        i.freeze = False
                        break

            elif x == 2:
                for i in self.medium_asteroids:
                    if i.freeze == True:
                        #if it is frozen then unfreeze it and break from the loop for the next asteroid
                        i.freeze = False
                        break

            else:
                for i in self.large_asteroids:
                    if i.freeze == True:
                        #if it is frozen then unfreeze it and break from the loop for the next asteroid
                        i.freeze = False
                        break

        #this creates all the projectiles
        self.pro1 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro2 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro3 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro4 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro5 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro6 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro7 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro8 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro9 = Projectile(self.player, self.canvas, self.width,
                               self.height, self.asteroids, self)
        self.pro10 = Projectile(self.player, self.canvas, self.width,
                                self.height, self.asteroids, self)

        #this creates a list of all the projectiles
        self.projectiles = []
        self.projectiles.append(self.pro1)
        self.projectiles.append(self.pro2)
        self.projectiles.append(self.pro3)
        self.projectiles.append(self.pro4)
        self.projectiles.append(self.pro5)
        self.projectiles.append(self.pro6)
        self.projectiles.append(self.pro7)
        self.projectiles.append(self.pro8)
        self.projectiles.append(self.pro9)
        self.projectiles.append(self.pro10)

        #this calls the setup_bindings() method
        self.setup_bindings()

        #this starts the asteroids movement loop
        for i in self.asteroids:
            i.hold()
Пример #18
0
 def __init__(self):
     self.p = ship.ship()
     self.i = []
     self.i.append(invaders.invaders(11, 30, 30))
Пример #19
0
def main():
	
	pygame.init()
	pygame.mixer.pre_init()
	player = score.score()
	#pygame.mixer.music.load('betsky.ogg')
	#pygame.mixer.music.play(loops = 15, start = 0.0)
	screen = pygame.display.set_mode((600,600))
	background = pygame.Surface(screen.get_size()) 
	background = background.convert()
	nimbus = ship.ship(100.0,100.0,90)
	#pewpew = bullet.bullet(nimbus.rect.x,nimbus.rect.y,nimbus.angle)
	aster = asteriod.asteriod(100,100,90) 
	background.fill((0,0,0)) 
	white = (250, 250,250)
	screen.blit(background,(0,0)) 
	laser = bullet.bullet(10,10,0) 
	#pygame.transform.scale(aster, (20, 20))
	#pygame.transform.scale(pewpew, (5, 5))
	pygame.display.flip() 
	randx = random.randrange(300)
	randy = random.randrange(300)
	allsprites = pygame.sprite.Group((aster))
	shp = pygame.sprite.Group((nimbus,laser))
	clock = pygame.time.Clock() 
	pygame.key.set_repeat(1,10) 
	start_screen = True
	game_screen = False 
	end_screen = False 
	#TM = pygame.USEREVENT+1
	#evnt = pygame.event.Event(TM, asteroid) 
	#tmr = pygame.time.set_timer(pygame.USEREVENT +1, 4000)	
	while start_screen == True:
		myfont = pygame.font.SysFont("Britannic Bold", 40)
		intro = myfont.render("Welcome, press enter to start", 1,white) 
		game_over = myfont.render(" G A M E  O V E R", 4,white)
		for event in pygame.event.get():
			
			if event.type == pygame.QUIT:
					return 
			keys = pygame.key.get_pressed()
			if keys[pygame.K_KP_ENTER ]:
				print("test") 
				start_screen = False
				game_screen = True 
		screen.blit(intro,(100,100)) 
		pygame.display.flip() 

	while game_screen == True:
		screen.blit(background,(0,0))
		clock.tick(60) 
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
					return 
			#if event.type == evnt:
				#return
			crash = pygame.sprite.collide_rect(aster, nimbus)
			counter = 0			
			if crash:
				nimbus.rect.x =(300)
				nimbus.rect.y =(300)	
				#counter += 1
				nimbus.livesUpdate()
				if nimbus.health<0:
					game_screen = False
					end_screen = True 
				print('health:',nimbus.health)
				print(counter)
			if counter == 1:
				screen.blit(game_over,(100,100))			

			#player.score = 0			
			shot = pygame.sprite.spritecollide(laser,allsprites,True)			
			if shot:
				allsprites.add(aster)
				aster.rect.x =random.randrange(250)
				aster.rect.y =random.randrange(250)
				laser.rect.x = 6000
				laser.rect.y = 6000
				pygame.display.flip()
				player.points(50)
				print('hit')
			
			keys = pygame.key.get_pressed()
			nimbus.move(keys) 
			nimbus.shoot(keys) 
			if keys[pygame.K_e]:
				coor = nimbus.shoot(keys)
				laser.setCoor(coor[0] + 30,coor[1],coor[2]) 
		#if event.type == pygame.event.Event(crash)+1:
		#	allsprites.add(aster)
				#allsprites.add(laser) 
		aster.move(aster.angle) 
		currentscore = str(player.current())
		pygame.display.set_caption(currentscore)   
		laser.update()
		allsprites.draw(screen)
		shp.draw(screen)
		screen.blit(nimbus.image,nimbus.rect)
		screen.blit(laser.image,laser.rect)
		pygame.display.flip() 

	#quit()
	while end_screen == True:
		playerscore = player.player() 
		playerscore = 'High Score' + ':' + str(playerscore) 
		myfont = pygame.font.SysFont("Britannic Bold", 40)
		intro = myfont.render("Gameover, press enter to continue", 1,white)
		scorer = myfont.render(playerscore, 0 , white) 		 
		scorer = myfont.render(playerscore, 0 , white)
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
					return 
			keys = pygame.key.get_pressed()
			if keys[pygame.K_KP_ENTER ]:
				print("test") 
				end_screen = False
				start_screen = True 
		screen.blit(intro,(100,100)) 
		screen.blit(scorer,(100,50)) 
		pygame.display.flip() 
Пример #20
0
def game_loop():
	x=(display_width*0.40)
	y=(display_height*0.87)
	x_change=0
	score=0
	aliensList=[]
	miss1=[]
	miss2=[]
	def text_object(text,font):
        	textSurface=font.render(text,True,black)
        	return textSurface,textSurface.get_rect()
	def message_display(text):
        	largeText=pygame.font.Font('freesansbold.ttf',15)
        	lookSurf,TextRect=text_object(text,largeText)
        	TextRect.center=(240,240)
        	gameDisplay.blit(lookSurf,TextRect)
        	pygame.display.update()
        	time.sleep(2)
	def crash():
        	message_display('Your score is '+str(score))

	lastAlien=time.time()
	GameExit=False
	while not GameExit:
		for event in pygame.event.get():
			if event.type==pygame.QUIT:
				pygame.quit()
				quit()
			if event.type==pygame.KEYDOWN:
				if event.key==pygame.K_a:
					x_change=-60
				elif event.key==pygame.K_d:
					x_change=60
				elif event.key==pygame.K_SPACE:
					miss1.append(missile.redmiss(x,y-0.75))
				elif event.key==pygame.K_s:
					miss2.append(missile.gmiss(x,y-1.5))
				elif event.key==pygame.K_q:
					GameExit=True
				elif event.key==pygame.K_p:#press P to get the score
					crash()
			if event.type==pygame.KEYUP:
				if event.key==pygame.K_a or event.key==pygame.K_d:
					x_change=0
		for i in aliensList:
			if time.time()-i.clock>=8:
				aliensList.remove(i)
		if time.time()-lastAlien>=10:
			aliensList.append(alien.aliens(time.time(),randint(0,7)*60,randint(0,1)*60))
			lastAlien=time.time()
		x+=x_change
		if x > display_width-25 or x < -40:
                        x-=x_change
		gameDisplay.fill(white)
		ship.ship(x,y)
		for i in miss1:
			for j in aliensList:
				if (i.y-j.y <60 and i.x>j.x) and i.x-j.x <15:
					score+=1
					aliensList.remove(j)
					miss1.remove(i)
		for i in miss2:
			for j in aliensList:
				if (i.y-j.y<60 and i.x>j.x) and i.x-j.x<15:
					j.clock+=5
					j.hit=1
					miss2.remove(i)
		for i in miss1:
			i.y=i.y-60
			if i.y<0:
				miss1.remove(i)
		for i in miss2:
			i.y=i.y-120
			if i.y<0:
				miss2.remove(i)
		for i in miss1:#printing
			missile.missile1(i.x,i.y)
		for i in miss2:
			missile.missile2(i.x,i.y)
		for i in aliensList:
			if i.hit==0:
				alien.alien(i.x,i.y)
			else:
				alien.alienHit(i.x,i.y)
		pygame.display.update()
		clock.tick(5)
Пример #21
0
from unittest import TestCase
import weaponsystems
import ship
import math
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt

BlueFleet = ship.fleet("Blue Fleet", 50)
RedFleet = ship.fleet("Red Fleet", 50)

small_autocannon = weaponsystems.turret(50, 50, 50, "Small Autocannon", 40)
redship = ship.ship(1000, 50, 50, 50, 1, "Test Dummy 1", 99, 50, 50, RedFleet,
                    small_autocannon)
blueship = ship.ship(1000, 50, 50, 50, 1, "Test Dummy 2", 100, 50, 50,
                     BlueFleet, small_autocannon)


class TestTurret(TestCase):
    def test_fire_weapon(self):
        assert small_autocannon.dps == 50

    def test_checkrange(self):
        assert redship.calc_distance(blueship) == redship.weapon.optimal

    def test_withinrange(self):
        assert redship.calc_distance(blueship) <= redship.weapon.optimal

    def calc_weap_dps(self):
Пример #22
0
###Splash
running = splash.show_splash(screen)
###Sound effects
pygame.mixer.set_num_channels(8)
s_shooting = load_resources.load_sound('sound/s_shooting.wav')
pygame.mixer.music.load('sound/bg_music.wav')
pygame.mixer.music.set_volume(.25)
pygame.mixer.music.play(-1)
###Create background
bg_image= pygame.image.load('graphics/bg.png').convert()
screen.blit(bg_image, (0, 0))
pygame.display.flip()
###Instance of ship
s_x= width/2
s_y= height- 70
s= ship.ship(s_x, s_y, screen, width, height)
###instance of score
score= text.score()
###Instance of lives
lives = text.lives()
###Instance of level
level = text.level()
###Sprite groups
sprites= pygame.sprite.RenderUpdates(s, score, lives, level)
blocks= pygame.sprite.Group()
bullets= pygame.sprite.Group()
bombs= pygame.sprite.RenderUpdates()
enemy_group = pygame.sprite.Group()
###Instances of blocks
block.make_wall(75, 450, sprites, blocks, width, height)
block.make_wall(275, 450, sprites, blocks, width, height)
Пример #23
0
pygame.display.init()
pygame.mixer.init()
surface = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT),
                                  pygame.RESIZABLE)
pygame.display.set_caption('STARLINE')
clock = GAME_TIME.Clock()
pygame.font.init()
textFont = pygame.font.Font("assets/fonts/nasalization-rg.ttf", 30)
levelTitleFont = pygame.font.Font("assets/fonts/nasalization-rg.ttf", 30)
type = [int(configList[0][0]), int(configList[0][1])]
configList.pop(0)
level = -1
player = ship.doubleShip(type[0], Xo1, Yo1, type[1], Xo2, Yo2, pygame)
playerChoose = [
    ship.ship(type[0], XSELECTION[0], YSELECTION[0], pygame, 'big'),
    ship.ship(type[1], XSELECTION[1], YSELECTION[1], pygame, 'big')
]
menuMessage = enemies.message('Presiona espacio', 0, 'infinity', 500, 500, 100,
                              pygame)

# LOAD IMAGES

titleImage = pygame.image.load("assets/images/background/STARLINE.png")
starImage = pygame.image.load("assets/images/background/star.png")
angleStar = 0
skyImage = pygame.image.load("assets/images/background/sky.png")
chooseShipImage = pygame.image.load(
    "assets/images/background/shipSelector.png")
gameOverImage = pygame.image.load("assets/images/background/gameOver.png")
redLevel = pygame.image.load("assets/images/background/redLevel.png")
Пример #24
0
import pygame, sys, random, pandas as pd
from rock import Rock
from ship import ship

screen = pygame.display.set_mode((800, 500))
clock = pygame.time.Clock()

pygame.init()

info = pd.read_csv("data.csv")
numlevels = info["level"].min()
level = info["level"].min()
levelInfo = info.iloc[level]
rocks = []
player = ship(20, 250)


def init():
    global rocks, player
    player.x = 20
    player.y = 250
    rocks = []
    levelInfo = info.iloc[level]
    for i in range(levelInfo["numrock"]):
        rocks.append(
            Rock(random.randint(300, 500), random.randint(200, 300),
                 random.randint(-5, 5), random.randint(-5, 5),
                 random.randint(20, 50)))


init()
Пример #25
0

def tick(foo):
    galaxie.Tick()
    glutPostRedisplay()
    glutTimerFunc(50, tick, 0)


def init():
    glClearColor(0, 0, 0, 0)
    glLoadIdentity()


galaxie = galaxy()

centre = ship(pom(0, 0, 0, 0, 10**2), cercle(10, 20))
galaxie.planetes.append(centre)

# orbite rond
Test = ship(pom(-30, 0, 0, 14.8), triangle(), "hiro p.")
Test2 = ship(pom(-20, 0, 0, 18.166), triangle())

galaxie.vaisseaux.append(Test)
galaxie.vaisseaux.append(Test2)
# escape velocity
# Test = ship(pom(-10, 0, 0, 36.33), triangle())

# centre.rayon = 10
# centre.smoothness = 20
# systemeSolaire = []
# Test = cercle(vector(-20, 0), vector(0, 20))
Пример #26
0
import pygame, sys, time, random
from pygame.locals import *

from ship import ship
from fire import fire
from fireball import fireball
from enemy import enemy
from ball import ball
ufo = ship()
fye = fire()
bal = fireball()
kill = enemy()
fie = ball()
FPS = 100
WHITE = (250, 250, 250)
fpsClock = pygame.time.Clock()


def update_ship():
    DISPLAYSURF.blit(ufo.image, ufo.rect)


def update_fire():
    DISPLAYSURF.blit(fye.imgae, ufo.rect)


def update_fireball():
    DISPLAYSURF.blit(bal.imgae, bal.rect)


def update_enemy():
Пример #27
0
import ship
import missiles

pygame.init()
pygame.display.set_caption("ALIEN ATTACK")
stTime = time.time()
initTime = time.time()
count = 0

# font for score
myfont = pygame.font.SysFont("monospace", 30)
WHITE = (255, 255, 255)
score = myfont.render("SCORE={0}".format(count), 1, WHITE)

screen = pygame.display.set_mode((800, 800))
spaceShip = ship.ship("images/ship.png", screen, 100, 50)
screen.fill((0, 0, 0))

screen.blit(spaceShip.image, (spaceShip.x, spaceShip.y))
pygame.display.update()

alien = []
miss = []
alien.append(aliens.aliens("images/aliens.jpg", screen, 100))
while 1:
    pygame.time.Clock().tick(50)
    flag = 0

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
Пример #28
0
def clean(pc, ip, dff, delete, norm, keepPortname):
    # instantiate objects and set tresholds for speed correction and time interp.
    start = time.time()
    shiplist = ships()
    df = dff
    df = df.drop(columns=['REPORTED_DRAUGHT'])
    index = pc.uselessIndices(df)
    namelist = pc.createStringToIntMap(df)
    timetreshold = 25
    speedtreshold = 15

    for i, row in df.iterrows():

        if (i % 10000 == 0): print("current row:" + str(i))
        # skip to be dropped indices for perfomance
        if i in index:
            continue

        Id = row['SHIP_ID']
        typ = row['SHIPTYPE']
        speed = row['SPEED']
        lon = row['LON']
        lat = row['LAT']
        course = row['COURSE']
        heading = row['HEADING']
        timestamp = row['TIMESTAMP']

        dep = row['DEPARTURE_PORT_NAME']
        arrival = row['ARRIVAL_PORT_CALC']
        if (not keepPortname):
            df.at[i, 'ARRIVAL_PORT_CALC'] = namelist[arrival]
            df.at[i, 'DEPARTURE_PORT_NAME'] = namelist[dep]

        s = shiplist.hasShip(Id)
        if (s == None):
            # add new ship to a list
            new_ship = ship(Id, typ, speed, lon, lat, course, heading,
                            timestamp, dep, i)
            shiplist.addShip(new_ship)
            # compute the difference from this timestamp in regards to the arrival time
            # and set that value to the new arrival time
            arr = row['ARRIVAL_CALC']
            t = row['TIMESTAMP']
            df.at[i, 'ARRIVAL_CALC'] = calcTimeDifference(arr, t)
            # set the first timestamp seen for a ship to 0. following
            # timestamps are relative to this 0 time value
            df.at[i, 'TIMESTAMP'] = 0

        else:
            # ship already seen atleast once, update track and timestamps with the help of
            # a ship object which holds the trackinformation for each single ship object
            t1 = s.getFirstTimestamp()
            t = row['TIMESTAMP']
            df.at[i, 'TIMESTAMP'] = calcTimeDifference(t, t1)
            arr = row['ARRIVAL_CALC']
            df.at[i, 'ARRIVAL_CALC'] = calcTimeDifference(arr, t)

            prev_speed = s.getLastTrack()['SPEED']
            # correct erronous speed
            if (speed - prev_speed > speedtreshold):
                check = ip.speedcheck(s.getLastTrack(), row)
                if (check != None):
                    speed = check
                    df.at[i, 'SPEED'] = check
            # interpolate between 2 timestamps that are atleast 25 mins away
            prev_time = s.getLastTrack()['TIMESTAMP']
            timejump = calcTimeDifference(timestamp, prev_time)
            if (timejump > timetreshold):
                ip.interpolate(df, s, row, timejump, namelist)

            s.updateTrack(speed, lon, lat, course, heading, timestamp, i)

    # drop the irrelevant rows and add the interpolated rows and
    # depending on the switches given in the terminal delete and normalize
    df = df.drop(index)
    df = ip.execute_interpolate(df)
    if (delete != None):
        df = delete.delete(df)
    if (norm != None):
        df = norm.normalize(df, keepPortname)

    df.to_csv(sys.argv[len(sys.argv) - 1], index=False)
    end = time.time()
    print("time:" + str(end - start))