basicamente que fazer com que player 2 se mexa quando o player mexer-se, mas que player 2 mova somente metade do que o player mover, pareceu-me simples de fazer porem sou novo em java e em programação no geral
Tenho duas classes, player e player2, e quero chamar o metodo move da classe player dentro da classe player 2. Mas quero que esse mesmo metodo quando for chamado pelo player 2 receba somente metade do valor de X do player
7 Respostas
Que linguagem você está usando?
Seguinte, pra você fazer isso, basta herdar os recursos da classe player.
Se você estiver usando c++ seria algo mais ou menos assim:
class Player{
attributes;
virtual method();
}
class Player2 : public Player{
attributesFromPlayer2;
methodFromPlayer1() override;
}
Se estiver usando java, basta usar a keyworld extends depois da classe Player2.
E antes de chamar os methods do Player, coloque a notation override.
Quando você chama override você pode alterar o escopo do method que você está usando. Dai só fazer as alterações necessárias e está pronto o sorvetinho sr.
=)
estou usando programa`/ao orientado a objetos em java
Fiz um código exemplo pra você dar uma olhada:
class Player{
private String name;
public int pAmount;
public int move(int amount){
pAmount = amount;
// faz a função move
return pAmount;
}
}
class Player2 Extends Player{ // O Extends está herdando os atributos/methos
// que estiverem publics de Player
@Override //permite alterar o escopo do methodo chamado
public int move(int amount){
pAmount = amount/2;
return pAmount;
}
}
class Jogo{
public static void main(String[] args){
public int walk = 10;
Player player = new Player();
player.move(walk); // Aqui o player anda 10 passos
Player2 player2 = new Player2();
player2.move(walk); // Aqui o player2 anda 5, já que no
// nosso method eu dividi o amount pela metade;
}
}
Espero ter ajudado, e divirta-se com programação de jogos, é uma jornada bem legal.
Mas particularmente, eu indicaria começar a programar jogos com C++ ou C#, já que existem engines no mercado que são usadas até em jogos AAA e são free para uso não comercial. Ex. Unreal engine (C++), e Unity (C#).
Mas nada te impede de programar com java, minecraft foi programando nele por exemplo.
=)
obrigado. faço faculdade de game design, esta parte em java era mesmo para nos introduzirem a P.O.O no próximo ano quando estudarmos engines de jogos começaremos c++
Excelente.
Eu aprendi a programar com jogos cara, e sério, o fluxo de aprendizado é bem daora.
Só que quando aprendi eu começei com C++, e é a minha linguagem mãe até hoje.
Se tiver interesse, procura pelos seguintes livros:
Introdução a C++ já com programação em jogos
Depois que terminar o primeiro leia este:
E o engraçado, é que o primeiro livro eu usei quando começei a programar. hehehe
O autor é bem divertido e a metodologia dele é bem simples e você pega os exemplos bem rápidos. Afinal o cara é game developer então você consegue entender o que ele está falando justamente pelos exemplos geeks.
o @override est;a com um erro metodo nao implementa ou faz override de um supertype
Leia esse capítulo de heranca.
Ele vai te ajudar a entender melhor o uso de override e super.
https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/
Eu esqueci de definir super em alguns pontos.