【问题标题】:Dungeon Crawl - Map地牢爬行 - 地图
【发布时间】:2018-07-03 14:06:01
【问题描述】:

网络上的许多教程指导我如何创建具有不同大小房间等的随机生成的地图。我不想要这个,我想要一个 Isaac 风格地图的绑定,其中每个房间的大小相同并且是唯一的屏幕上的东西。

因此,我试图找到一种方法来生成地图,其中从房间池中随机选择的一组 8-10 个房间被挑选出来并组合在一起以创建地图。

我试过这样做,但还没有成功。这是我用来尝试让事情变得随机的代码

def main():

rooms = []

room = Room1()
rooms.append(room)

room = Room2()
rooms.append(room)

room = Room3()
rooms.append(room)

room = Room4()
rooms.append(room)

current_room_no = random.randint(0, 2)
current_room = rooms[current_room_no]




# Game Logic

player.move(current_room.wall_list)

if player.rect.x < -15:
    if current_room_no == 0:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    elif current_room_no == 3:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    elif current_room_no == 2:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 790

if player.rect.x > 801:
    if current_room_no == 0:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    elif current_room_no == 1:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    elif current_room_no == 2:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 0

如果需要更多代码,请告诉我!

【问题讨论】:

  • 从您的代码中不太清楚您正在尝试做什么确切,因为您已经排除了 Room1 等功能的许多代码。此外,如果您遇到特定问题,通常会使用 StackOverflow,而不仅仅是想知道该去哪里。在尝试自己的项目之前,尽可能密切关注教程是个好主意,确保您了解所有内容。如果您想继续 - 请记住这将很难完成 - 请继续直到遇到特定问题,您可以追踪到代码的一小部分,然后询问。
  • 别担心!从现在开始我一定要这样做。

标签: python dictionary random pygame


【解决方案1】:

希望我能在你的游戏中再次发挥作用。 有一个特定的函数可以获取一组数字并根据需要获取尽可能多的数字。假设您希望它选择两个具有六个值的数字。首先你必须import random 然后你必须random.sample(set([1, 2, 3, 4, 5, 6]), 2)。这将选择 1 到 6 之间的两个值。你可以在你的游戏中做同样的事情,切换变量的数字。每个房间的。您可以将它们作为数字,但数字 1 可以是 Room1 等等。

希望这会有所帮助!

【讨论】:

  • 哦,谢谢!我肯定会搞砸的,看看我能做到什么。再次感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多