*   >> Leitura Educação Artigos >> science >> programação

Fazendo um clone de Space Invaders com PushButton - Main Menu

jogar o demo

BAIXAR O CÓDIGO FONTE

Voltar ao Índice TUTORIAL

Embora possa não ser imediatamente óbvio , gerenciamento de estado, como a mudança de uma tela de menu para um nível de jogo e de volta, não é fornecido pelas classes de nível de carga PushButton XML. Enquanto você pode carregar um nível, ele irá de fato carregar todas as entidades para além das que estão actualmente carregados.

Limpando entidades carregados atualmente não é uma função do nível de carga, e assim por diante um novo nível é carregado você precisa destruir manualmente as entidades existentes para si mesmo.

A maneira mais fácil de fazer isso é criar um componente que escutas para um evento global para ser gatilho e destruir a entidade a que pertence em resposta. O DestroyOnLevelClearComponent faz exatamente isso. Ele ouve o nível do evento clara despachado pelo objeto principal palco (um objeto central e conveniente, que todos os componentes pode ouvir).

DestroyOnLevelClearComponent.

as

 classe pública estende DestroyOnLevelClearComponent EntityComponent {public static LEVEL_CLEAR const: String = "LevelClear"; DestroyOnLevelClearComponent função pública () {super (); } Function protected override OnAdd (): void {super.onAdd (); Global.mainStage.addEventListener (LEVEL_CLEAR, levelClear); } Protected override função onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (LEVEL_CLEAR, levelClear); } Protected função levelClear (event: Event): void {owner.

destroy (); }}

Agora, todas as entidades criadas no âmbito do nível, quer carregados diretamente a partir de uma declaração XML ou criados em tempo de execução, obter o novo componente DestroyOnLevelClearComponent.

Código

O SwitchLevelComponent é usado para despachar o nível do evento clara, e, em seguida, solicitar que um novo nível de ser carregado pelo LevelManager. Temos usado os eventos de teclado, ao contrário de verificação para ver se uma tecla foi pressionada cada quadro, para garantir que o processo de compensação e nível de carga é feito uma vez.


SwitchLevelComponent.as

 classe pública estende SwitchLevelComponent EntityComponent {var nível público: int = -1; SwitchLevelComponent função pública () {super (); } Function protected override OnAdd (): void {super.onAdd (); Global.mainStage.addEventListener (KeyboardEvent.KEY_UP, keyUp); } Protected override função onRemove (): void {super.onRemove (); Global.m

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.