Estoy haciendo un juego de aventura de apuntar y hacer clic, y actualmente estoy tratando de encontrar la mejor manera de implementar un sistema de comando.
Asuma una interfaz de estilo Monkey Island o Maniac Mansion, con una paleta de verbos y objetos en la escena y en el inventario. Al hacer clic en estos, construyes una oración para ejecutar.
por ejemplo, puede hacer clic look at
y luego en un árbol para "mirar el árbol" o hacer clic en una manzana, y luego give
, y luego en una niña, para obtener "dar manzana a niña".
Hay tres formas posibles de una oración:
verb
, por ejemplo "guardar"verb noun
, por ejemplo "recoger manzana", "mirar pulpo"verb noun noun
, por ejemplo, "dar encurtido al perro rabioso", "usar la palanca con el tarro de encurtidos"
En diferentes situaciones, querré que la acción que se lleve a cabo esté definida por diferentes objetos.
Por ejemplo, para el give
verbo, puede haber una acción predeterminada definida que haga que el personaje diga algo como "Prefiero aferrarme a eso", o el perro rabioso podría definir una acción donde se come cualquier cosa que intentes darle. .
Si la interfaz va a funcionar como Maniac Mansion, entonces construye la oración y luego le dice que se ejecute (en Maniac Mansion, ya sea haciendo clic en la oración o haciendo clic nuevamente en la última cosa en la que hizo clic).
Si va a funcionar como Monkey Island, la oración se ejecuta tan pronto como esté completa, lo que plantea un problema para verbos como los use
que a veces pueden tomar un sustantivo y otras dos veces.
Entonces, ¿cómo implementaría un sistema que maneje esto?
look
que es un verbo de un solo sustantivo, etc