def __init__(self, app, launched_by, index, movespeed=1.5, scale=0.1, damage=10): self.app = app self.model = load_object("bullet", pos=Point2(0,0), depth=1, scale=10.0) self.launched_by = launched_by self.deleted = False self.damage = damage self.movespeed = movespeed self.np = app.render.attachNewNode("bullet_%d" % index) self.np.setHpr(self.launched_by.np.getHpr()) self.np.setScale(scale) rads = radians(self.launched_by.np.getHpr().x) self.movement = Vec3(cos(rads), sin(rads), 0) self.model.reparentTo(self.np) self.np.setPos(self.launched_by.np.getPos() + self.movement) self.movement = self.movement * self.movespeed self.cn = self.np.attachNewNode(CollisionNode('bullet_cn_%d' % index)) self.cs = CollisionSphere(self.model.getPos(), 1) self.cn.node().addSolid(self.cs) #self.cn.show() self.cn.node().setFromCollideMask(BitMask32(0x00)) self.cn.node().setIntoCollideMask(BitMask32(0x10))
def gen_background(self): bg_x = 50 bg_y = 50 tile_count = 20 backgrounds = [] self.bgnp = self.render.attachNewNode("bg") for i in range(-tile_count,tile_count): for j in range(-tile_count,tile_count): backgrounds.append(load_object("grass", pos = Point2(i*bg_x, j*bg_y), transparency = False, scale = 50)) for background in backgrounds: background.reparentTo(self.bgnp) self.bgnp.flattenStrong() return backgrounds