Forum Archive

How to create an inverted texture of scene.SpriteNode ?

[deleted]

I have a scene.SpriteNode object with the plf:Tile_Spikes texture. I put it at the top of the scene so I want to make the spikes face downwards. How can I do it ?

Screenshot: https://imgur.com/snJXH8Z

The part of the code which creates spikes:

class Game(scene.Scene):

    def make_spikes(self):
        x = 0
        while True:
            if x >= self.size.height:
                break
            spike = scene.SpriteNode('plf:Tile_Spikes', position=(x, self.size.height))
            self.add_child(spike)
            self.spikes.append(spike)
            x += 64
cvp

@a1ph4b3ta is that ok?

            from math import pi
            spike.rotation = pi
cvp

@a1ph4b3ta due to rotation you have to decrease y, I have tried with

            spike = scene.SpriteNode('plf:Tile_Spikes', position=(x, self.size.height-50))
[deleted]

@cvp It works now. Thanks a lot!

JonB

@cvp I suspect anchor_point would solve the offset issue...

cvp

@JonB I agree but I only wanted to show how to rotate

cvp

@a1ph4b3ta as adviced by @JonB

import scene
from math import pi
class Game(scene.Scene):
    def setup(self):
        x = 0
        while True:
            if x >= self.size.height:
                break
            spike = scene.SpriteNode('plf:Tile_Spikes', position=(x, self.size.height))
            spike.anchor_point = (0.5,-1.0)
            spike.rotation = pi
            self.add_child(spike)
            #self.spikes.append(spike)
            x += 64
scene.run(Game())