Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #RickTheRocket
- #Team RagTag's MHV Project
- ###IMPORTS###
- from pygame import *
- #Pygame
- from math import *
- #Math
- from random import *
- #Random
- from rocket import *
- #Rocket
- from tkinter import *
- #Tkinter
- import gspread
- from oauth2client.service_account import ServiceAccountCredentials
- #############
- name=str()
- def getval():
- global name
- name=e1.get()
- master.quit()
- master = Tk()
- Label(master, text = "Name").grid(row = 0)
- e1 = Entry(master)
- e1.grid(row = 0, column = 1)
- Button(master, text = 'Enter your name', command = getval).grid(row = 1, column = 1, sticky = W, pady = 4)
- mainloop()
- levels = []
- with open("levels.txt", "r") as file:
- lines = file.read().splitlines()
- level = []
- for line in lines:
- if line.count("#") == 0:
- level.append(line)
- else:
- levels.append(level)
- level = []
- ###INITIALIZING###
- init()
- size=(1000,700)
- screen=display.set_mode(size)
- fps=time.Clock()
- font = font.SysFont("GiantRobotArmy Medium", 65)
- display.set_caption("Rick The Rocket")
- CHARRAD = 22
- GRAVITY = 0.38
- sprite = transform.scale(image.load("main1.png"), (40,40))
- background = image.load("resizedBack.jpg")
- level = 1
- runningScore = 0
- ##################
- def rot_center(image, angle):
- """rotate an image while keeping its center and size"""
- orig_rect = image.get_rect()
- rot_image = transform.rotate(image, angle)
- rot_rect = orig_rect.copy()
- rot_rect.center = rot_image.get_rect().center
- rot_image = rot_image.subsurface(rot_rect).copy()
- return rot_image
- def game(level):
- global runningScore
- t = 0
- running = True
- fps = time.Clock()
- rick = Rocket()
- floors = levels[level - 1]
- buttonVals = floors[-1]
- floors.remove(floors[-1])
- walls = []
- for l in range(len(floors)):
- for i in range(10):
- layer = floors[l][i]
- if layer == "L":
- rick.setPos((i + 1) * 100 - 75, (l + 1) * 100 - 300)
- if layer == "G":
- flag = Rect(i * 100, l * 100 - 300, 100, 100)
- if layer == "@":
- walls.append(Rect(i * 100, l * 100 - 300, 100, 100))
- while running:
- for evnt in event.get():
- if evnt.type == QUIT:
- return "quit"
- elif evnt.type == KEYDOWN:
- if evnt.key == K_SPACE:
- rick.jump()
- screen.blit(background,(0,-300))
- keys = key.get_pressed()
- if keys[K_LEFT]:
- rick.rotL()
- elif keys[K_RIGHT]:
- rick.rotR()
- rick.xPos += rick.xSpeed
- rick.yPos += rick.ySpeed
- if rick.yPos >= 700 - CHARRAD:
- rick.onGround = True
- rick.ySpeed = 0
- rick.yPos = 700 - CHARRAD
- if rick.onGround:
- rick.refreshJumps()
- rick.xSpeed = 0
- rick.ySpeed = 0
- else:
- rick.ySpeed += GRAVITY
- screen.blit(background,(0,-300))
- ###########################
- #Hitbox
- draw.circle(screen, (0,0,0), (int(rick.xPos), int(rick.yPos)), 22, 1)
- #Points of arc
- draw.circle(screen,(255,0,0),(int(rick.xPos + (22 * cos(rick.ang1))), int(rick.yPos - (22 * sin(rick.ang1)))), 3, 0)
- draw.circle(screen,(255,0,0),(int(rick.xPos + (22 * cos(rick.ang2))), int(rick.yPos - (22 * sin(rick.ang2)))), 3, 0)
- for r in walls:
- draw.rect(screen, (255, 0, 0), r)
- draw.rect(screen, (255, 255, 255), flag)
- #Sprite
- screen.blit(rot_center(sprite, degrees(rick.angle)), (rick.xPos - 20, rick.yPos - 22))
- fps.tick(80)
- display.flip()
- t += 1
- if flag.collidepoint(rick.xPos, rick.yPos):
- runningScore += 10000 - t
- return "game"
- def highScore():
- global name, runningScore
- scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
- creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
- client = gspread.authorize(creds)
- # Find a workbook by name and open the first sheet
- # Make sure you use the right name here.
- sheet = client.open("HighScore").sheet1
- allScores = sheet.get_all_values()
- allScores.remove(allScores[0])
- row = [str(name), runningScore]
- sheet.insert_row(row , len(allScores) + 2)
- allScores = sheet.get_all_values()
- allScores.remove(allScores[0])
- nameList = []
- scoreList = []
- newList = [["Name", "Score"]]
- for i in range (len(allScores)):
- nameList.append(allScores[i][0])
- scoreList.append(int(allScores[i][1]))
- scoreList.sort(reverse = True)
- for num in scoreList:
- pos = 0
- for s in allScores:
- if str(num) in s:
- pos = allScores.index(s)
- newList.append(allScores[pos])
- allScores.remove(allScores[pos])
- allScores = newList
- for i in range(len(allScores)):
- for j in range(2):
- sheet.update_cell(i + 1, j + 1, allScores[i][j])
- page = "game"
- while page != "quit":
- if page == "game":
- page = game(level)
- if page == "game":
- if level < 6:
- level += 1
- if level == 6:
- page = "highScore"
- if page == "highScore":
- highScore()
- page = "quit"
- quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement