Guest User

Untitled

a guest
Jul 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.82 KB | None | 0 0
  1. import pygame
  2. import random
  3. from os import path
  4. from sqlite3 import *
  5. from tkinter import *
  6. from questions import *
  7. import tkinter.messagebox as tm
  8. pygame.init()
  9. WIDTH = 600
  10. HEIGHT = 600
  11. FPS = 60
  12.  
  13. WHITE = (255,255,255)
  14. BLACK = (0,0,0)
  15. RED = (255,0,0)
  16. GREEN = (0,255,0)
  17. BLUE = (0,0,255)
  18. YELLOW =(255, 255, 0)
  19. background_image = pygame.image.load("background.jpg")
  20. global names
  21. names = "abc"
  22. screen = pygame.display.set_mode((WIDTH, HEIGHT))
  23. pygame.display.set_caption("Business Space Invaders")
  24. clock = pygame.time.Clock()
  25.  
  26. font_name = pygame.font.match_font("arial")
  27.  
  28. timerRunning = False
  29. fifteen = pygame.USEREVENT+1
  30. pygame.time.set_timer(fifteen,1000)
  31. timer = 0
  32.  
  33. #login
  34. class SaveFrame(Frame):
  35. def __init__(self, master):
  36. super().__init__(master)
  37. self.label_message = Label(self, text="game over, better luck next time!")
  38. self.label_username = Label(self, text="Enter Your Name")
  39.  
  40. self.entry_username = Entry(self)
  41.  
  42.  
  43.  
  44. self.label_message.grid(row=0, sticky=E)
  45. self.label_username.grid(row=1, sticky=E)
  46. self.entry_username.grid(row=1, column=1)
  47.  
  48. self.savebtn = Button(self, text="Save", command=self._save_btn_clicked)
  49. self.savebtn.grid(columnspan=2)
  50.  
  51. self.pack()
  52.  
  53. def _save_btn_clicked(self):
  54. names = self.entry_username.get()
  55. save_scores(names)
  56. quit()
  57.  
  58. def save_scores(names):
  59. conn,cur =dbconnection()
  60. cur.execute("insert into Scoreboard values(null, '{0}','{1}')".format(names,score))
  61. conn.commit()
  62. conn.close()
  63.  
  64.  
  65. #database
  66. def dbconnection():
  67. conn= connect("scores.db")
  68. cur = conn.cursor()
  69. return conn, cur
  70.  
  71.  
  72. #score
  73. def draw_text(surf, text, size, x, y):
  74. font = pygame.font.Font(font_name,size)
  75. text_surface = font.render(text,True,WHITE)
  76. text_rect = text_surface.get_rect()
  77. text_rect.midtop = (x,y)
  78. surf.blit(text_surface, text_rect)
  79.  
  80. def new_mob():
  81. m = Mob()
  82. all_sprites.add(m)
  83. mobs.add(m)
  84.  
  85. #players sprite
  86. class Player(pygame.sprite.Sprite):
  87. def __init__(self):
  88. pygame.sprite.Sprite.__init__(self) #inheritanince
  89. #self.shooting = pygame.mixer.Sound("shoot.mp3")
  90. self.image = pygame.image.load("player2.png")
  91. self.image = pygame.transform.scale(self.image, (100,120)) #surface to draw
  92. self.rect = self.image.get_rect()
  93. self.rect.centerx = WIDTH/2 #places image in centre
  94. self.rect.bottom = HEIGHT-10 #puts it 10px from bottom
  95. self.speedx = 0
  96.  
  97. def update(self):
  98. #move the sprite
  99. self.speedx = 0
  100. keystate = pygame.key.get_pressed()
  101. if keystate[pygame.K_LEFT]:
  102. self.speedx = -5
  103. if keystate[pygame.K_RIGHT]:
  104. self.speedx=5
  105.  
  106. self.rect.x += self.speedx
  107.  
  108. #to ensure it does not run off screen
  109. if self.rect.right >WIDTH:
  110. self.rect.right = WIDTH
  111. if self.rect.left < 0:
  112. self.rect.left = 0
  113.  
  114. def shoot(self):
  115. bullet = Bullet(self.rect.centerx,self.rect.top)
  116. all_sprites.add(bullet)
  117. bullets.add(bullet)
  118.  
  119.  
  120. class Mob(pygame.sprite.Sprite):
  121. #enemy inherits from sprite
  122. def __init__(self):
  123. pygame.sprite.Sprite.__init__(self)
  124. self.image = pygame.image.load("topic1.png")
  125. self.image = pygame.transform.scale(self.image, (70,60))
  126. self.rect = self.image.get_rect()
  127.  
  128. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  129. self.rect.y = random.randrange(-100,-40)
  130. self.speedy = 1
  131. self.mob = "mob"
  132.  
  133.  
  134.  
  135. def update(self):
  136. self.rect.y += self.speedy
  137. if self.rect.top > HEIGHT +10:
  138. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  139. self.rect.y = random.randrange(-100,-40)
  140. self.speedy = 1
  141.  
  142.  
  143. class Mob2(pygame.sprite.Sprite):
  144. def __init__(self):
  145. pygame.sprite.Sprite.__init__(self)
  146. self.image = pygame.image.load("topic2.png")
  147. self.image = pygame.transform.scale(self.image, (70,60))
  148. self.rect = self.image.get_rect()
  149. self.mob = "mob2"
  150.  
  151. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  152. self.rect.y = random.randrange(-100,-40)
  153. self.speedy = 1
  154.  
  155.  
  156. def update(self):
  157. self.rect.y += self.speedy
  158. if self.rect.top > HEIGHT +10:
  159. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  160. self.rect.y = random.randrange(-100,-40)
  161. self.speedy = 1
  162.  
  163. class Mob3(pygame.sprite.Sprite):
  164. def __init__(self):
  165. pygame.sprite.Sprite.__init__(self)
  166. self.image = pygame.image.load("topic3.png")
  167. self.image = pygame.transform.scale(self.image, (70,60))
  168. self.rect = self.image.get_rect()
  169. self.mob = "mob3"
  170.  
  171. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  172. self.rect.y = random.randrange(-100,-40)
  173. self.speedy = 1
  174.  
  175.  
  176. def update(self):
  177. self.rect.y += self.speedy
  178. if self.rect.top > HEIGHT +10:
  179. self.rect.x = random.randrange(0, WIDTH - self.rect.width)
  180. self.rect.y = random.randrange(-100,-40)
  181. self.speedy = 1
  182.  
  183.  
  184. class Buttons(pygame.sprite.Sprite):
  185. def __init__(self,x,y,colour_text,text,text_size,width,height,action_take):
  186. pygame.sprite.Sprite.__init__(self) #inheritance
  187. self.image = pygame.Surface((width,height))
  188. self.image.fill(255,0,0)
  189. self.rect = self.image.get_rect()
  190. self.rect.center = (x,y)
  191. self.font = pygame.font.SysFont("Marlet",text_size)
  192. self.surf = self.font.render(text,1, colour_text)
  193. self.text_rect = self.surf.get_rect()
  194. self.text_rect.center = (x,y)
  195. self.type = "button"
  196. self.action_take = action_take
  197.  
  198.  
  199. def update(self):
  200. screen.blit(self.image,self.rect)
  201. screen.blit(self.surf,self.text_rect)
  202.  
  203.  
  204.  
  205. class Bullet(pygame.sprite.Sprite):
  206. def __init__(self,x,y):
  207. pygame.sprite.Sprite.__init__(self) #inheritance
  208. self.image = pygame.image.load("money.png")
  209. self.image = pygame.transform.scale(self.image, (30,40))
  210. self.rect = self.image.get_rect()
  211.  
  212. self.rect.centerx = x
  213. self.rect.bottom = y
  214. self.speedx = -10
  215.  
  216. def update(self):
  217. self.rect.y += self.speedx
  218. if self.rect.bottom <0:
  219. self.kill()
  220.  
  221. class Questions(Frame):
  222. def __init__(self, master):
  223. self.master = master
  224. super().__init__(master)
  225. self.label_message = Label(self, text="{}".format(ques))
  226. self.label_message.grid(row=0, sticky=E)
  227. self.quesbtn1 = Button(self, text="{}".format(ans1), command=self._ques_btn_1)
  228. self.quesbtn1.grid(columnspan=2)
  229. self.quesbtn2 = Button(self, text="{}".format(ans2), command=self._ques_btn_2)
  230. self.quesbtn2.grid(columnspan=2)
  231. self.quesbtn3 = Button(self, text="{}".format(ans3), command=self._ques_btn_3)
  232. self.quesbtn3.grid(columnspan=2)
  233. self.quesbtn4 = Button(self, text="{}".format(ans4), command=self._ques_btn_4)
  234. self.quesbtn4.grid(columnspan=2)
  235. self.pack()
  236. self.label_message.config(font=("Arial", 30))
  237. self.quesbtn1.config(font=("Arial",20))
  238. self.quesbtn2.config(font=("Arial",20))
  239. self.quesbtn3.config(font=("Arial",20))
  240. self.quesbtn4.config(font=("Arial",20))
  241.  
  242.  
  243. def _ques_btn_1(self):
  244. quit()
  245.  
  246. def _ques_btn_2(self):
  247. quit()
  248.  
  249. def _ques_btn_3(self):
  250. quit()
  251.  
  252. def _ques_btn_4(self):
  253. score =+ 1
  254. print (score)
  255. self.master.destroy()
  256.  
  257. def dbconnection():
  258. conn= connect("scores.db")
  259. cur = conn.cursor()
  260. return conn, cur
  261.  
  262. conn, cur = dbconnection()
  263. ques = cur.execute("SELECT question FROM Questions where topic = 1").fetchall()[0][0]
  264. ans1 = cur.execute("SELECT answer1 FROM Questions where topic = 1").fetchall()[0][0]
  265. ans2 = cur.execute("SELECT answer2 FROM Questions where topic = 1").fetchall()[0][0]
  266. ans3 = cur.execute("SELECT answer3 FROM Questions where topic = 1").fetchall()[0][0]
  267. ans4 = cur.execute("SELECT answer4 FROM Questions where topic = 1").fetchall()[0][0]
  268.  
  269.  
  270.  
  271.  
  272. #create sprite group
  273. all_sprites = pygame.sprite.Group()
  274. player = Player()
  275. mobs = pygame.sprite.Group()
  276. bullets = pygame.sprite.Group()
  277. for i in range(1):
  278. m = Mob()
  279. all_sprites.add(m)
  280. mobs.add(m)
  281.  
  282. for i in range(1):
  283. m = Mob2()
  284. all_sprites.add(m)
  285. mobs.add(m)
  286.  
  287. for i in range(1):
  288. m = Mob3()
  289. all_sprites.add(m)
  290. mobs.add(m)
  291.  
  292.  
  293. all_sprites.add(player)
  294.  
  295.  
  296. score = 0
  297. runQ = False
  298. #Game loop
  299. running = True
  300. while running:
  301. clock.tick(FPS)
  302. #process input (events)
  303. for event in pygame.event.get():
  304. if event.type == pygame.QUIT:
  305. running= False
  306.  
  307. elif event.type == pygame.KEYDOWN:
  308. if event.key == pygame.K_SPACE:
  309. player.shoot()
  310.  
  311. elif event.type == fifteen:
  312. if timerRunning:
  313. timer += 1
  314.  
  315. if timer > 15:
  316. timer = 0
  317.  
  318.  
  319.  
  320. screen.blit(background_image, [0,0])
  321. all_sprites.draw(screen)
  322. pygame.display.flip()
  323.  
  324.  
  325. #update
  326. all_sprites.update()
  327. hits = pygame.sprite.groupcollide(mobs,bullets,True,True)
  328. if timer == 5:
  329. root = Tk()
  330. lf = Questions(root)
  331. root.mainloop()
  332. timerRunning = False
  333. #respawn mobs
  334. for hits in hits:
  335. if hits.mob == "mob":
  336. if timerRunning == False:
  337. timer = 0
  338. timerRunning = True
  339. m = Mob()
  340. all_sprites.add(m)
  341. mobs.add(m)
  342. elif hits.mob == "mob2":
  343. m = Mob2()
  344. all_sprites.add(m)
  345. mobs.add(m)
  346. elif hits.mob == "mob3":
  347. m = Mob3()
  348. all_sprites.add(m)
  349. mobs.add(m)
  350.  
  351.  
  352. hits = pygame.sprite.spritecollide(player,mobs,True)
  353. if hits:
  354. new_mob()
  355.  
  356.  
  357. all_sprites.add(player)
  358.  
  359.  
  360.  
  361. background_image = pygame.image.load("background.jpg")
  362. print (score)
  363.  
  364. pygame.quit()
  365.  
  366.  
  367.  
  368. root = Tk()
  369. lf = SaveFrame(root)
  370. root.mainloop()
Add Comment
Please, Sign In to add comment