0

pyglet を使用して横スクロール ゲームを作成しようとしていますが、背景、キャラクター、地形を描くことができました。(私はGUIのことはかなり初めてです)問題は、プレイヤーがキャラクターを動かすと、地形がそれ自体を生成することを意図している(テラリアのようなゲームのように)ことですが、スプライト。私がこれについてどうするかについて何か考えはありますか?私が自分自身を明確にしていない場合は、お気軽に質問してください:)

編集:私がこれまで行ってきたのは、次のような各地形の変数を作成することです:

ground_1 = pyglet.sprite.Sprite(ground1, x=-100, y=200, batch = terrain)
ground = pyglet.sprite.Sprite(ground1, 0, y=200, batch = terrain)
ground2 = pyglet.sprite.Sprite(ground1, x=100, y = 200, batch = terrain)
ground3 = pyglet.sprite.Sprite(ground1, x=200, y = 200, batch = terrain)
ground4 = pyglet.sprite.Sprite(ground1, x=300, y = 200, batch = terrain)
ground5 = pyglet.sprite.Sprite(ground1, x=400, y = 200, batch = terrain)
ground6 = pyglet.sprite.Sprite(ground1, x=500, y = 200, batch = terrain)
ground7 = pyglet.sprite.Sprite(ground1, x=600, y = 200, batch = terrain)
ground8 = pyglet.sprite.Sprite(ground1, x=700, y = 200, batch = terrain)
ground9 = pyglet.sprite.Sprite(ground1, x=800, y = 200, batch = terrain)
ground10 = pyglet.sprite.Sprite(ground1, x=900, y = 200, batch = terrain)

ブロックにツリーがあるかどうかを確認するためのクラスも作成しました。

class block():
    """ block """
    def __init__(self,image,tree,grass,destroyed):
        self.image = image
        self.tree = tree
        self.grass = grass
        self.destroyed = destroyed

newGround1 = block(newGround,tree[treeR],grass[grassR],destroyed[destroyedR])

groundO = block(ground_1,False,False,False)
groundO1 = block(ground,True,False,False)
groundO2 = block(ground2,False,False,False)
groundO3 = block(ground3,False,False,False)
groundO4 = block(ground4,False,False,False)
groundO5 = block(ground5,False,False,False)
groundO6 = block(ground6,False,False,False)
groundO7 = block(ground7,False,False,False)
groundO8 = block(ground8,False,False,False)
groundO9 = block(ground9,False,False,False)
groundO10 = block(ground10,False,False,False)

しかし、必要なすべての地形に対してground2、ground3、ground4 ...を作成する必要があるのか​​ 、それともそれを生成するより簡単な方法(おそらく無制限)があるのか​​ 疑問に思っていました

4

1 に答える 1

0

groundこれらすべてのオブジェクトを保存するのではなく、リストに保存できるはずです。

#pseudocode
grounds_list = []
for x in range(0, 100000, 100):
   ground = pyglet.sprite.Sprite(ground1, x, y=200, batch = terrain) #x gets passed in here
   groundO1 = block(ground,True,False,False)
   grounds_list.append(ground) #store the objects you want to keep

したがって、さらに多くのものを見つける必要がある場合は、この Grounds_list を反復処理しました。

于 2013-09-22T21:25:58.250 に答える