Atualmente, estou criando um jogo de tiro de cima para baixo como Touhou. O fator mais importante do jogo é que existem muitos padrões e maneiras diferentes pelas quais as balas são geradas e disparadas contra o jogador, veja este vídeo: http://www.youtube.com/watch?v=4Nb5Ohbt1Sg#start=0 : 60; final = 9: 53 ;
No momento, estou usando a classe "Pattern", que possui uma série de etapas para mover e fotografar. No entanto, sinto que esse método é bastante trabalhoso, pois tenho que criar um novo padrão para cada ataque e talvez novas classes de bala que implementem um determinado comportamento.
Essa pergunta recebeu um comentário sugerindo que eu deveria procurar no BulletML a fácil criação e armazenamento de marcadores com um padrão específico. Parece decente, mas me levou a pensar: que outras soluções você tem que eu devo levar em consideração?
Atualizar
Meu design atual é o seguinte:
Um exemplo de um padrão implementado:
Meu GigasPattern executa primeiro um teleporte que move Alice para um determinado ponto (X, Y) na tela. Depois que isso é concluído, o padrão começa a usar o Mover para mover o sprite (enquanto o teletransporte tem efeitos e animação separados). Estes não são de interesse, na verdade, pois são bastante simples.
O Shooter também cria vários ataques, que são classes novamente que o Shooter pode usar para criar vários padrões de balas, muito parecido com o da pergunta que eu postei. Quando o Mover atinge seu destino, ele e o atirador param e retornam ao estado inativo. O padrão é concluído, é removido pela IA e um novo é escolhido.
fonte
Talvez você possa implementar uma linguagem de script pequena e própria para o seu jogo. Então você seria capaz de criar um script de comportamentos de marcador apenas adicionando novos scripts. A vantagem de uma linguagem de script própria é que você pode usá-la em outras partes do seu jogo. Ou você pode tentar usar Lua (não sei qual idioma / estrutura você está usando). Mas, na minha opinião, Lua seria um exagero se você quiser apenas ter padrões de movimento.
Entre: eu já fiz isso para um shooter espacial, mas para o comportamento do inimigo. Funcionou bem, então você realmente pode tentar isso.
fonte
Eu estava exatamente na mesma situação há um tempo atrás e comecei a implementar minha própria arquitetura para padrões de marcadores. Desisti, porém, porque me deparei com uma implementação do BulletML para C # / XNA: BulletML C #
Eu tive que fazer algumas alterações, mas agora a criação de padrões que parecem espetaculares é realmente muito fácil. Há uma ótima demonstração aqui que mostra como algumas linhas de XML podem criar padrões impressionantes.
Se você estiver trabalhando em C #, recomendo evitar reinventar a roda. Especialmente se você quiser ter padrões muito complexos. Pode levar algum tempo para entender o BulletML, mas, na minha opinião, vale a pena.
No entanto, se você decidir não usar o BulletML, verifique, pelo menos, o código C # e tenha uma idéia de sua arquitetura. Pode lhe dar algumas idéias.
fonte