Pergunta

Estou desenvolvendo um jogo de simulação de hospital de tamanho razoável em java. Neste momento, o meu método dor está começando a parecer um pouco grande, e eu preciso de uma maneira de dividi-la em seções diferentes ... Eu tenho uma idéia, mas eu não tenho certeza se este é o melhor caminho. Ele começa por pintar a grama, em seguida, o prédio do hospital, em seguida, todos os edifícios, as pessoas, em seguida, nenhuma amostra de construção na construção. O edifício grama e hospital não vai mudar, então eu só precisa pintar uma vez. Os próprios edifícios não vai mudar muito frequentemente, apenas quando os novos são construídos.

Eu estava pensando, use valores booleanos para determinar quais seções precisam pintura? Ideal, eu gostaria de ser capaz de dividir o método de pintura, e em seguida, chamar cada um quando necessário, mas não estou certo como dividi-lo fisicamente para cima.

Eu ainda sou muito novo para java, e aprender em qualquer lugar.

Agradecemos antecipadamente.

Rel

Foi útil?

Solução

Outra idéia é criar uma super classe ou interface para todos os itens que devem ser desenhadas na tela. Deixa cvall esta classe ScreenObject. Em seguida, pode ter um método especificado na classe ScreenObject sorteio (Graphics2D g). Em seguida, cada objecto que deve ser desenhada implementa o método de desenho () e apenas está preocupado com desenho em si. Você pode até considerar a criação de uma variável que determina se este método empate deve ser executado em todos.

Na classe principal que as tintas da tela você pode ter uma referência para todos os ScreenObjects em um ArrayList e seu método paint () irá simplesmente iterar sobre este empate chamando () em cada objeto.

Outras dicas

Estou assumindo a partir de sua descrição que sua cena é dividida em azulejos. Manter um array de booleanos é uma boa maneira de manter o controle de quais telhas precisa redesenhado na próxima atualização. A LinkedList pode executar um pouco melhor em algumas situações. (Estou pensando em um jogo de simulação de vida, onde há toneladas de telhas para redesenhar e você precisa verificar cada vizinho, então você pode não precisar de ir por esse caminho.)

Sem ver seu código não posso dar conselhos muito específico sobre dividir o seu método de pintura. Posso dizer-lhe que em animações sprite, cada objeto Sprite normalmente tem seu próprio método empate que leva o objeto principal Gráficos (ou, mais provavelmente um buffer) como parâmetro. Desde o sprite deve saber a sua própria imagem e localização, ele pode desenhar a si mesmo na imagem principal. Seu método de pintura pode em seguida, basta percorrer a sua lista de sprites que precisam ser redesenhados e chamar seu método draw.

Você pode olhar para assassino jogo de programação em Java para informações mais detalhadas.

Bem, eu não sou realmente um especialista em programação, mas para dividir o meu método de pintura Ive sempre apenas fez um novo método que leva um objeto Graphics e chamar isso de pintura, ele sempre me ajudou a manter meu código organizado, mas eu tenho nunca teve um projeto grande como parece que você está trabalhando para que ele pode não funcionar para sua situação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top