diff options
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 271 |
1 files changed, 0 insertions, 271 deletions
diff --git a/test.py b/test.py deleted file mode 100644 index 8605de8..0000000 --- a/test.py +++ /dev/null @@ -1,271 +0,0 @@ -from agarnet.agarnet import client -from agarnet.agarnet import utils -import pygame -from pygame import gfxdraw -from pygame.locals import * -import sys -import math -import time - -global font_fallback -font_fallback = False -try: - from pygame import freetype -except: - font_fallback = True - -screensize = (0,0) -zoom = 0.74 -logging = False - -global movement -movement = True -clock = pygame.time.Clock() - -def log(string): - if logging: - print(string) - -class MeinSubskribierer: - def on_connect_error(self,s): - log("on conn err"+s) - - def on_sock_open(self): - log("on sock open") - - def on_sock_closed(self): - log("on sock closed") - - def on_message_error(self,s): - log("on msg err "+s) - - def on_ingame(self): - log("we're ingame :)") - - def on_world_update_pre(self): - log("updatepre") - - def on_cell_eaten(self,eater_id, eaten_id): - log("%s ate %s" % (eater_id, eaten_id)) - - def on_death(self): - log("we died :(") - - def on_cell_removed(self,cid): - log("cell removed") - - def on_cell_info(self,cid, x,y, size, name, color, is_virus, is_agitated): - log("cell info") - - def on_world_update_post(self): - log("updatepost") - - def on_leaderboard_names(self,leaderboard): - #OAR WINDOWS - if sys.platform != "win32": - log("leaderboard names") - log(leaderboard) - - def on_leaderboard_groups(self,angles): - log("leaderboard groups") - - def on_respawn(self): - log("respawned") - - def on_own_id(self,cid): - log("my id is %i" % cid) - - def on_world_rect(self,left,top,right,bottom): - log("worldrect %i,%i,%i,%i"%(left,top,right,bottom)) - - def on_spectate_update(self,pos, scale): - log("spect update") - - def on_experience_info(self,level, current_xp, next_xp): - log("exper info") - - def on_clear_cells(self): - log("clear cells") - - def on_debug_line(self,x,y): - log("debug line") - -def calc_zoom(): - zoom1 = screensize[0] / 2051. - zoom2 = screensize[1] / 1216. - return max(zoom1,zoom2) - -def world_to_win_length(l): - return int(l*zoom) - -def win_to_world_length(l): - return int(l/zoom) - -def world_to_win_pt(pt,center): - return (int((pt[0]-center[0])*zoom + screensize[0]/2), int((pt[1]-center[1])*zoom + screensize[1]/2)) - -def win_to_world_pt(pt,center): - return (int((pt[0]-screensize[0]/2)/zoom+center[0]), int((pt[1]-screensize[1]/2)/zoom+center[1])) - -def generateVirus(spikes, spike_length, radius, global_coords): - step = (2*math.pi) / (spikes*2) - points = [] - - for i in range(spikes*2): - if i%2 == 0: - t = ( - int(math.sin(i*step)*radius+global_coords[0]), - int(math.cos(i*step)*radius+global_coords[1]) - ) - else: - t = ( - int(math.sin(i*step)*(radius-spike_length)+global_coords[0]), - int(math.cos(i*step)*(radius-spike_length)+global_coords[1]) - ) - points.append(t); - return points - -def initializeFont(): - if font_fallback: - pygame.font.init() - else: - pygame.freetype.init() - -def drawText(text, color, font_size): - initializeFont() - - if font_fallback: - font = pygame.font.SysFont(pygame.font.get_default_font(), font_size) - output = font.render(text, 1, color) - return output - else: - font = pygame.freetype.SysFont(pygame.freetype.get_default_font(), font_size) - output = font.render(text, color) - return output[0] - -def drawCell(cell): - cx,cy = world_to_win_pt(cell.pos,c.player.center) - radius = world_to_win_length(cell.size) - - if cell.is_virus: - color = (0,255,0) - color2 = (100,255,0) - polygon = generateVirus(int(cell.size*0.3), 10*zoom, radius, (cx, cy)) - - gfxdraw.filled_polygon(screen, polygon, color2) - gfxdraw.aapolygon(screen, polygon, color) - gfxdraw.polygon(screen, polygon, color) - else: - color=(int(cell.color[0]*255), int(cell.color[1]*255), int(cell.color[2]*255)) - - if not (cell.is_ejected_mass or cell.is_food): - gfxdraw.filled_circle(screen, cx, cy, radius, color) - gfxdraw.aacircle(screen, cx, cy, radius, (0,0,0)) - - gfxdraw.aacircle(screen, cx, cy, int(radius/2), (255,255,255)) - gfxdraw.circle(screen, cx, cy, int(radius/2), (255,255,255)) - - font_size = 16 - - surface = drawText(cell.name, (0, 0, 0), font_size) - screen.blit(surface, (cx - (surface.get_width()/2), cy + radius + 5)) - - surface = drawText(str(int(cell.mass)), (255, 255, 255), font_size) - screen.blit(surface, (cx - (surface.get_width()/2), cy - (surface.get_height()/2))) - else: - gfxdraw.aacircle(screen, cx, cy, radius, color) - gfxdraw.filled_circle(screen, cx, cy, radius, color) -def draw_leaderboard(): - def filter(item): return item[1] - leaderboard = list(map(filter, c.world.leaderboard_names)) - next_y = 5 - font_size = 16 - - for i, s in zip(range(1, len(leaderboard)+1), leaderboard): - surface = drawText((str(i) + ": " +s), (0, 0, 0), font_size) - screen.blit(surface, (5, next_y)) - next_y += surface.get_height()+5 - -def draw_world_borders(): - top = int((c.world.top_left[0] - c.player.center[1])*zoom + screensize[1]/2) - left = int((c.world.top_left[1] - c.player.center[0])*zoom + screensize[0]/2) - bottom = int((c.world.bottom_right[0] - c.player.center[1])*zoom + screensize[1]/2) - right = int((c.world.bottom_right[1] - c.player.center[0])*zoom + screensize[0]/2) - - if (top >= 0): gfxdraw.hline(screen, 0, screensize[0], top, (0,0,0)) - if (bottom <= screensize[1]): gfxdraw.hline(screen, 0, screensize[0], bottom, (0,0,0)) - if (left >= 0): gfxdraw.vline(screen, left, 0, screensize[1], (0,0,0)) - if (right <= screensize[0]): gfxdraw.vline(screen, right, 0, screensize[1], (0,0,0)) - -sub = MeinSubskribierer() -c = client.Client(sub) - -try: - token = sys.argv[1] - addr, *_ = utils.get_party_address(token) -except: - addr, token, *_ = utils.find_server() - -c.connect(addr,token) -c.send_facebook( - 'g2gDYQFtAAAAEKO6L3c8C8/eXtbtbVJDGU5tAAAAUvOo7JuWAVSczT5Aj0eo0CvpeU8ijGzKy/gXBVCxhP5UO+ERH0jWjAo9bU1V7dU0GmwFr+SnzqWohx3qvG8Fg8RHlL17/y9ifVWpYUdweuODb9c=') -print(c.is_connected) -print(c.send_spectate()) - -c.player.nick="test cell pls ignore" -c.send_spectate() - -screensize=(800,600) -screen=pygame.display.set_mode(screensize,HWSURFACE|DOUBLEBUF|RESIZABLE) -zoom = calc_zoom() - -while True: - pygame.event.pump() - clock.tick() - c.on_message() - - - screen.fill((255,255,255)) - draw_world_borders() - - for cell in c.world.cells.values(): - drawCell(cell) - - draw_leaderboard() - - total_mass = 0 - for cell in c.player.own_cells: - total_mass += cell.mass - - pygame.display.set_caption("Agar.io: " + str(c.player.nick) + " - " + str(int(total_mass)) + " Total Mass - " + str(int(clock.get_fps())) + (" FPS - MOVEMENT LOCKED" if not movement else " FPS")) - - events = pygame.event.get() - for event in events: - if event.type == VIDEORESIZE: - screensize = event.dict['size'] - screen=pygame.display.set_mode(screensize, HWSURFACE|DOUBLEBUF|RESIZABLE) - zoom = calc_zoom() - pygame.display.update() - if event.type == QUIT: - pygame.display.quit() - if event.type == KEYDOWN: - if event.key == K_r: - c.send_respawn() - if event.key == K_s: - movement = not movement - if event.key == K_w: - c.send_shoot() - if event.key == K_SPACE: - c.send_split() - if event.key == K_ESCAPE: - pygame.quit() - if event.type == MOUSEBUTTONDOWN: - if event.button == 1: - c.send_split() - if event.button == 3: - c.send_shoot() - if event.type == MOUSEMOTION: - if movement: - c.send_target(*win_to_world_pt(event.pos, c.player.center)) - - pygame.display.update() |