当前位置: 首页>>代码示例>>Python>>正文


Python Renderer.handleEvents方法代码示例

本文整理汇总了Python中renderer.Renderer.handleEvents方法的典型用法代码示例。如果您正苦于以下问题:Python Renderer.handleEvents方法的具体用法?Python Renderer.handleEvents怎么用?Python Renderer.handleEvents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在renderer.Renderer的用法示例。


在下文中一共展示了Renderer.handleEvents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: main

# 需要导入模块: from renderer import Renderer [as 别名]
# 或者: from renderer.Renderer import handleEvents [as 别名]
def main():
    _map = Map(W, H, NUM_CLUSTERS_PER_DIM)

    drawClusters = False
    drawGraph = False
    players = []
    activePlayer = -1

    if usePygame:
        _inputHandler = InputHandler(SCREEN_WIDTH, SCREEN_HEIGHT, W, H)
        _renderer = Renderer(SCREEN_WIDTH, SCREEN_HEIGHT)

    done = False
    running = True # Responsible for deciding if we are updating the position of the players

    while not done:

        ###################
        if usePygame:

            done = _renderer.handleEvents()

            if _inputHandler.getKeyPressed(K_c):
                drawClusters = not drawClusters

            if _inputHandler.getKeyPressed(K_g):
                drawGraph = not drawGraph

            if _inputHandler.getKeyPressed(K_r):
                edgesToRemove = []
                nodesToRemove = []
                for node in _map.graph.nodes:
                    # Cheat to remove all nodes.
                    tester = False
                    for id in node.affectedPlayers:
                        if id == ALL_PLAYERS:
                            tester = True
                    if not tester:
                        for edge in _map.graph.edges:
                            if edge.i1 == node or edge.i2 == node:
                                edgesToRemove.append(edge)
                                nodesToRemove.append(node)
                for edge in edgesToRemove:
                    try:
                        _map.graph.edges.remove(edge)
                    except ValueError:
                        pass
                for node in nodesToRemove:
                    try:
                        _map.graph.nodes.remove(node)
                    except ValueError:
                        pass
                players = []
                activePlayer = -1

            if _inputHandler.getKeyPressed(K_t):
                if activePlayer >= 0:
                    player = players[activePlayer]
                    if player.goal != None:
                        _map.removeInGraph(player, player.goal.position)
                    _map.removeInGraph(player, player.start.position)

                    players.pop(activePlayer)
                    activePlayer = activePlayer - 1

            if _inputHandler.getMousePressed(LEFT_MOUSE_BUTTON, True):
                mousePosition = _inputHandler.getMousePosition(_map)

                if (_map.isPositionValid(mousePosition) and
                    _map[mousePosition.x, mousePosition.y] != WALL):

                    cid = _map.convertMapv2ClusterId(mousePosition)
                    playerId = len(players)
                    activePlayer = playerId
                    player = Player(mousePosition, cid, playerId)
                    players.append(player)

                    _map.addAndConnectNodeToGraph(player.start)

                    print("Added player" + str(playerId))
                else:
                    print("Cant add player on " + str(mousePosition) + " " +
                          str(_map.isPositionValid(mousePosition)) + " " + str(_map[mousePosition.x, mousePosition.y] != WALL))

            if activePlayer != -1:
                if _inputHandler.getKeyPressed(K_n):
                    activePlayer = (activePlayer + 1) % len(players)


                if _inputHandler.getMousePressed(LEFT_MOUSE_BUTTON):
                    mousePosition = _inputHandler.getMousePosition(_map)
                    if (_map.isPositionValid(mousePosition) and
                                                       _map[mousePosition.x, mousePosition.y] != WALL):

                        if player.start is not None:
                            _map.removeAllRef(players[activePlayer])
                            cid = _map.convertMapv2ClusterId(mousePosition)
                            players[activePlayer].updateStart(mousePosition, cid)
                            _map.addAndConnectNodeToGraph(players[activePlayer].start)
                            
#.........这里部分代码省略.........
开发者ID:andva,项目名称:pather,代码行数:103,代码来源:main.py


注:本文中的renderer.Renderer.handleEvents方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。