Advertisement
Guest User

Black Widow Python

a guest
May 6th, 2024
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 22.92 KB | Source Code | 0 0
  1. import pygame
  2. from pygame import mixer
  3. from pygame.locals import *
  4. from OpenGL.GL import *
  5. from OpenGL.GLU import *
  6. import math
  7. import random
  8.  
  9. pygame.init()
  10. pygame.display.set_caption("Black Widow")
  11. clock = pygame.time.Clock()
  12. #SFX for player projectile
  13. shoot_sound = pygame.mixer.Sound('Contra SFX (15).wav')
  14. shoot_sound.set_volume(0.6)
  15. #In game music
  16. music = pygame.mixer.Sound('The House of the Dead OST - Boss Theme - Arcade Ver. (Actual Hardware).mp3')
  17. music.set_volume(0.5)
  18. music.play(-1)
  19. #SFX for collecting a point
  20. collect_sound = pygame.mixer.Sound('Crash Bandicoot Sounds - Wumpa Fruit.mp3')
  21. collect_sound.set_volume(0.6)
  22.  
  23.  
  24. #For background
  25. gx=14
  26. gy=10
  27. ground_verticies=((gx,gy,10),#V0
  28.                   (-gx,gy,10),#V1
  29.                   (-gx,gy,-10),#V2
  30.                   (gx,gy,-10))#V3
  31. ground_edges=((0,1),(1,2),(2,3),(3,0))
  32. ground_faces=((0,1,2,3))
  33. ground_coords=((0,1),(1,1),(1,0),(0,0))
  34.  
  35. #For cone
  36. scale=0.5
  37. cm=+0.5
  38. Triverticies = (
  39.     (-1.018606*scale, -0.999790*scale, -0.100324*scale),
  40.     (-0.791166*scale, -0.999696*scale, 0.649293*scale),
  41.     (-0.100325*scale, -0.999805*scale, 1.018614*scale),
  42.     (0.649293*scale, -0.999696*scale, 0.791166*scale),
  43.     (1.018606*scale, -0.999790*scale, 0.100324*scale),
  44.     (0.791166*scale, -0.999696*scale, -0.649293*scale),
  45.     (0.100325*scale, -0.999805*scale, -1.018614*scale),
  46.     (-0.649293*scale, -0.999696*scale, -0.791166*scale),
  47.     (0.000000, 1.000000*scale, 0.000000)
  48.     )
  49. Triedges = (
  50.     (0,1),
  51.     (0,8),
  52.     (1,2),
  53.     (1,8),
  54.     (2,3),
  55.     (2,8),
  56.     (3,4),
  57.     (3,8),
  58.     (4,5),
  59.     (4,8),
  60.     (5,6),
  61.     (5,8),
  62.     (6,7),
  63.     (6,8),
  64.     (7,0),
  65.     (7,8),
  66.     )
  67.  
  68. #For cubes
  69. verticies = ((1, -1, -1),(1, 1, -1),(-1, 1, -1),(-1, -1, -1),(1, -1, 1),(1, 1, 1),(-1, -1, 1),(-1, 1, 1))
  70. edges = ((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(6,3),(6,4),(6,7),(5,1),(5,4),(5,7))
  71. faces = ((0,1,2,3),(3,2,7,6),(6,7,5,4),(4,5,1,0),(1,5,7,2),(4,0,3,6))
  72. colors = ((1,0,0),(0,1,0),(0,0,1),(0,1,1),(1,0,1),(1,1,0))
  73. colors = (
  74.     (1,0,0),
  75.     (0,1,0),
  76.     (0,0,1),
  77.     (0,1,1),
  78.     (1,0,1),
  79.     (1,1,0),
  80.     )
  81. normals = [
  82. ( 0,  0, -1),  # surface 0
  83. (-1,  0,  0),  # surface 1
  84. ( 0,  0,  1),  # surface 2
  85. ( 1,  0,  0),  # surface 3
  86. ( 0,  1,  0),  # surface 4
  87. ( 0, -1,  0)   # surface 5
  88.     ]
  89. #Displays text on screen
  90. def drawText(x, y, text, size):  
  91.     font = pygame.font.SysFont('arial', size)    
  92.     glEnable(GL_BLEND)
  93.     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)                                        
  94.     textSurface = font.render(text, True, (255, 255, 66, 255)).convert_alpha()
  95.     textData = pygame.image.tostring(textSurface, "RGBA", True)
  96.     glWindowPos2d(x, y)
  97.     glDrawPixels(textSurface.get_width(), textSurface.get_height(), GL_RGBA, GL_UNSIGNED_BYTE, textData)
  98. #Method Places textures on 3D objects
  99. def load_texture(image_name):
  100.     image = pygame.image.load(image_name)
  101.     data = pygame.image.tostring(image, 'RGBA')
  102.     texID = glGenTextures(1)
  103.     glBindTexture(GL_TEXTURE_2D,texID)
  104.     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.get_width(), image.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, data)
  105.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
  106.     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
  107.     return texID
  108.  
  109. # draw cube function
  110. def Box():
  111.     glColor3fv((1,1,1))
  112.     glEnable(GL_TEXTURE_2D)
  113.     glBegin(GL_QUADS)
  114.     for face in faces:
  115.         for i, vertex in enumerate(face):
  116.             glTexCoord2fv(ground_coords[i])
  117.             glVertex3fv(verticies[vertex])
  118.            
  119.     glEnd()
  120.     glColor3fv((1,1,1))
  121.     glBegin(GL_LINES)
  122.     for edge in edges:
  123.         for vertex in edge:
  124.             glVertex3fv(verticies[vertex])
  125.     glEnd()
  126.     glDisable(GL_TEXTURE_2D)
  127.  
  128. #Draw Tri
  129. def Tri():
  130.     glBegin(GL_LINES)
  131.     for edge in Triedges:
  132.         for vertex in edge:
  133.             glVertex3fv(Triverticies[vertex])
  134.             glColor3f(1,0,0)
  135.     glEnd()
  136.  
  137. #draw sphere function
  138. def Sphere():
  139.     glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
  140.     sphere = gluNewQuadric()
  141.     gluSphere(sphere, 1.0, 32, 16) #x,y,z
  142.     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
  143. #draw square function
  144. def Cube():
  145.     glBegin(GL_QUADS)
  146.     i = -2
  147.     for face in faces:
  148.         i += 1
  149.         for vertex in face:
  150.             glColor3fv(colors[i])
  151.             glVertex3fv(verticies[vertex])
  152.     glEnd()
  153.    
  154.     glBegin(GL_LINES)
  155.     for edge in edges:
  156.         for vertex in edge:
  157.             glColor3fv((1,1,1))
  158.             glVertex3fv(verticies[vertex])
  159.     glEnd()
  160.  
  161. #Beetle RocketBug Mosquito GrenadeBug
  162. def enemy(bug):
  163.     if(bug=="Mosquito"):
  164.         enemy_texID = load_texture('Mosquito.jpg')
  165.     if(bug=="Beetle"):
  166.         enemy_texID = load_texture('Beetle.jpg')
  167.     if(bug=="GrenadeBug"):
  168.         enemy_texID = load_texture('GrenadeBug.jpg')
  169.     if(bug=="RocketBug"):
  170.         enemy_texID = load_texture('RocketBug.jpg')
  171.     if(bug=="Widow"):
  172.         enemy_texID = load_texture('Widow.jpg')
  173.     glColor3fv((1,1,1))
  174.     glEnable(GL_TEXTURE_2D)
  175.    
  176.     glBegin(GL_QUADS)
  177.     for face in ground_faces:
  178.         for i,vertex in enumerate(ground_faces):
  179.             glTexCoord2fv(ground_coords[i])
  180.             glVertex3fv(ground_verticies[vertex])
  181.     glEnd()
  182.     glDisable(GL_TEXTURE_2D)
  183.     glEnable(GL_TEXTURE_2D)
  184.     glBegin(GL_LINES)
  185.     for edge in ground_edges:
  186.         for vertex in edge:
  187.             glVertex3fv(ground_verticies[vertex])
  188.     glEnd()
  189.     glDisable(GL_TEXTURE_2D)
  190.    
  191. #Setting up the gameplay loop    
  192. pygame.display.set_mode((800,600), DOUBLEBUF|OPENGL)
  193. gluPerspective(45, (800/600), 0.5, 50.0)
  194. glTranslatef(0.0,0.0, -5)
  195. Highscore=0
  196. GameStart = False
  197.    
  198. #Gameplay loop
  199. def game_loop():
  200.     #Skybox vars
  201.     cx = 0
  202.     cy = 0
  203.     cz = 0
  204.     GameOver=0
  205.    
  206.     #Player vars
  207.     sx_change = 0
  208.     sy_change = 0
  209.     sz_change = 0
  210.     sx = 0
  211.     sy = 0#-0.01
  212.     sz = -10  
  213.     anglep = 0
  214.     speed = 0.1
  215.    
  216.     #Projectile vars
  217.     distance=0
  218.     pspeed=0.1#0.05
  219.     wangle=0
  220.     px=0
  221.     py=0#20
  222.     pz=-10
  223.    
  224.     #Grub points
  225.     gx=[0,0,0,0,0,0,0]
  226.     gy=[-7,-7,-7,-7,-7,-7,-7]
  227.     grad=0.5
  228.    
  229.     #Box1 vars
  230.     CX = 7.5
  231.     CY = 5.5
  232.    
  233.     #Timer vars
  234.     start_ticks=pygame.time.get_ticks()
  235.     #clock.tick(60)#The Original. Nums inaccurate. Stops when paused.
  236.     time_elapsed=0
  237.     pauseTotalTime = 0
  238.     pauseStartTime = 0
  239.     wave = 1;
  240.    
  241.     #HUD and gameplay vars
  242.     score=-6
  243.     redo=0
  244.     freeze = False
  245.     gameExit = False  
  246.     global Highscore
  247.     #pygame.display.set_mode((800,600), DOUBLEBUF|OPENGL)
  248.     #gluPerspective(45, (800/600), 0.5, 50.0)
  249.     #glTranslatef(0.0,0.0, -5)
  250.    
  251.     #Enemy vars
  252.     ez=-10
  253.     ex=[0,0,0,0,0,0,0]
  254.     ey=[0,0,0,0,0,0,0]
  255.     etype=["","","","","","",""]
  256.     ehits=[1,1,1,1,1,1,1]
  257.     bugs=["Mosquito","Beetle","GrenadeBug","RocketBug"]
  258.     bughits=[1,3,1,1]
  259.     espeed=[0.04,0.02,0.03,0.01]
  260.     erad=0.8
  261.     esize=0.05
  262.     bbool=[1,1,1,1,1,1,1]
  263.     bway=[-1,-1,-1,-1,-1,-1,-1]
  264.     #Explosion attack
  265.     xrad=0.8
  266.     xbool=0
  267.     xx=[14,14,14,14,14,14,14]
  268.     xy=[14,14,14,14,14,14,14]
  269.     xadd=0
  270.     xhold=0
  271.     maxE=5
  272.     ex_change=[0,0,0,0,0,0,0]
  273.     ey_change=[0,0,0,0,0,0,0]
  274.    
  275.     box_texID = load_texture('Web.jpg')
  276.    
  277.     #Title Screen
  278.     global GameStart
  279.  
  280.     while not gameExit:
  281.         for event in pygame.event.get():
  282.             if event.type == pygame.QUIT:
  283.                 gameExit = True
  284.                 pygame.quit()#################################################
  285.             elif event.type == pygame.KEYDOWN:
  286.                 if event.key == pygame.K_UP:
  287.                     anglep=0
  288.                     wangle=90
  289.                     distance=pspeed
  290.                     shoot_sound.play()
  291.                 elif event.key == pygame.K_DOWN:
  292.                     anglep=180
  293.                     wangle=-90
  294.                     distance=pspeed
  295.                     shoot_sound.play()
  296.                 elif event.key == pygame.K_LEFT:
  297.                     anglep=90
  298.                     wangle=-180
  299.                     distance=pspeed
  300.                     shoot_sound.play()
  301.                 elif event.key == pygame.K_RIGHT:
  302.                     anglep=-90
  303.                     wangle=0
  304.                     distance=pspeed
  305.                     shoot_sound.play()
  306.    
  307.                 if event.key == pygame.K_w:
  308.                     sy_change += speed
  309.                 if event.key == pygame.K_s:
  310.                     sy_change += -speed
  311.                 if event.key == pygame.K_a:
  312.                     sx_change += -speed
  313.                 if event.key == pygame.K_d:
  314.                     sx_change += speed
  315.                    
  316.             elif event.type == pygame.KEYUP:
  317.                 if event.key == pygame.K_w or event.key == pygame.K_s:
  318.                     sy_change = 0
  319.                 if event.key == pygame.K_a or event.key == pygame.K_d:
  320.                     sx_change = 0
  321.                 elif event.key == pygame.K_RETURN and GameOver == 0:
  322.                     freeze = not freeze
  323.                 if event.key == pygame.K_r:
  324.                     time_elapsed = 0
  325.                     gameExit = True
  326.                     game_loop()
  327.        
  328.         #This text is displayed when the game is paused.
  329.         if(GameOver != 1):
  330.             drawText(320, 300, "Paused", 60)
  331.         #This begins counting how long the game is paused for.
  332.         if(freeze == True):
  333.             pauseStartTime = (pygame.time.get_ticks()/1000)
  334.         elif(freeze == False):
  335.             pauseTotalTime = pauseTotalTime+(int(pygame.time.get_ticks()-start_ticks/1000)+pauseStartTime)
  336.             #pauseTotalTime = round(pauseTotalTime,3)+(round(pygame.time.get_ticks()/1000,3))+round(pauseStartTime,3)
  337.             #pauseTotalTime = pauseTotalTime+(pygame.time.get_ticks()/1000)+pauseStartTime
  338.             #pauseTotalTime=(pygame.time.get_ticks()/1000)
  339.            
  340.         #clock.tick(60)#Stops time when game paused. Game has trouble relaunching afterward.
  341.         #get.tick=50.043/50.017 timeelasped=50.677/50.622
  342.         #Beginning of Freeze loop that can pause game.and GameStart == False
  343.         if(freeze == False):
  344.             #Collision for border
  345.             if sx >= CX:
  346.                 sx_change -=speed
  347.             if sx <= -CX:
  348.                 sx_change +=speed
  349.                
  350.             if sy >= CY:
  351.                 sy_change -=speed
  352.             if sy <= -CY:
  353.                 sy_change +=speed
  354.    
  355.             sx += sx_change
  356.             sy += sy_change
  357.             sz += sz_change
  358.             glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
  359.            
  360.             #Environment Box
  361.             glPushMatrix()
  362.             cxx=2.2
  363.             cyy=1.6
  364.             glTranslatef(cx, cy, cz)
  365.             glScalef(cxx,cyy,1)
  366.             glRotatef(-90, 0.0, 0.0, 1.0)
  367.             glBindTexture(GL_TEXTURE_2D, box_texID)
  368.             Box()
  369.             glPopMatrix()
  370.            
  371.             #Player
  372.             glPushMatrix()
  373.             glTranslatef(sx, sy, sz)
  374.             glRotatef(anglep, 0.0, 0.0, 1.0)
  375.             glRotatef(90, 0.0, 0.0, 1.0)
  376.             glRotatef(90, 1.0, 0.0, 0.0)
  377.             glRotatef(-90, 0.0, 1.0, 0.0)
  378.             glScalef(esize, esize, esize)
  379.             enemy("Widow")
  380.             glPopMatrix()
  381.            
  382.             #Projectiles
  383.             glPushMatrix()
  384.             glColor3f(255.0, 255.0, 255.0)
  385.             #Projectile boundaries.
  386.             if distance > 0:
  387.                 px=(distance*math.cos(math.pi/180.0*wangle))
  388.                 py=(distance*math.sin(math.pi/180.0*wangle))
  389.                 if distance < 14:
  390.                     if(wangle==90):#Up
  391.                         px=sx
  392.                         py+=sy
  393.                         pz=sz
  394.                         glTranslatef(px, py, pz)
  395.                     elif(wangle==-90):#Down
  396.                         px=sx
  397.                         py+=sy
  398.                         pz=sz
  399.                         glTranslatef(px, py, pz)
  400.                     elif(wangle==-180):#Left
  401.                         px+=sx
  402.                         py=sy
  403.                         pz=sz
  404.                         glTranslatef(px, py, pz)
  405.                     elif(wangle==0):#Right
  406.                         px+=sx
  407.                         py=sy
  408.                         pz=sz
  409.                         glTranslatef(px, py, pz)
  410.                     glScalef(0.2, 0.2, 0.2)
  411.                     Cube()
  412.                     distance = distance + 0.5
  413.                 else:
  414.                     distance = 0
  415.                     pz=-9
  416.                     px=0
  417.                     py=0
  418.                     glTranslatef(px, py, pz)
  419.             glPopMatrix()
  420.            
  421.             #Enemy 1
  422.             i = 0
  423.             while i <= maxE:
  424.                 glPushMatrix()
  425.                 #Behavior per enemy
  426.                 if etype[i]=="Mosquito":#Chase player
  427.                     if ex[i]>sx:
  428.                         ex[i] -=espeed[0]
  429.                     elif ex[i]<sx:
  430.                         ex[i] +=espeed[0]
  431.                     if ey[i]>sy:
  432.                         ey[i] -=espeed[0]
  433.                     elif ey[i]<sy:
  434.                         ey[i] +=espeed[0]
  435.                 if etype[i]=="Beetle":#Eat points
  436.                     j = 0
  437.                     boolg=0
  438.                     while j <= 5:
  439.                         if gy[j] > -7:
  440.                             if ex[i]>gx[j]:
  441.                                 ex[i] -=espeed[1]
  442.                                 boolg=1
  443.                             elif ex[i]<gx[j]:
  444.                                 ex[i] +=espeed[1]
  445.                                 boolg=1
  446.                             if ey[i]>gy[j]:
  447.                                 ey[i] -=espeed[1]
  448.                                 boolg=1
  449.                             elif ey[i]<gy[j]:
  450.                                ey[i] +=espeed[1]
  451.                                boolg=1
  452.                                
  453.                             distb = math.sqrt((ex[i] - gx[j])**2 + (ey[i] - gy[j])**2)
  454.                             if distb <= grad*2:
  455.                                 gx[j]=0
  456.                                 gy[j]=-7
  457.                             break
  458.                         j=j+1
  459.                 if etype[i]=="GrenadeBug":#Explodes and gets u and enemies
  460.                     if bbool[i]==1:
  461.                         ex[i] +=espeed[2]
  462.                     elif bbool[i]==0:
  463.                         ex[i] -=espeed[2]
  464.                     if ex[i]>9:
  465.                         ex[i] -=espeed[2]
  466.                         ey[i] +=bway[i]
  467.                         bbool[i]=0
  468.                     elif ex[i]<-9:
  469.                         ex[i] +=espeed[2]
  470.                         ey[i] +=bway[i]
  471.                         bbool[i]=1
  472.                     if ey[i]>6:
  473.                         bway[i]=-1
  474.                         ey[i] +=bway[i]
  475.                         ex[i] -=espeed[2]
  476.                     elif ey[i]<-6:
  477.                         bway[i]=1
  478.                         ey[i] +=bway[i]
  479.                         ex[i] -=espeed[2]
  480.                 if etype[i]=="RocketBug":#Fast Unpredictable
  481.                     if ex[i] >= CX:
  482.                         ex_change[i] -=espeed[3]
  483.                     if ex[i] <= -CX:
  484.                         ex_change[i] +=espeed[3]
  485.                        
  486.                     if ey[i] >= CY:
  487.                         ey_change[i] -=espeed[3]
  488.                     if ey[i] <= -CY:
  489.                         ey_change[i] +=espeed[3]
  490.                    
  491.                     ex[i] += ex_change[i]
  492.                     ey[i] += ey_change[i]
  493.                 #Check collision with Player
  494.                 dist = math.sqrt((sx - ex[i])**2 + (sy - ey[i])**2)
  495.                 if dist <= erad and round(((pygame.time.get_ticks()-start_ticks)/1000)-redo,3) > 1:
  496.                     #glTranslatef(ex[i], ey[i], ez-5)####################################################
  497.                     GameOver=1
  498.                 #Projectile hit enemy?
  499.                 distw = math.sqrt((px - ex[i])**2 + (py - ey[i])**2)
  500.                 #Check if explode any enemies
  501.                 distE = math.sqrt((ex[i] - xx[xhold])**2 + (ey[i] - xy[xhold])**2)
  502.                 if distw <= erad and pz==sz or distE <= xrad:
  503.                     if distE <= xrad:
  504.                         score+=2
  505.                     ehits[i]-=1
  506.                     if ex[0]!=0 and ex[1]!=0 and ex[2]!=0 and ex[3]!=0 and ex[4]!=0 and ex[5]!=0:
  507.                         distance=0
  508.                         pz=-9
  509.                     if ehits[i] <= 0 and etype[i]=="GrenadeBug":#Activate explosion
  510.                         xbool=1
  511.                         xx[i]=ex[i]
  512.                         xy[i]=ey[i]
  513.                         xhold=i
  514.                     if ehits[i] <= 0:
  515.                         #Drop point
  516.                         gx[i]=ex[i]
  517.                         gy[i]=ey[i]
  518.                        
  519.                         ex_change[i]=0.01
  520.                         ey_change[i]=0.01
  521.                         #Random spawn point for enemy.
  522.                         choice=random.randint(1, 4)
  523.                         if choice==1:
  524.                             ex[i] = random.randint(-8, 8)
  525.                             ey[i] = 6
  526.                         if choice==2:
  527.                             ex[i] = 9
  528.                             ey[i] = random.randint(-5, 5)
  529.                         if choice==3:
  530.                             ex[i] = random.randint(-8, 8)
  531.                             ey[i] = -6
  532.                         if choice==4:
  533.                             ex[i] = -9
  534.                             ey[i] = random.randint(-5, 5)
  535.                         #What type of enemy 0Mos 1Beet 2Bomb 3Bug
  536.                         randBug=random.randint(0, 9)
  537.                         if randBug>=4 or i==0:
  538.                             randBug=0
  539.                         etype[i]=bugs[randBug]
  540.                         ehits[i]=bughits[randBug]
  541.                 glTranslatef(ex[i], ey[i], ez)
  542.                 glRotatef(90, 0.0, 0.0, 1.0)
  543.                 glRotatef(90, 1.0, 0.0, 0.0)
  544.                 glRotatef(-90, 0.0, 1.0, 0.0)
  545.                 glScalef(esize, esize, esize)
  546.                 enemy(etype[i])
  547.                 glPopMatrix()
  548.                 i=i+1
  549.            
  550.             #Grenade Bug explosion if EnemyDefeated=GernadeBug
  551.             if xbool==1:
  552.                 glPushMatrix()
  553.                 glColor3f(1,0,0)
  554.                 glTranslatef(xx[xhold],xy[xhold],sz)
  555.                 xrad+=xadd
  556.                 glScalef(xrad,xrad,0.2)
  557.                 xadd+=0.01
  558.                
  559.                 #Check collision with Player
  560.                 distE = math.sqrt((sx - xx[xhold])**2 + (sy - xy[xhold])**2)
  561.                 if distE <= xrad:
  562.                     GameOver=1
  563.                    
  564.                 #Check if GernadeBug explode any enemies
  565.                 if xrad < 2.8:
  566.                     Sphere()
  567.                 else:
  568.                     xx[xhold]=14
  569.                     xy[xhold]=14
  570.                     glTranslatef(xx[xhold],xy[xhold],sz)
  571.                     xrad=0.8
  572.                     xadd=0
  573.                     Sphere()
  574.                     xbool=0
  575.                 glPopMatrix()
  576.            
  577.             #Points to collect
  578.             i = 0
  579.             while i <= maxE:
  580.                 glPushMatrix()
  581.                 glColor3f(1,0,0)
  582.                 distg = math.sqrt((sx - gx[i])**2 + (sy - gy[i])**2)
  583.                 if distg <= grad:
  584.                     score+=1
  585.                     gx[i]=0
  586.                     gy[i]=-7
  587.                     if(score > 0):
  588.                         collect_sound.play()
  589.                 glTranslatef(gx[i], gy[i], sz)
  590.                 glRotatef(0, 0.0, 0.0, 1.0)
  591.                 gsize=0.6
  592.                 glScalef(gsize, gsize, gsize)
  593.                 Tri()
  594.                 glPopMatrix()
  595.                 i=i+1
  596.             #Score display
  597.             drawText(320, 550, "Score: "+str(score), 45)
  598.             drawText(5, 570, "High Score: "+str(Highscore), 25)
  599.            
  600.             #Controls
  601.             drawText(0, 0, "WASD=Move, Arrows=Shoot, ENTER=Pause, R=Restart", 30)
  602.            
  603.             #Wave Number
  604.             drawText(500,565,"Wave: "+str(wave), 30)
  605.            
  606.             #Wave Timer
  607.             #Timer=(pygame.time.get_ticks()-start_ticks)/1000
  608.             Timer=((pygame.time.get_ticks()-start_ticks)/1000)#-pauseTotalTime
  609.             #Old timer func
  610.             #if((pygame.time.get_ticks()-start_ticks)/1000)-redo < 60.000:
  611.                 #drawText(630,565,"Time: "+str(round(((pygame.time.get_ticks()-start_ticks)/1000)-redo,3)), 30)
  612.                
  613.                 #DEBUG FOR NEW TIMER###########################################
  614.             if(Timer)-redo < 60.000:
  615.                 drawText(630,565,"Time: "+str(round(((pygame.time.get_ticks()-start_ticks)/1000)-redo,3)), 30)
  616.                 drawText(700,540,str(round(Timer-pauseStartTime-pauseTotalTime,3)), 30)
  617.                 #drawText(640,515,"Time: "+str(round(((pygame.time.get_ticks()-start_ticks)/1000)-redo,3)), 30)
  618.                 #current_time=int(pygame.time.get_ticks()/1000)-start_time-paused_total_time
  619.                
  620.                 #clock.tick(60)#Time continues when paused. Time gets ahead of get_ticks(inaccurate)
  621.                 time_elapsed += clock.get_time()#0.0166666667
  622.                 #drawText(700,540,str(round((time_elapsed)/1000,3)),30)
  623.                 #drawText(700,540,str(round((time_elapsed),3)),30)
  624.                 #drawText(700,540,str(round(Timer-pauseStartTime-pauseTotalTime,3)), 30)
  625.                 #drawText(640,515,"XST: "+str(round(((pygame.time.get_ticks())/1000)-redo,3)), 30)
  626.                 drawText(550,490,"PauseStartTime:"+str(round(pauseStartTime,3)), 30)
  627.                 drawText(550,465,"PauseTotalTime:"+str(round(pauseTotalTime,3)), 30)
  628.                 #drawText(700,540,str(round((time_elapsed-start_ticks)/8000,3)),30)#########################
  629.             else:
  630.                 redo=redo+60.000
  631.                 Upspeed=0.02
  632.                 espeed[0]+=Upspeed
  633.                 espeed[1]+=Upspeed
  634.                 espeed[2]+=Upspeed
  635.                 espeed[3]+=0.01
  636.                 pspeed+=Upspeed
  637.                 speed+=Upspeed
  638.                 wave+=1
  639.             #pygame.display.flip()
  640.             #End of Freeze
  641.         #Checks if Game Over has occured or not
  642.         if GameOver==0:
  643.             scoreSet=score
  644.         if GameOver==1:
  645.             scoreSet=score
  646.             drawText(150, 300, "Game Over Score="+str(scoreSet), 60)
  647.             drawText(280, 200, "R to Retry", 60)
  648.             time_elapsed = 0
  649.             if(Highscore < score):
  650.                 Highscore = score
  651.             freeze = True
  652.         #if(freeze == True):
  653.         pygame.display.flip()
  654.         pygame.time.wait(10)
  655.         #
  656.         #GameStart = True
  657.         #freeze = True
  658.        
  659. #game_loop()
  660. #pygame.quit()
  661. #'''
  662. #gameExit = False
  663. #Closes game
  664. while True:
  665.     try:
  666.         game_loop()
  667.     except pygame.error:
  668.         break
  669.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement