def __init__(self, name): NodePath.__init__(self, name) self.cm = CardMaker(name) self.cm.setFrame(-0.5, 0.5, -0.5, 0.5) self._Flag__model = NodePath(self.cm.generate()) self._Flag__setBaseModelColor(Vec4(1)) self.assign(NodePath(GeomNode('flag'))) self.setTransparency(1) self.shapeNode = loader.loadModel('models/flags/flag_shape') self.bgNode = loader.loadModel('models/flags/flag_bg') self.emblemNode = loader.loadModel('models/flags/flag_emblem') self.guiNode = loader.loadModel('models/flags/flag_gui') self.dna = FlagDNA()
rot = rotation scl = scale corner = TransformState.makePos2d(Vec2(-0.5, -0.5)) xForm = TransformState.makePosRotateScale2d( pos, rot, Vec2(scl)).compose(corner) final = xForm.invertCompose(TransformState.makeIdentity()) np.setTexTransform(stage, final) def randomize(self, shape=False, bg=False, emblems=False): self.dna.randomize(shape, bg, emblems) self.activate() def flattenEmblemIndices(self): self.dna.flattenEmblemIndices() self.activate() if __name__ == '__main__': p = FlagDNA() p.setShapeStyle(0) p.setBackground(0, 1, 6, 5, 7, 0, 0) p.setLayout(0, 128, 128, 0, 2) p.setEmblem(0, 8, 4, 4, 0, 4) f = Flag('testflag') f.setDNAString(p.getDNAString()) f.reparentTo(render) print f print ` f ` base.mouseInterface.node().setPos(0, 3, 0) run()