Ayuda porfavor con mi juego

quiero poner a mi juego lo siguiente
un menu con tres opciones
inicio
dificulta
tutorial
salir
en dificulta que pueda coger entre un nivel facil o dificil
y hacer que mi personaje gane cuando llegue a cierto punto de puntaje gracias de antemano
he probado todo y no puedo soy nuevo en esto

aqui esta mi codigo del juego

import pilasengine
import random

pilas = pilasengine.iniciar()
sonido_de_menu = pilas.sonidos.cargar('Sonidos1/menu.wav')
sonido_de_juego = pilas.sonidos.cargar('Sonidos1/juego.wav')
sonido_de_gameover = pilas.sonidos.cargar('Sonidos1/fin.wav')
sonido_intro = pilas.sonidos.cargar('Sonidos1/intro.wav')
sonido_de_recolectar = pilas.sonidos.cargar('Sonidos1/recolectar.wav')


class Escena_Menu(pilasengine.escenas.Escena):
    def iniciar(self):
        FondoMenu = pilas.fondos.Fondo()
        FondoMenu.imagen = pilas.imagenes.cargar("Imagenes/fondomenu.png")
        texto = pilas.actores.Texto("Iniciar Juego")
        texto.x = 0
        texto.y = 50
        self.pilas.eventos.click_de_mouse.conectar(self.iniciar_juego)
        sonido_intro.reproducir()
        
    def iniciar_juego(self, evento):
        self.pilas.escenas.Escena_Juego()
        sonido_de_menu.reproducir()
        sonido_de_juego.reproducir()
        sonido_intro.detener()


class Actor_Principal(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = pilas.imagenes.cargar_grilla( "Imagenes/naruto.png")
        self.x = 0
        self.y = -170
        self.aprender(pilas.habilidades.LimitadoABordesDePantalla)
        self.radio_de_colision = 70

    def actualizar(self):
        if pilas.control.izquierda:
            self.x -= 8
            self.espejado = False
            self.imagen.avanzar(velocidad = 10)
        if pilas.control.derecha:
            self.x += 8
            self.espejado = True
            self.imagen.avanzar(velocidad = 10)

class Boton_Regresar(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/regresar.png"
        self.cuando_hace_click = self.volver_a_escena_principal
        self.y = -213
        self.x = -283
        self.escala = 0.8

    def volver_a_escena_principal(self, evento):
        self.pilas.escenas.Escena_Menu()
        sonido_de_juego.detener()
        sonido_intro.reproducir()

class Nuez1(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen1.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        self.radio_de_colision = 14

    def actualizar(self):
        self.velocidad += 0.02
        self.y -= self.velocidad
        self.rotacion += 2

        if self.y < -300:
            self.eliminar()

class Nuez2(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen2.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        self.radio_de_colision = 14

    def actualizar(self):
        self.velocidad += 0.03
        self.y -= self.velocidad
        self.rotacion += 2

        if self.y < -300:
            self.eliminar()

class Nuez3(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen3.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        self.radio_de_colision = 14

    def actualizar(self):
        self.velocidad += 0.04
        self.y -= self.velocidad
        self.rotacion += 2

        if self.y < -300:
            self.eliminar()

class Nuez4(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen4.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        rectangulo = pilas.fisica.Rectangulo(0, 0, 40, 10, sensor=True, dinamica=False)
        self.figura_de_colision = rectangulo

    def actualizar(self):
        self.velocidad += 0.05
        self.y -= self.velocidad
        self.rotacion += 0
        if self.y < -300:
            self.eliminar()

class Enemigo(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/kunai.png"
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        rectangulo = pilas.fisica.Rectangulo(0, 0, 90, 40, sensor=True, dinamica=False)
        self.figura_de_colision = rectangulo

    def actualizar(self):
        self.velocidad += 0.08
        self.y -=self.velocidad

        if self.y < -300:
            self.eliminar()

class Escena_Juego(pilasengine.escenas.Escena):
    def iniciar(self):

        self.Tex()
        self.pilas.actores.Actor_Principal()
        self.pilas.tareas.siempre(1, self.crear_un_actor_Nuez1)
        self.pilas.tareas.siempre(3, self.crear_un_actor_Nuez2)
        self.pilas.tareas.siempre(5, self.crear_un_actor_Nuez3)
        self.pilas.tareas.siempre(7, self.crear_un_actor_Nuez4)
        self.pilas.tareas.siempre(9, self.crear_un_actor_Enemigo)
        self.pilas.actores.Boton_Regresar()

        self.pilas.colisiones.agregar('Actor_Principal','Nuez1', self.colision1)
        self.pilas.colisiones.agregar('Actor_Principal','Nuez2', self.colision2)
        self.pilas.colisiones.agregar('Actor_Principal','Nuez3', self.colision3)
        self.pilas.colisiones.agregar('Actor_Principal','Nuez4', self.colision4)
        self.pilas.colisiones.agregar('Actor_Principal','Enemigo', self.colision5)

    def Tex(self):
        FondoJuego = pilas.fondos.Fondo()
        FondoJuego.imagen = pilas.imagenes.cargar("Imagenes/fondo.png")
        self.puntaje = pilas.actores.Puntaje(-20, 200, color=pilas.colores.Color(0,204,255))
        self.puntaje.escala = 1.5

    def crear_Principal1(self):
        self.pilas.actores.Actor_Principal()

    def crear_un_actor_Nuez1(self):
        self.pilas.actores.Nuez1()

    def crear_un_actor_Nuez2(self):
        self.pilas.actores.Nuez2()

    def crear_un_actor_Nuez3(self):
        self.pilas.actores.Nuez3()

    def crear_un_actor_Nuez4(self):
        self.pilas.actores.Nuez4()

    def crear_un_actor_Enemigo(self):
        self.pilas.actores.Enemigo()

    def colision1(self, Pr, Nue1):
        Nue1.eliminar()
        self.puntaje.aumentar(100)
        print(self.puntaje.valor)
        pilas.utils.interpolar(self.puntaje, 'escala', 1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(0, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()
        

    def colision2(self, Pr, Nue2):
        Nue2.eliminar()
        self.puntaje.aumentar(50)
        pilas.utils.interpolar(self.puntaje, 'escala', 1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(30, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()

    def colision3(self, Pr, Nue3):
        Nue3.eliminar()
        self.puntaje.aumentar(25)
        pilas.utils.interpolar(self.puntaje, 'escala', 1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(30, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()

    def colision4(self, Pr, Nue4):
        Nue4.eliminar()
        self.puntaje.aumentar(10)
        pilas.utils.interpolar(self.puntaje, 'escala', 1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(30, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()

    def colision5(self, Pr, Enem):
        Enem.eliminar()
        Pr.eliminar()
        pilas.escena_actual().tareas.eliminar_todas()
        t1 = pilas.actores.Texto("RECAUDASTE\n\n\n")
        t1.x = 20
        t1.y = 100
        t2 = pilas.actores.Texto("FIN DEL JUEGO")
        t2.x = 20
        t2.y = 0
        sonido_de_juego.detener()
        sonido_de_gameover.reproducir()

pilas.escenas.vincular(Escena_Menu)
pilas.escenas.vincular(Escena_Juego)

pilas.actores.vincular(Boton_Regresar)
pilas.actores.vincular(Actor_Principal)
pilas.actores.vincular(Nuez1)
pilas.actores.vincular(Nuez2)
pilas.actores.vincular(Nuez3)
pilas.actores.vincular(Nuez4)
pilas.actores.vincular(Enemigo)

pilas.escenas.Escena_Menu()

pilas.ejecutar()

ola muy buenas ya he conseguido hacer todo con sus consejos y post en los foros lo unico que me falta es poner un limite de puntuación
por ejemplo mi personaje coge cajas y cada una vale 5 puntos si consigue hacer 100 puntos que se acabe el juego y diga has ganado
mi codigo ya terminado es el siguiente

# -*- encoding: utf-8 -*-
import pilasengine
import random
sonido_de_menu = pilas.sonidos.cargar('Sonidos1/menu.wav')
sonido_de_juego = pilas.sonidos.cargar('Sonidos1/juego.wav')
sonido_de_gameover = pilas.sonidos.cargar('Sonidos1/fin.wav')
sonido_intro = pilas.sonidos.cargar('Sonidos1/intro.wav')
sonido_de_recolectar = pilas.sonidos.cargar('Sonidos1/recolectar.wav')

pilas = pilasengine.iniciar()
texto_contador = pilas.actores.Texto("", y=200, ancho=300)


class EscenaMenu(pilasengine.escenas.Escena):
    def iniciar(self):

        self.fondo = self.pilas.fondos.Fondo("Imagenes/fondoinicio.png")
        self.Mi_Menu = pilas.actores.Menu(
            [
                (u"Jugar", self.Opcciones),
                (u"Ayuda", self.Ayuda),
                (u"Salir", self.Salir_de_Pilas)
                
            ])

        Nombre_de_juego = pilas.actores.Texto(u"Menu Principal")
        Nombre_de_juego.color = pilas.colores.amarillo
        Nombre_de_juego.y = 50

    def actualizar(self):
        pass

    def Ayuda(self):
        pilas.escenas.EscenaAyuda()

    def Opcciones(self):
        pilas.escenas.Opcciones()
        
    def Salir_de_Pilas(self):
        pilas.terminar()
        
class Opcciones(pilasengine.escenas.Escena):
    def iniciar(self):


        self.fondo_juego = pilas.fondos.Noche()
        self.fondo_juego.imagen = "Imagenes/opccion.png"
        self.pilas.actores.Boton_Regresar()
        self.Mi_Menu = pilas.actores.Menu(
            [
                (u"Facil", self.Ir_al_juego),
                (u"Dificil", self.nivel)
                
            ])

        Nombre_de_juego = pilas.actores.Texto(u"Elige nivel")
        Nombre_de_juego.color = pilas.colores.amarillo
        Nombre_de_juego.y = 50



        
    def nivel(self):
        pilas.escenas.Escena_Juego1()

    def Ir_al_juego(self):
        pilas.escenas.Escena_Juego()



class EscenaAyuda(pilasengine.escenas.Escena):
    def iniciar(self):
        self.fondo_juego = pilas.fondos.Noche()
        self.fondo_juego.imagen = "Imagenes/fondo.png"
        self.Boton_Volver = pilas.interfaz.Boton("Volver al Menu")
        self.Boton_Volver.y = 220
        self.Boton_Volver.x = 250
        self.Boton_Volver.conectar(self.Volver)

    def Volver(self):
        pilas.escenas.EscenaMenu()

    def actualizar(self):
        pass


class Actor_Principal(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = pilas.imagenes.cargar_grilla("Imagenes/naruto.png")
        self.x = 0
        self.y = -170
        self.aprender(pilas.habilidades.LimitadoABordesDePantalla)
        self.radio_de_colision = 70

    def actualizar(self):
        if pilas.control.izquierda:
            self.x -= 8
            self.espejado = False
            self.imagen.avanzar(velocidad=10)
        if pilas.control.derecha:
            self.x += 8
            self.espejado = True
            self.imagen.avanzar(velocidad=10)


class Boton_Regresar(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/regresar.png"
        self.cuando_hace_click = self.volver_a_escena_principal
        self.y = -213
        self.x = -283
        self.escala = 0.8

    def volver_a_escena_principal(self, evento):
        self.pilas.escenas.EscenaMenu()
        sonido_de_juego.detener()
        sonido_intro.reproducir()


class Nuez1(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen1.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        self.radio_de_colision = 14

    def actualizar(self):
        self.velocidad += 0.02
        self.y -= self.velocidad
        self.rotacion += 2

        if self.y < -300:
            self.eliminar()


class Nuez2(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/ramen2.jpg"
        self.aprender(pilas.habilidades.PuedeExplotarConHumo)
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        self.radio_de_colision = 14

    def actualizar(self):
        self.velocidad += 0.03
        self.y -= self.velocidad
        self.rotacion += 2

        if self.y < -300:
            self.eliminar()


class Enemigo(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/kunai.png"
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 0
        rectangulo = pilas.fisica.Rectangulo(
            0, 0, 90, 40, sensor=True, dinamica=False)
        self.figura_de_colision = rectangulo

    def actualizar(self):
        self.velocidad += 0.08
        self.y -= self.velocidad

        if self.y < -300:
            self.eliminar()
    
class Enemigo1(pilasengine.actores.Actor):
    def iniciar(self):
        self.imagen = "Imagenes/kunai.png"
        self.x = pilas.azar(-1390, 1390) * 0.2
        self.y = 290
        self.velocidad = 10
        rectangulo = pilas.fisica.Rectangulo(
            0, 0, 90, 40, sensor=True, dinamica=False)
        self.figura_de_colision = rectangulo

    def actualizar(self):
        self.velocidad += 0.08
        self.y -= self.velocidad

        if self.y < -300:
            self.eliminar()


class Escena_Juego(pilasengine.escenas.Escena):
    def iniciar(self):

        self.Tex()
        self.pilas.actores.Actor_Principal()
        self.pilas.tareas.siempre(1, self.crear_un_actor_Nuez1)
        self.pilas.tareas.siempre(3, self.crear_un_actor_Nuez2)
        self.pilas.tareas.siempre(9, self.crear_un_actor_Enemigo)
        self.pilas.actores.Boton_Regresar()

        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Nuez1', self.colision1)
        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Nuez2', self.colision2)
        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Enemigo', self.colision5)

    def Tex(self):
        FondoJuego = pilas.fondos.Fondo()
        FondoJuego.imagen = pilas.imagenes.cargar("Imagenes/fondomenu.png")
        self.puntaje = pilas.actores.Puntaje(-20, 200,
                                             color=pilas.colores.Color(0, 204, 255))
        self.puntaje.escala = 1.5

    def crear_Principal1(self):
        self.pilas.actores.Actor_Principal()

    def crear_un_actor_Nuez1(self):
        self.pilas.actores.Nuez1()

    def crear_un_actor_Nuez2(self):
        self.pilas.actores.Nuez2()

    def crear_un_actor_Enemigo(self):
        self.pilas.actores.Enemigo()
    

    def colision1(self, Pr, Nue1):
        Nue1.eliminar()
        self.puntaje.aumentar(5)
        print(self.puntaje.valor)
        pilas.utils.interpolar(self.puntaje, 'escala',
                               1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(0, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()

    def colision2(self, Pr, Nue2):
        Nue2.eliminar()
        self.puntaje.aumentar(5)
        pilas.utils.interpolar(self.puntaje, 'escala',
                               1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(30, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()



    def colision5(self, Pr, Enem):
        Enem.eliminar()
        Pr.eliminar()
        pilas.escena_actual().tareas.eliminar_todas()
        t1 = pilas.actores.Texto("RECAUDASTE\n\n\n")
        t1.x = 20
        t1.y = 100
        t2 = pilas.actores.Texto("FIN DEL JUEGO")
        t2.x = 20
        t2.y = 0
        sonido_de_juego.detener()
        sonido_de_gameover.reproducir()



class Escena_Juego1(pilasengine.escenas.Escena):
    def iniciar(self):

        self.Tex()
        self.pilas.actores.Actor_Principal()
        self.pilas.tareas.siempre(1, self.crear_un_actor_Nuez1)
        self.pilas.tareas.siempre(3, self.crear_un_actor_Nuez2)
        self.pilas.tareas.siempre(10, self.crear_un_actor_Enemigo1)
        self.pilas.actores.Boton_Regresar()

        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Nuez1', self.colision1)
        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Nuez2', self.colision2)
        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Enemigo1', self.colision6)
        self.pilas.colisiones.agregar(
            'Actor_Principal', 'Enemigo', self.colision5)

    def Tex(self):
        FondoJuego = pilas.fondos.Fondo()
        FondoJuego.imagen = pilas.imagenes.cargar("Imagenes/fondodificil.png")
        self.puntaje = pilas.actores.Puntaje(-20, 200,
                                             color=pilas.colores.Color(0, 204, 255))
        self.puntaje.escala = 1.5

    def crear_Principal1(self):
        self.pilas.actores.Actor_Principal()

    def crear_un_actor_Nuez1(self):
        self.pilas.actores.Nuez1()

    def crear_un_actor_Nuez2(self):
        self.pilas.actores.Nuez2()
    
    def crear_un_actor_Enemigo1(self):
        self.pilas.actores.Enemigo1()
    
    def crear_un_actor_Enemigo(self):
        self.pilas.actores.Enemigo()

    def colision1(self, Pr, Nue1):
        Nue1.eliminar()
        self.puntaje.aumentar(1)
        print(self.puntaje.valor)
        pilas.utils.interpolar(self.puntaje, 'escala',
                               1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(0, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()

    def colision2(self, Pr, Nue2):
        Nue2.eliminar()
        self.puntaje.aumentar(1)
        pilas.utils.interpolar(self.puntaje, 'escala',
                               1.5, duracion=0.5, tipo='elastico')
        self.puntaje.rotacion = random.randint(30, 60)
        self.puntaje.rotacion = [0], 0.6
        sonido_de_recolectar.reproducir()
    def colision5(self, Pr, Enem):
        Enem.eliminar()
        pilas.utils.interpolar(self.puntaje, 'escala',
                               4.5, duracion=0.5, tipo='elastico')
        Pr.eliminar()
        pilas.escena_actual().tareas.eliminar_todas()
        t1 = pilas.actores.Texto("RECAUDASTE\n\n\n")
        t1.x = 20
        t1.y = 100
        t2 = pilas.actores.Texto("FIN DEL JUEGO")
        t2.x = 20
        t2.y = 0
        sonido_de_juego.detener()
        sonido_de_gameover.reproducir()

    def colision6(self, Pr, Enem):
        Enem.eliminar()
        pilas.utils.interpolar(self.puntaje, 'escala',
                               4.5, duracion=0.5, tipo='elastico')
        Pr.eliminar()
        pilas.escena_actual().tareas.eliminar_todas()
        t1 = pilas.actores.Texto("RECAUDASTE\n\n\n")
        t1.x = 20
        t1.y = 100
        t2 = pilas.actores.Texto("FIN DEL JUEGO")
        t2.x = 20
        t2.y = 0
        sonido_de_juego.detener()
        sonido_de_gameover.reproducir()

pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(Escena_Juego)
pilas.escenas.vincular(Escena_Juego1)
pilas.actores.vincular(Boton_Regresar)
pilas.actores.vincular(Actor_Principal)
pilas.actores.vincular(Nuez1)
pilas.actores.vincular(Nuez2)
pilas.actores.vincular(Nuez3)
pilas.actores.vincular(Nuez4)
pilas.actores.vincular(Enemigo)
pilas.actores.vincular(Enemigo1)


pilas.escenas.vincular(EscenaAyuda)
pilas.escenas.vincular(Opcciones)

pilas.escenas.EscenaMenu()

pilas.ejecutar()

ah una cosa mas como se hace para que aparezcan varios enemigos en el modo dificil

gracias me sirvio pero al momento de implementar la opccion ayuda me da error podrias ayudarme con eso gracias

Buenas, @Luis_Jaramillo

Te agradeceria me aclararas cual es tu pregunta concreta, por que ahora mismo no sé a qué contestarte…

Preguntas por el error en la opción ayuda?
Preguntas como hacer aparecer varios enemigos?
Preguntas por el límite de puntación?

Por favor, una consulta cada vez y a ser posible qué error da exactamente y qué se quiere corregir.

Un saludo.

ola gracias por contestar no ya resolví quería saber si lo puedo compartir ya que me guié de muchas partes del foro si me dejas subir acabo de publicar un post