Guess from skimming your code: mouse.LEFT is just a pyglet-defined
constant. In your If statements, try replacing it with (button &
mouse.LEFT) (and the same for RIGHT).

- Bruce Smith

On Mon, Jul 6, 2020 at 2:50 PM Brandon Perry <[email protected]>
wrote:

> So I have my code do something different based on whether the user clicks
> with the left or right mouse button. However, I noticed that for some
> reason both print statements are running when I click on any mouse button.
> Any idea as to what might be causing this?
>
> Code snip:
> window.push_handlers(Objects.global_mouse_handler)
> ... #more code
>
> @window.event
> def on_mouse_press(x,y,button,modifiers):
>
>     if mouse.LEFT and Objects.game_obj.game_state == 'Map Editor':
>         Terrain.terrain_obj.map_editor_function(x,y)
>
>     #Run Dijskstra search
>     if mouse.LEFT and Objects.game_obj.game_state == 'Main':
>         print('left selected')
>         #if player is selected player, run djikstra
>         for player in [obj for obj in Objects.game_obj.game_objects if
>  obj.__class__ == Players.Player]:
>             if player.selected == True:
>
>
>                 player_cell = Terrain.terrain_obj.return_player_cell(player)
>
>                 destination_cell = 
> Terrain.terrain_obj.return_sprite_index(x,y)
>                 print('left click, player cell',player_cell)
>                 print('left click, destination cell',destination_cell)
>
>                 nav_list = 
> Terrain.terrain_obj.Dijkstra_algorithm(player_cell,destination_cell)
>
>
>                 nav_path = 
> Terrain.terrain_obj.return_list_cell_positions(nav_list)
>
>                 player.nav_path = nav_path
>                 player.navigation = True
>
>
>     #Select player
>     if mouse.RIGHT and Objects.game_obj.game_state == 'Main':
>         print('right selected')
>
> #Runs through players and makes player.selected = True if within mouse 
> coordinates
>         for player in [obj for obj in Objects.game_obj.game_objects if
>  obj.__class__ == Players.Player]:
>             player_coord = player.sprite.position
>             half_width = player.sprite.width//2
>             half_height = player.sprite.height//2
>             if (x >= player_coord[0] - half_width and x <= player_coord[0
> ] + half_width) and \
>                 (y >= player_coord[1] - half_height and y <= player_coord[
> 1] + half_height):
>                 player.selected = True
>                 print('right click player name', player.name, ' selected')
>
>                 #highlights which cells the selected player can move to
>
>                 available_cells = 
> Terrain.terrain_obj.move_distance_calc(player)
>                 for cell in available_cells:
>                     Terrain.terrain_obj.terrain_dict[cell].terrain_type ==
> 'Black'
>                     #print('reached init cell loop')
>
>                     
> Terrain.terrain_obj.terrain_dict[cell].sprite=Terrain.terrain_obj.terrain_dict[cell].init_cell()
>             else:
>                 player.selected = False
>                 print('right click',player.name,' unselected')
>
> --###More code
>
> --
> You received this message because you are subscribed to the Google Groups
> "pyglet-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pyglet-users/a8be0640-ebd7-4f13-80a5-04678a0fc7b6o%40googlegroups.com
> <https://groups.google.com/d/msgid/pyglet-users/a8be0640-ebd7-4f13-80a5-04678a0fc7b6o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyglet-users/CAKTa%2BxW%3DpVAB6kxqZhVb93QpwM9U8VOiQq27bKAyg98TMTe%3Drw%40mail.gmail.com.

Reply via email to