def draw_text(text, center, color=white, size=30, bold=False, background=None, left=False): font = pygame.font.Font(font_path, size, bold=bold) if background: surface = font.render(text, True, color, background) else: surface = font.render(text, True, color) rect = surface.get_rect() rect.center = tuple(center) if left: rect.left = center[0] screen.blit(surface, rect) return rect
def draw_image(img, center): rect = img.get_rect() rect.center = tuple(center) screen.blit(img, rect)
if event.key != ord('s') and event.key < 128: data = 'mg' + chr(event.key) + suc(p) # print(data) if event.key == ord('s'): data = 'hod' + suc(p) sock2.send(data.encode()) correct_lense(time_pass) suf.blit(background, (0, 0)) # suf.fill([0,0,0]) for i in model_pool: i.draww(suf) pygame.transform.scale(suf, (200, 200), s_map) # print() screen.blit(suf, (x_dif, y_dif)) screen.blit(s_map, (0, 0)) # print(info) mid = config.scr_size[0] / 2 write_word('exp:%d' % info[4], mid, config.scr_size[1] - 85) write_word('%d' % info[2][0], mid, config.scr_size[1] - 60, color=(255, 150, 150)) write_word('/', mid + 40, config.scr_size[1] - 60) write_word('%d' % info[2][1], mid + 52, config.scr_size[1] - 60, color=(255, 150, 150))
elif event.type == KEYDOWN and event.key == K_r: run = True elif event.type == KEYUP and event.key == K_r: run = False elif event.type == KEYDOWN and event.key == K_t: dash = True elif event.type == KEYUP and event.key == K_t: dash = False elif event.type == KEYDOWN and event.key == K_s: pygame.image.save(real.img, \Desktop\world"+str(frame)+".png" ) screen.fill(Color('black')) real.update(dx, dy, run, dash) screen.blit(real.img, real.pos) # screen.blit(sams_health.img, sams_health.position) pygame.display.update()
def game(walls, floor, wall_1, wall_2, wall_3, wall_4, chest, gg_right, gg_left, gg_sprite, gg_stop_r, gg_stop_l, lvl, el=None, gerl=None, npc=None, npc_boss=None): move_right = False move_left = False move_up = False move_down = False text1 = False text4 = False text11 = False text21 = False direction = 2 enter_press = False f_press = False n_press = False running = True while running: screen.fill(pygame.Color("black")) gg_stop_l.rect = gg_sprite.rect for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN and (event.key == pygame.K_LEFT or event.key == pygame.K_a): move_left = True direction = 1 gg_sprite.frames = gg_left.frames if event.type == pygame.KEYUP and (event.key == pygame.K_LEFT or event.key == pygame.K_a): move_left = False if event.type == pygame.KEYDOWN and (event.key == pygame.K_RIGHT or event.key == pygame.K_d): move_right = True direction = 2 gg_sprite.frames = gg_right.frames if event.type == pygame.KEYUP and (event.key == pygame.K_RIGHT or event.key == pygame.K_d): move_right = False if event.type == pygame.KEYDOWN and (event.key == pygame.K_UP or event.key == pygame.K_w): move_up = True if direction == 1: gg_sprite.frames = gg_left.frames elif direction == 2: gg_sprite.frames = gg_right.frames if event.type == pygame.KEYUP and (event.key == pygame.K_UP or event.key == pygame.K_w): move_up = False if event.type == pygame.KEYDOWN and (event.key == pygame.K_DOWN or event.key == pygame.K_s): move_down = True if direction == 1: gg_sprite.frames = gg_left.frames elif direction == 2: gg_sprite.frames = gg_right.frames if event.type == pygame.KEYUP and (event.key == pygame.K_DOWN or event.key == pygame.K_s): move_down = False if event.type == pygame.KEYUP and event.key == pygame.K_n: if n_press: if lvl == 'lvl1': if not text4: sprites_note.add(scroll_npc) text4 = True else: sprites_note.remove(scroll_npc) text4 = False return else: if not text21: sprites_note.add(scroll_npc2) text21 = True else: sprites_note.remove(scroll_npc2) text21 = False return if event.type == pygame.KEYUP and event.key == pygame.K_f: if f_press: if lvl == 'lvl1': if not text1: sprites_note.add(scroll) text1 = True else: sprites_note.remove(scroll) text1 = False else: if not text11: sprites_note.add(scroll2) text11 = True else: sprites_note.remove(scroll2) text11 = False if event.type == pygame.KEYUP and event.key == pygame.K_e: if enter_press: fighting() win() running = False if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: screen_start(lvl, floor, wall_1, wall_2, wall_3, wall_4, chest, gg_left, gg_sprite, el, gerl, npc, npc_boss) camera.update(gg_sprite, width, height) for sprite in all_sprites: camera.apply(sprite) if not text1 and not text11 and not text4 and not text21: if move_left: gg_sprite.rect.x -= s if move_right: gg_sprite.rect.x += s if move_down: gg_sprite.rect.y += s if move_up: gg_sprite.rect.y -= s if not move_right and not move_up and not move_left and not move_down: if direction == 1: gg_sprite.frames = gg_stop_l.frames elif direction == 2: gg_sprite.frames = gg_stop_r.frames for wall in walls: if pygame.sprite.collide_mask(gg_stop_l, wall): if move_up: gg_sprite.rect.y += s if move_down: gg_sprite.rect.y -= s if move_right: gg_sprite.rect.x -= s if move_left: gg_sprite.rect.x += s all_sprites.draw(screen) all_sprites.update() clock.tick(150) f_press = False if lvl != 'lvl3': if pygame.sprite.collide_rect(gg_stop_l, npc): screen.blit(text2, (350, 600)) n_press = True if lvl == 'lvl3': if pygame.sprite.collide_rect(gg_stop_l, npc_boss): screen.blit(text5, (350, 600)) enter_press = True if pygame.sprite.collide_rect(gg_stop_l, chest): screen.blit(text3, (350, 600)) f_press = True if text1: sprites_note.draw(screen) scroll.read() if text11: sprites_note.draw(screen) scroll2.read() if text21: sprites_note.draw(screen) scroll_npc2.read() if text4: sprites_note.draw(screen) scroll_npc.read() pygame.display.update() pygame.display.flip() save(lvl, floor, wall_1, wall_2, wall_3, wall_4, chest, gg_left, gg_sprite, el, gerl, npc, npc_boss) pygame.quit()
def main(): # load the icon to display up on the top left icon, icon_rect = load.image('cursor.bmp', WHITE) pygame.display.set_icon(icon) # pretty background background = pygame.Surface(screen.get_size()) background.fill(WHITE) screen.blit(background, (0, 0)) pygame.display.update() # construct some test game objects test1 = entities.Item('button_unpressed_green-240x60.bmp', grid_size) test2 = entities.Item('menu.bmp', grid_size) test3 = entities.Item('button_unpressed_red-52x60.bmp', grid_size) items = pygame.sprite.RenderUpdates((test1, test2, test3)) for i in xrange(25): thing = entities.Item('button_unpressed_red-52x60.bmp', grid_size) items.add(thing) posdisplays = pygame.sprite.RenderUpdates() selections = pygame.sprite.RenderUpdates() clock = pygame.time.Clock() # dirty rects dirtyitems = [] dirtyselections = [] dirtypos = [] dirtystats = [] # FPS info fps = entities.TextFPS(clock, 24, BLACK) # dragbox selectbox = None # delays nudge_delay = 0 # main loop while True: clock.tick(60) # =============================================================== # ------------------------- HOLDED KEYS ------------------------- # =============================================================== if selections.sprites(): if not nudge_delay: keys = pygame.key.get_pressed() result = [] # ====================== MOVEMENTZ ====================== if keys[K_LEFT] or keys[K_a]: result.append('left') if keys[K_RIGHT] or keys[K_d]: result.append('right') if keys[K_UP] or keys[K_w]: result.append('up') if keys[K_DOWN] or keys[K_s]: result.append('down') for item in selections.sprites(): item.ref.nudge = result nudge_delay = 3 else: nudge_delay -= 1 for e in pygame.event.get(): # =========================================================== # -------------------- MOUSE BUTTON DOWN -------------------- # =========================================================== if e.type == MOUSEBUTTONDOWN: nudge_delay = 3 # ==================== LEFT CLICK =================== if e.button == 1: keys = pygame.key.get_pressed() ctrl = False no_select = True pos = pygame.mouse.get_pos() if keys[K_LCTRL]: ctrl = True for item in reversed(items.sprites()): if item.rect.collidepoint(pos): load.selectbot(selections, posdisplays, item, ctrl) no_select = False break if no_select: selectbox = entities.SelectBox() # =================== RIGHT CLICK =================== if e.button == 3: while True: result = menu.right_click(['test', 'PIE']) if not result: break # =========================================================== # --------------------- MOUSE BUTTON UP --------------------- # =========================================================== elif e.type == MOUSEBUTTONUP: for item in selections.sprites(): item.ref.ungrab() if selectbox: keys = pygame.key.get_pressed() ctrl = False result = [] for item in items.sprites(): if selectbox.rect.colliderect(item.rect): result.append(item) screen.blit(background, selectbox.rect, selectbox.rect) selectbox = None if keys[K_LCTRL]: ctrl = True load.selectbot(selections, posdisplays, result, ctrl) # =========================================================== # ------------------------- KEY DOWN ------------------------ # =========================================================== elif e.type == KEYDOWN: # ====================== DELETE ===================== if e.key == K_DELETE: for item in selections.sprites(): item.ref.kill() selections.empty() posdisplays.empty() # ====================== ESCAPE ===================== elif e.key == K_ESCAPE: pygame.quit() sys.exit() # =========================================================== # --------------------------- QUIT -------------------------- # =========================================================== elif e.type == QUIT: pygame.quit() sys.exit() # clear necessary wizzles items.clear(screen, background) posdisplays.clear(screen, background) screen.blit(background, fps.rect, fps.rect) if selectbox: dirtystats = [selectbox.rect, None] screen.blit(background, selectbox.rect, selectbox.rect) items.update() posdisplays.update() selections.update() fps.update() dirtyitems = items.draw(screen) dirtyselections = selections.draw(screen) dirtypos = posdisplays.draw(screen) screen.blit(fps.image, fps.rect) if selectbox: selectbox.update() dirtystats[1] = selectbox.rect screen.blit(selectbox.image, selectbox.rect) # update pygame.display.update(dirtyitems) pygame.display.update(dirtypos) pygame.display.update(dirtyselections) pygame.display.update(dirtystats)