예제 #1
0
    def shoot(self, obj_grid):
        if self.__shield == 0:
            obj_bullet = bullet(self._r + 1, self._c + 3, 1)

        elif self.__shield == 1:
            obj_bullet = bullet(self._r + 1, self._c + 4, 1)

        obj_bullet.reappear_bullet(obj_grid)
        playsound('resources/light_hit_03.wav')
        self.__bullets.append(obj_bullet)
예제 #2
0
 def shoot(self):
     i = random.randrange(120)
     if i == 0:
         bul = bullet(self.position, 1, self.screen)
     else:
         bul = None
     return bul
예제 #3
0
def on_mouse_press(x, y, button, modifiers):
    #print player1.x, player1.y
    #for n in range(0, player1.sides):
    #print n, " ::: ", player1.vertices[2 * n + 2], player1.vertices[2 * n + 3], " : ", player1.colors[4*n + 4:4*n+8]
    if button == mouse.MIDDLE:
        player1.drawTarget = True
    if button == mouse.LEFT and player1.sides > 3:
        a1 = math.atan2(float(y - player1.y), float(x - player1.x))
        side = 0
        closest = 3.1415
        a3 = 100
        for n in range(1, player1.sides + 1):
            vx = player1.vertices[2 * n]
            vy = player1.vertices[2 * n + 1]
            a2 = math.atan2((vy - player1.y), (vx - player1.x))
            if abs(a2 - a1) < closest:
                side = n
                closest = abs(a2 - a1)
                a3 = a2

        vtx, clr = player1.removeSide(side)
        #player1.x + math.cos(angle) * (player1.radius + 4), player1.y + math.sin(angle) * (player1.radius + 4)

        b = bullet(angle=a1, vtx=vtx, color=clr)
        game_objects.append(b)
예제 #4
0
def on_mouse_press(x, y, button, modifiers):
    #print player1.x, player1.y
    #for n in range(0, player1.sides):
        #print n, " ::: ", player1.vertices[2 * n + 2], player1.vertices[2 * n + 3], " : ", player1.colors[4*n + 4:4*n+8]
    if button == mouse.MIDDLE:
        player1.drawTarget = True
    if button == mouse.LEFT and player1.sides > 3:
        a1 = math.atan2(float(y - player1.y), float(x - player1.x))
        side = 0
        closest = 3.1415
        a3 = 100
        for n in range(1, player1.sides + 1):
            vx = player1.vertices[2*n]
            vy = player1.vertices[2*n + 1]
            a2 = math.atan2((vy - player1.y), (vx - player1.x))
            if abs(a2 - a1) < closest:
                side = n
                closest = abs(a2 - a1)
                a3 = a2

        vtx, clr = player1.removeSide(side)
        #player1.x + math.cos(angle) * (player1.radius + 4), player1.y + math.sin(angle) * (player1.radius + 4)

        b = bullet(angle = a1, vtx=vtx, color = clr)
        game_objects.append(b)
예제 #5
0
	def UpdatePosition(self,Mario,no_of_frames,enlist,bullets):
		self.killenemy = -1
		Key = getch()
		self.no_of_coins = 0
		self.no_of_coins += Mario.createPlayer(self);
		def down():
				Mario.clearplayer(self.Gamepad);
				self.killenemy = Mario.updateposition(2,0,self.Gamepad);
				self.no_of_coins += Mario.createPlayer(self);
		if Key != None:
			Mario.clearplayer(self.Gamepad);

			Key_pressed = ord(Key)
			if Key_pressed == ord('d'):
				if no_of_frames < 4:
					if Mario.heady <= 75:
						if self.Gamepad[Mario.headx + 2][Mario.heady+2] != "\033[41;31m#\033[0m": 
							self.killenemy = Mario.updateposition(0,1,self.Gamepad);
						down();
						self.no_of_coins += Mario.createPlayer(self)
					else:
						return (-1,self.no_of_coins)
				else:
					if Mario.heady <= 70:
						if self.Gamepad[Mario.headx + 2][Mario.heady+2] != "\033[41;31m#\033[0m": 
							self.killenemy = Mario.updateposition(0,1,self.Gamepad);
						down();
						self.no_of_coins += Mario.createPlayer(self)
					else:
						return (2,self.no_of_coins)

			elif Key_pressed == ord('a'):
				if Mario.heady >= 5 and self.Gamepad[Mario.headx + 2][Mario.heady-2] != "\033[41;31m#\033[0m": 
					self.killenemy = Mario.updateposition(0,-1,self.Gamepad);
					down();
				self.no_of_coins += Mario.createPlayer(self)
			elif Key_pressed == ord('w'):
				os.system('aplay jump.wav&')
				if Mario.headx >= 10 and self.Gamepad[Mario.headx - 1][Mario.heady] == " ":
					self.Time = time.time()
					Mario.clearplayer(self.Gamepad);
					self.killenemy = Mario.updateposition(-2,0,self.Gamepad);
					self.no_of_coins += Mario.createPlayer(self);
					settimer = Timer(0.3,down);
					settimer.start()
				self.no_of_coins += Mario.createPlayer(self);

			elif Key_pressed == ord('s'):
				bullets.append(bullet(Mario.headx+1,Mario.heady+2,self))
	

			elif Key_pressed == ord('q'):
				return (-5,self.no_of_coins,self.killenemy)

		return (0,self.no_of_coins,self.killenemy)
예제 #6
0
def shoting():
    if(heroe.isFire==True):
        x=heroe.x+heroe.bitmap.get_width()+10
        y=heroe.y+heroe.bitmap.get_height()/2
        
        newBullet=bullet(x,y,"assets/bullet.png")
        newBullet.initBullet(x,y,4,0)
        
        hBullets.append(newBullet)
        heroe.reloadTimer=pygame.time.get_ticks()
    pass
예제 #7
0
def shoting():
    if (heroe.isFire == True):
        x = heroe.x + heroe.bitmap.get_width() + 10
        y = heroe.y + heroe.bitmap.get_height() / 2

        newBullet = bullet(x, y, "assets/bullet.png")
        newBullet.initBullet(x, y, 4, 0)

        hBullets.append(newBullet)
        heroe.reloadTimer = pygame.time.get_ticks()
    pass
예제 #8
0
def main():
    #~ State Variables

    t0 = 0
    tf = 0.5
    dt = .001
    times = np.linspace(t0, tf, 200)
    #/~ State Variables

    #~ Bullet-specific Variables
    name = '50 ATV BT'
    b = bullet(name, mass=50, bc=0.242, model=G1)
    vtot = 3300  #
    theta = 0.05
    vxi = vtot * (cos(theta * pi / 180))
    vyi = vtot * (sin(theta * pi / 180))
    #~/ Bullet-Specific Variables

    #~ Integrate
    y0 = [0., 0., vxi, vyi]
    states = odeint(b.shoot, y0, times)
    states = array(states)
    #/~ Integrate

    #~ Get Samples
    from sample_data import samples
    x = samples[name]['st'][:, 0]
    #print len(x)
    y = samples[name]['st'][:, 1]
    #print len(y)
    #/~ Get Samples

    #~ Plot
    fig, ax = subplots()

    r_mark, = ax.plot(x, y, 'ro', alpha=.8)
    b_mark, = ax.plot(states[:, 0], states[:, 1] * 12., 'bo', lw=3, alpha=.8)

    legend([r_mark, b_mark],
           ['Sample Trajectory', 'Simulated (' + str(b) + ')'],
           numpoints=1)

    configure(ax=ax,
              title=r'G1 Model of Remington .233 cartridge',
              xlabel=r'Horizontal Displacement (yards)',
              ylabel=r'Height (inches)',
              xbounds=None,
              ybounds=None)

    fig.suptitle('Bullet Trajectory Simulation', size=30)
    fig.subplots_adjust(left=0.05, right=0.95, top=0.9, bottom=0.08)

    show()
예제 #9
0
def shoot_point(event: Event):
    global total_damage
    global dots
    damage = int(shoot(my_canvas, event.x, event.y, helmet, armour)[0]*bullet_ratio)
    color = shoot(my_canvas, event.x, event.y, helmet, armour)[1]
    total_damage += damage
    total_damage_text.set('总伤害: ' + str(total_damage))
    damage_text.set('伤害: ' + str(damage))
    width = my_canvas.winfo_width()
    height = my_canvas.winfo_height()
    dots.append((event.x/width, event.y/height, color))
    #Timer(3, dots.remove((event.x/width, event.y/height, color))).start()
    b = bullet(event.x, event.y, color, my_canvas)
    b.draw()
예제 #10
0
def main():
    #~ State Variables
    
    t0 = 0; tf = 0.5; dt=.001;
    times = np.linspace(t0, tf, 200)
    #/~ State Variables

    #~ Bullet-specific Variables
    name = '50 ATV BT'
    b = bullet(name, mass=50, bc=0.242, model=G1)
    vtot = 3300 #
    theta = 0.05
    vxi = vtot*(cos(theta*pi/180))
    vyi = vtot*(sin(theta*pi/180))
    #~/ Bullet-Specific Variables

    #~ Integrate
    y0 = [0., 0., vxi, vyi]
    states = odeint(b.shoot, y0, times)
    states = array(states)
    #/~ Integrate

    #~ Get Samples
    from sample_data import samples
    x = samples[name]['st'][:,0]; #print len(x)
    y = samples[name]['st'][:,1]; #print len(y)
    #/~ Get Samples

    #~ Plot
    fig, ax = subplots()

    r_mark, = ax.plot(x, y, 'ro', alpha=.8)
    b_mark, = ax.plot(states[:,0], states[:,1]*12., 'bo', lw=3, alpha=.8)

    legend( [r_mark, b_mark],
            ['Sample Trajectory',
             'Simulated ('+str(b)+')'],
            numpoints=1)

    configure( ax=ax,
                title=r'G1 Model of Remington .233 cartridge',
                xlabel=r'Horizontal Displacement (yards)',
                ylabel=r'Height (inches)',
                xbounds=None, ybounds=None)

    fig.suptitle('Bullet Trajectory Simulation', size=30)
    fig.subplots_adjust(left=0.05, right=0.95, top=0.9, bottom=0.08)

    show()
예제 #11
0
import pygame
from bullet import *
pygame.init()
Screensize = (width, height) = (800, 600)
screen = pygame.display.set_mode(Screensize)
color = (165, 42, 42)
clock = pygame.time.Clock()
screeninfo = pygame.display.Info()
bullet = bullet()


def main():
    while True:
        clock.tick(60)
        bullet.Move()
        screen.fill(color)
        bullet.draw(screen)
        pygame.display.flip()


if __name__ == "__main__":
    main()
예제 #12
0
		time.sleep(1)
		quit()
	if man.life<=-1:
		end=ES()
		#os.system('clear')
		end.loss()
		board1.printt(man)

		time.sleep(1)
		quit()
	if mag.x>=board1.itr and mag.x<=board1.itr+135:
		mag.attract()
	if man.yl==28:
		godo=0
	if char=='b':
		bb=bullet()
	if board1.itr<1215:
		for i in range(len(lit)):
			if lit[i]<=board1.itr+135 and fl[i]==0:
				if lit[i]<=1350:
					if board1.mat[vit[i]][lit[i]+1]=='o' or board1.mat[vit[i]][lit[i]+2]=='o' or board1.mat[vit[i]][lit[i]+3]=='o' or board1.mat[vit[i]][lit[i]+4]=='o':
						for j in range(vit[i]-5,vit[i]+6):
							for l in range(lit[i]-5,lit[i]+9):
								if l>=0 and l<=1350:
									if j>=3 and j<=30:
										if board1.mat[j][l]=='o':
											board1.mat[j][l]=' '
						board1.mat[vit[i]][lit[i]]=' '
						fl[i]=1
						
					else:
예제 #13
0
    def shoot(self, obj_grid):
        obj_bullet = bullet(self._r + 1, self._c - 1, 2)

        obj_bullet.reappear_bullet(obj_grid)
        self.__bullets.append(obj_bullet)
예제 #14
0
def move(shieldt,framedelay,boostsleft):
    def alarmhandler(signum, frame):
        ''' input method '''
        raise AlarmException
    def user_input(timeout=framedelay):
        # tcheck+=0.05
        # if(tcheck==0.1):
            # tcheck=0
            # return ''
        ''' input method '''
        signal.signal(signal.SIGALRM, alarmhandler)
        signal.setitimer(signal.ITIMER_REAL, timeout)
        try:
            text = getChar()()
            signal.alarm(0)
            return text
        except AlarmException:
            pass
        signal.signal(signal.SIGALRM, signal.SIG_IGN)
        return ''

    char = user_input()
    if char=='d':
        if boi.getx()<length-3:
            boi.moveh(boi.getx()+2)
    if char=='a':
        if boi.getx()>3:
            boi.moveh(boi.getx()-2)
 
    if char=='w':
        if boi.gety()>1:
            boi.changespeed(boi.getyv()-1)
    
    if char =='k':
        if(time.time()-shieldt>=60):
            shieldt=time.time()
            boi.setshield(1)
    if char =='p' and boostsleft>0:
        boostsleft-=1
        if(framedelay==0.15):
            framedelay=0.075
        else:
            framedelay=0.15
    if char ==' ':
        bb.append(bullet(boi.getx(),boi.gety(),bb))
        
    if(magboard[boi.gety()][boi.getx()][0]!=0):
        if(magboard[boi.gety()][boi.getx()][0]>boi.gety()):
            boi.changespeed(boi.getyv()+1)
        elif(magboard[boi.gety()][boi.getx()][0]<boi.gety()):
            boi.changespeed(boi.getyv()-1)
        if(magboard[boi.gety()][boi.getx()][1]>boi.getx()):
            boi.moveh(boi.getx()+1)
        elif(magboard[boi.gety()][boi.getx()][1]<boi.getx()):
            boi.moveh(boi.getx()-1)


    boi.movey(boi.gety()+min(boi.getyv(),4))
    boi.movey(min(40,boi.gety()))
    boi.movey(max(3,boi.gety()))
    boi.moveh(min(length-1,boi.getx()))
    if(boi.gety()==3):
        boi.changespeed(0)
    boi.checkcollisions(board,objboard,ogoglist)

    if char == 'q':
        quit()
    return shieldt,framedelay,boostsleft
예제 #15
0
def game_loop():
	global is_god, intro, selecting, GG, side_shooting, score, intro, ultima_cadeira, aluno, user,\
	bullets, bulletSprites, obstacleGroup, cadeira, pause, shooting, obstacle_speed, time_change, pos_change,\
	power_up_change, powers

	intro = False
	selecting = False
	colliding = False
	collide_change = False
	just_dead = False
	pos_change = 0
	shooting = True
	shoot_time = 800
	color_change = black
	obstacle_speed = 3
	speed_change = 0.05
	time_change = 0
	score_string = ""
	name_string = ""

	shoot_sound.set_volume(0.4)

	if is_god:
		game_sound.stop()
		god_sound.play(soundtrack_2)

	aluno = pygame.sprite.GroupSingle(player())
	user = (aluno.sprites())[0]
	bullets = []
	bulletSprites =pygame.sprite.Group()
	obstacleGroup = pygame.sprite.Group()
	powers = pygame.sprite.Group()
	cadeira = [obstacle(random.choice(cadeiras_ref), obstacle_speed, user.slow_time())]
	obstacleGroup.add(cadeira)

	pygame.time.set_timer(USEREVENT + 1, random.randint(1000 - time_change, 1500 - time_change))
	power_up_change = random.randint(5, 9)

	while True:
		pygame.display.update()

		if not pygame.mixer.get_busy():
			if is_god:
				god_sound.play(soundtrack_2)
			else:
				game_sound.play(soundtrack)

		#obtem a posicao do aluno
		for i in aluno:
			aluno_pos = i.pos()

		#criacao de cronometros
		if user.score_change() != 1:
			pygame.time.set_timer(USEREVENT + 5, 7000)

		#EVENTOS
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
				quit()

			#eventos do cronometro
			if event.type == USEREVENT + 1:
				cadeira = [obstacle(random.choice(cadeiras_ref), obstacle_speed, user.slow_time())]
				obstacleGroup.add(cadeira)

				if not is_god:
					if power_up_change <= 0:
						power_up_change = random.randint(5, 9)
						power = [power_up(random.randint(1, 4), obstacle_speed)]
						powers.add(power)

				pygame.time.set_timer(USEREVENT + 1, random.randint(1000-time_change, 1500-time_change))

			if event.type == USEREVENT + 2:
				pygame.time.set_timer(USEREVENT + 2, 0)
				shooting = True

			if event.type == USEREVENT + 3:
				pygame.time.set_timer(USEREVENT + 3, 0)
				color_change = black
				if is_god:
					god_sound.unpause()
				else:
					game_sound.unpause()

			if event.type == USEREVENT + 4:
				pygame.time.set_timer(USEREVENT + 4, 0)
				user.end_slow()
				for obstaculo in obstacleGroup:
					obstaculo.speed_change(obstaculo.speed*2)

			if event.type == USEREVENT + 5:
				pygame.time.set_timer(USEREVENT + 5, 0)
				user.end_score()

			if event.type == USEREVENT + 6:
				pygame.time.set_timer(USEREVENT + 6, 0)
				event_6 = False
				side_shooting = False

			if event.type == pygame.KEYDOWN:

				#move o jogador
				if event.key == pygame.K_a:
					pos_change -= 1
				if event.key == pygame.K_d:
					pos_change += 1

				if event.key == pygame.K_p:
					pause = True
					paused()

				#move as balas
				if event.key == pygame.K_UP:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 2)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 2)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

				if event.key == pygame.K_LEFT and side_shooting:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 1)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 1)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

				if event.key == pygame.K_RIGHT and side_shooting:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 3)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 3)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

			if event.type == pygame.KEYUP:
				if event.key == pygame.K_a:
					pos_change += 1
				elif event.key == pygame.K_d:
					pos_change -= 1

		gameDisplay.blit(game_background, (0, 0))

		obstacleGroup.draw(gameDisplay)
		obstacleGroup.update()

		powers.draw(gameDisplay)
		powers.update()

		aluno.draw(gameDisplay)
		aluno.update(pos_change)

		if just_dead:
			just_dead = False

		#detecao de colisoes (obstaculo)
		for obstaculo in obstacleGroup:

			#colisao com o jogador
			if pygame.sprite.collide_rect(user, obstaculo):
				if obstaculo.dif() != 0:
					if user.shield() >= 1:
						score += 5 * user.score_change()
						obstacleGroup.remove(obstaculo)
						user.end_shield()
					else:
						colliding = True

				if is_god:
					score += 20
					obstacleGroup.remove(obstaculo)					

				else:
					if user.is_dead():
						user.update_hp(3)
						ultima_cadeira = obstaculo.nome()
						if is_god:
							god_sound.pause()
						else:
							game_sound.pause()
						death_sound.play(death)
						GG = True
						break

			#colisao com as balas
			if pygame.sprite.spritecollideany(obstaculo, bulletSprites):
				if obstaculo.dif() == 0:
					if is_god:
						score += 40
					else:
						score += 2 * user.score_change()
					pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					power_up_change -= 1
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

				elif obstaculo.dif() == 1:
					if is_god:
						score += 80
					else:
						score += 5 * user.score_change()
					pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					power_up_change -= 1
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

				elif obstaculo.dif() == 2:
					if is_god:
						power_up_change -= 1
						score += 150
						pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					else:
						score += 10 * user.score_change()
						pygame.sprite.groupcollide(obstacleGroup, bulletSprites, False, True)
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

			#quando o jogador ultrapassa um obstaculo
			if obstaculo.pos()[1] > display_height + (obstaculo.height()):
				if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
				power_up_change -= 1

				if obstaculo.dif() == 0:
					if not is_god:
						score -= 2
				elif obstaculo.dif() == 1:
					if not is_god:
						score -= 4
				obstacleGroup.remove(obstaculo)

		#detecao de colisoes (power_up)
		for power in powers:
			if pygame.sprite.spritecollideany(power, bulletSprites):
				pygame.sprite.groupcollide(powers, bulletSprites, True, True)
				power_up_change = random.randint(5, 9)

			if power.pos()[1] > display_height + (power.height()):
				powers.remove(power)
				power_up_change = random.randint(5, 9)

			if pygame.sprite.collide_rect(user, power):
				user.apply(power.type())
				power_up_change = random.randint(5, 9)

				if user.slow_time():
					for obstaculo in obstacleGroup:
						obstaculo.speed_change(obstaculo.speed/2)
					pygame.time.set_timer(USEREVENT + 4, 5000)

				if power.type() == 4:
					side_shooting = True
					pygame.time.set_timer(USEREVENT + 6, 10000)

				powers.remove(power)


		#quando o jogador e atingido por um obstaculo
		if colliding and not collide_change:
			collide_change = True
			if not is_god:
				user.update_hp(-1)
				if user.hp() != 0:
					gasp_sound.play(gasp)
					color_change = bright_red
			pygame.time.set_timer(USEREVENT + 3, 500)

		#mecanismo de tranca
		elif not colliding and collide_change:
			collide_change = False

		colliding = False

		#se o jogador perde
		if GG:
			just_dead = True
			#verifica se bateu o highscore
			table = open('highscore.txt','r')
			s = table.readline()
			i = -1
			while s[i].isdigit():
				score_string = s[i] + score_string
				i-=1
			
			i = 0
			while s[i] != "-":
				name_string += s[i]
				i+=1

			name_string = name_string[:-1]
			i = 0
			table.close

			if score > eval(score_string):
				deathscreen(score, name_string, score_string)
			else:
				crash()
				score_string = ""
				name_string = ""

		else:
			screen_text_center("ECT'S: " + str(score) , 700, 20, 20, black)
			screen_text_center("Paciencia: " +str(user.hp()) , 99, 19, 20, white)
			screen_text_center("Paciencia: " +str(user.hp()) , 100, 20, 20, color_change)
			power_up_display()

		#update
		bulletSprites.update()
		bulletSprites.draw(gameDisplay)
		obstacleGroup.update()
		clock.tick(60)
예제 #16
0
 def doubleshoot(self):
     self.dbullet += 1
     t = bullet([self.position[0] - 5, self.position[1]], -1, self.screen)
     r = bullet([self.position[0] + 5, self.position[1]], -1, self.screen)
     return t, r
예제 #17
0
    def run(self):

        #creating initial board
        for i in range(6, 16, 16):  #initial alien at 6
            self.__board.update(i, "Y")
        self.__board.update(56 + 3, "^")  #initial spaceship at 3

        #calculating temp variables
        tempalien = []  #stores index of aliens
        secbullet = []  #store second bullet hit aliens
        tempgrid = self.__board.getgrid()
        for i in range(16):
            if tempgrid[i] == "Y":
                tempalien.append(i)
        x = 3  #index of spaceship
        q = 1  #to exit game
        alientime = [''] * 16  #stores time
        for i in range(16):
            if i in tempalien:
                alientime[i] = time.time()
            if i not in tempalien:
                alientime[i] = 0

        prevtime = time.time()
        while (q):
            self.__board.render()
            move = input()

            #controling spaceship
            if move == "d" or move == "a":
                x = spaceship().control(x, move)
                for i in range(56, 64, 1):
                    self.__board.update(i, " ")
                self.__board.update(56 + x % 8, "^")

            #for exit
            elif move == "q":
                q = 0

            #for firing missiles
            elif (move == "s" or move == " "):

                temp = [bullet().getpos(x)]

                while (temp[0] >= 0):  #loop till bullet reaches top

                    #checking for aliens
                    flag = 0
                    tempgrid = self.__board.getgrid()
                    flag = bullet().checkalien(tempgrid, temp)

                    self.__board.update(temp[0], bullet().getbullet(move)[0])
                    self.__board.render()

                    #first missile
                    if move == " ":
                        #incrementing score
                        if flag == 1:
                            [alientime, secbullet, tempalien
                             ] = first().updscore(alientime, secbullet,
                                                  tempalien, temp[0])
                            self.__board.score = self.__board.score + 1
                        self.__board.update(temp[0], " ")

                    #second missile
                    else:
                        if flag == 1:
                            second().updamage(alientime, secbullet, temp[0])
                            self.__board.update(temp[0], "y")
                        else:
                            self.__board.update(temp[0], " ")

                    #delay for bullet
                    time.sleep(bullet().getbullet(move)[1])
                    self.__board.render()

                    #when hits alien stop moving up
                    if flag == 1:
                        break

                    temp[0] = bullet().updatpos(temp)

            #add aliens after 10 seconds
            #1s for delay in other proceses
            elapsedtime = time.time() - prevtime
            if (elapsedtime > 11):
                [tempalien, alientime] = alien().updal(self, tempalien, 1,
                                                       alientime)
                for i in range(16):
                    if (i in tempalien):
                        self.__board.update(i, "Y")
                prevtime = time.time()

            #remove aliens after 8 seconds
            #1s for delay in other proceses
            [tempalien, alientime,
             secbullet] = alien().updal(self, secbullet, 0, alientime)
            for i in range(16):

                if i in tempalien:
                    if i not in secbullet:
                        self.__board.update(i, "Y")
                    else:
                        self.__board.update(i, "y")
                if i not in tempalien:
                    self.__board.update(i, " ")
예제 #18
0
 def oneshoot(self):
     t = bullet(self.position, -1, self.screen)
     return t
예제 #19
0
 def shoot(self):
     return bullet(self.x + self.width / 2 - constants.A_BULLET_WIDTH / 2,
                   self.y, constants.ALIEN_BULLET)
예제 #20
0
from player import *
from enemy import *
from bullet import *
from collision import *
bullet1 = bullet()
player1 = player()
enemy1 = enemy()

pygame.init()
print(player1.speed)
x = y = 0
clock = pygame.time.Clock()

while True:
    clock.tick(30)
    curr_event = pygame.event.poll()
    bullet1.draw(player1.pos, curr_event)
    player1.kbdraw(curr_event)
    enemy1.draw(player1.pos)
    pygame.display.update()
    if collidevec(enemy1.pos, bullet1.pos, 50):
        enemy1.reset()
        enemy1 = enemy()
        bullet1.reset()
    if bullet1.pos.x > 1024 or bullet1.pos.x < 0 or bullet1.pos.y > 768 or bullet1.pos.y < 0:
        bullet1.reset()
예제 #21
0
while running:
    clock.tick(fps)
    x_change = 0
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                x_change = - display_width / 8

            elif event.key == pygame.K_d:
                x_change = display_width / 8

            elif event.key == pygame.K_s:
                mis = bullet(player.rect.left, player.rect.top)
                missiles.add(mis)

            elif event.key == pygame.K_SPACE:
                mis = bomb(player.rect.left, player.rect.top)
                missiles.add(mis)

            elif event.key == pygame.K_q:
                running = False

    player.update(x_change)
    if t + 10 <= time.time():
        a = alien()
        t = time.time()
        aliens.add(a)
예제 #22
0
 def shoot(self):
     return bullet(self.x + self.width / 2 - constants.SS_BULLET_WIDTH / 2,
                   self.y, constants.SPACESHIP_BULLET)