我开发了一个程序,按程序生成一个带迷宫的地牢:
entities = {}
dungeonSize = 8
currentDungeon = (randint(0,dungeonSize-1),randint(0,dungeonSize-1))
lOR = 16 # Level of Randomness.
def gD(): # Generate Dungeon
for i in range(dungeonSize):
for j in range(dungeonSize):
entities[(j,i)] = {}
for dungeon in entities:
r = randint(0,lOR)
for k in range(16):
for l in range(16):
if randint(0,lOR*2) == 0:
for m in range(r):
entities[dungeon][((((l+m)*brickWidth),(k*brickHeight)))] = {"source":"brick.jpg",
"info":["dungeon wall",u"parede da masmorra"]}
elif randint(0,lOR*2) == 1:
for m in range(r):
entities[dungeon][(((l*brickWidth),(k+m)*brickHeight))] = {"source":"brick.jpg",
"info":["dungeon wall",u"parede da masmorra"]}
碰巧我需要在每一帧(每一块地和每一堵墙)绘制当前屏幕/迷宫。在这种情况下,为了节省一些内存,跟踪已更改的磁贴或类似的内容也非常复杂。你知道吗
以下是主循环的绘制过程:
def dCD(): # Draw Current Dungeon
for wall in entities[currentDungeon]:
gIS("GFX",entities[currentDungeon][wall]["source"],wall[0],wall[1])
地面也绘制在每一帧(我不能使用一个图像,因为我将创建随机类型的瓷砖)。你知道吗
def fWG(): # Fill with Ground
for i in range(16):
for j in range(16):
gIS("GFX",ground,j*brickWidth,i*brickHeight)
有没有办法在Pygame中“释放一个曲面”,或者无论如何,将所有这些曲面blit并拥有20+FPS?(我现在有8帧。真是太落伍了。如果没有,你有什么建议?用C写游戏,想一个更聪明的算法来神奇地替换,擦除和重新利用每一帧的瓦片?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐