Ir ao conteúdo
  • Cadastre-se

Felipecfk

Membro Pleno
  • Posts

    399
  • Cadastrado em

  • Última visita

Tudo que Felipecfk postou

  1. Eu tenho seguido pelo youtube aqui: https://www.youtube.com/watch?v=6_N8QZ47toY&list=PL4rzdwizLaxYmltJQRjq18a9gsSyEQQ-0 Aqui está o GitHub do rapáz: https://github.com/KaarinGaming/PlatformerTutorial
  2. Aqui não é JavaScript, aqui é sessão de Java.
  3. Esse código faz parte de um tutorial de um game plataforma, estou fazendo junto pra aprender. Eu acho que já sei o que aconteceu, existe uma função loop no construtor sendo chamada e dentro desse loop existe uma thread recebendo como parâmetro a própria classe e também está executando a função start(); Então se fizer como o exemplo abaixo funciona, sem chamar o run() no main: public class Main { public static void main(String[] args) { new Sec(); } } public class Sec implements Runnable { Thread td; public Sec() { loop(); } private void loop() { td = new Thread(this); td.start(); } @Override public void run() { System.out.println("Run"); } } Deixei as duas classes no mesmo pacote só pra facilitar o exemplo. A palavra Sec é de "secundário", só pra dizer que não é a main.
  4. De um leigo pro outro: Usei o Lubuntu uma vez num PC bem antigo (acho que era um Athlon x2 250) ficou rápido pra caramba. Mas eu não conseguia instalar direito as coisas, não sei se por incompatibilidade dos periféricos em geral (parece que o lubuntu foi pensado mais pra notebook) ou se por noobice minha mesmo. O Ubuntu e suas variantes (Lubuntu, Xubuntu etc.) é confiável pra iniciantes porque a comunidade é grande e algumas coisas já vem pré-prontas em comparação a outras distros. Mas se fosse instalar hoje num PC mais atual pegaria o Mint que é o mais "user friendly" pra quem vem com hábitos velhos de Windows. Mas falando sinceramente eu apanho muito pra qualquer Linux (espera os puritanos virem te encher com o termo GNU) por isso depois de uns 2 meses acabo voltando pro Windows.
  5. Não sei não se C# é mais simples, pode parecer mais simples porque a Unity é basicamente um quebra cabeça, é só encaixar as peças. Em questão da linguagem em si eu acho o C++ bem menos "comórbido" digamos assim.
  6. @AdrianoSiqueira Uma pergunta: você acha necessário chamar o run(). Porque em alguns projetos que fiz, quando você implementa o runnable e sobrescreve ele (@Override), o método é executado automaticamente quando um novo objeto é criado. Então por exemplo quando eu crio new Principal(); já funciona. Mas talvez seria boa prática deixar o run() mesmo assim?
  7. O que pode estar acontecendo é que o seu VS code está mau configurado pro java, aí ele está entendendo que o parametro que o print recebe é alguma variável, deve ter alguma opção de desabilitar isso se estiver te incomodando, como o colega disse, é uma hint. Eu sempre desabilito isso aí me atrapalha muito porque deixa o visual poluído pra mim apesar de não interferir no resultado final.
  8. O getters e setters estão certos, não tem muito segredo nesse caso. Mas caso faça um outro programa em que o salário ou nome não possam ser modificados por exemplo, então nesse caso não precisa de setters, assim o código ficaria mais limpo. O que dá pra melhorar no seu programa é você formatar o salário com printf ao invés de println. Assim você consegue deixar aqueles 2 dígitos de centavos depois da vírgula, não sei se você já aprendeu, aqueles "%0.2f"
  9. Sim, mas acho que Person em si não é uma anotação e sim uma classe. Dá uma olhada nisso, vê se ajuda: https://www.javatpoint.com/java-annotation
  10. Está dando um erro nessa parte: requiresAnnotation(person); "incompatible types: person cannot be converted to MyAnnotation" Isso daqui faz sentido pois está implementando MyInterface e não o MyAnnotation: private static class Person implements MyInterface {} Portanto esse daqui dá certo, porque person está implementando o MyInterface, que é justamente o parametro do requiresInterface: requiresInterface(person); aqui ta diferente, um está com arroba e o outro não, pode ser isso..: private @interface MyAnnotation {} private interface MyInterface {}
  11. Felipecfk

    C Fazer algoritmo em C

    você pode criar 4 variáveis que recebam inteiro por exemplo. Aí uma variável para ser o conversor ou uma função conversor(). Aí esse conversor vai receber qualquer uma dessas variáveis e dividir por 1.6, depois é só imprimir o resultado. Infelizmente o C é uma linguagem insuportável pra trabalhar com string, eu criaria dois char: um pra k e outro pra m, aí tu imprime na frente do resultado do conversor e fica "km" kkkk. Que solução ridicula mas é isso.
  12. Existe uma diferença entre desenvolver um jogo e montar um jogo a partir de um código já existente.
  13. Não é pra imprimir os outros, é só pra contar, ele só vai imprimir quando for múltiplo de 1000000 while (contador <= 3000000) { if (contador % 1000000 == 0) printf("%d ", contador); contador ++; } Não esqueça que é de 1 a 3000000, então o contador começa em 1 e não em zero.
  14. pra que usar o dev c++? Tanta coisa melhor por aí...
  15. A maioria dos jogos é otimizada pra open gl, então a chance de não dar erros usando open gl é maior. Mas em questão de tecnologia (desempenho, qualidade) é praticamente a mesma porcaria. Prefira sempre o hardware rendering pois ele designa a parte de processamento gráfico para a gpu e não pra cpu que geralmente é mais lenta.
  16. Você acabou de dizer no comentário anterior que é valorizada no mercado...
  17. Daí que eu me pergunto, pra que ensinar portugol se depois não vão conseguir converter pra código de verdade? Seria mais fácil ensinar o código de verdade direto. Enfim... a função início() = public static void main (String[] args) inteiro = int real = double ou float cadeia = (disseram que é char, eu achei que fosse array traduzindo ao pé da letra, mas é char mesmo) faça = do enquanto = while escreva = print (no caso do java o System.out.print ou println se quiser pular linha). Não adianta você usar o printf como fez porque o printf não entende "+", ele entende ",". O seu portugol está dando a entender que é pra usar o print normal do java, mesmo que não seja tão preciso quanto o printf. Acho que a ideia é essa mesmo, é só pra traduzir e rodar, sem muita firula de %0.2f. Você faz em 10 min isso aí. Só lembra de fechar o scanner no final ler.close(). É uma boa prática. E como o colega acima disse, não é pra substituir o char por scanner, é só pra acrescentar o scanner pra ele poder ler o que você digitar no terminal depois. Outra, lembra que pra ler char não é aspas duplas como no String, você fez "s" ou "S", na verdade é 's' ou 'S' o termo "ou" no casso é esse aqui "||". Corrigindo aquele trecho do while fica: while (res == 's' || res == 'S');
  18. Ta aqui o erro que mostra pra mim, ele entende o que é %canvas mas não canvas($file)
  19. como eles ambos estão estendendo a classe pokemons, o super é uma forma de chamar todos esses atributos (saude, ataque, defesa) sem precisar declarar eles de novo nas classes pikachu e bulbassauro. O super 'puxa' o construtor da superclasse "Pokemons". Mas se você não aprendeu essa parte ainda nem coloca, senão seu professor vai xingar.
  20. //Classe abstrata public abstract class Pokemons implements Pokemon { int saude, fAtaque, fDefesa; public Pokemons(int saude, int ataque, int defesa) { this.saude = saude; this.fAtaque = ataque; this.fDefesa = defesa; } @Override public void atacar(Pokemons p) { } @Override public void defender() { } } //Classe concreta public class Pikachu extends Pokemons implements Pokemon { public Pikachu() { super(100, 10, 2); } } //Classe concreta public class Bulbasaur extends Pokemons implements Pokemon { public Bulbasaur() { super(80, 8, 3); } } //Classe principal public class Main { public static void arena(Pokemons p1, Pokemons p2) { //aqui você completa } public static void main(String args[]) { Pokemons pikachu = new Pikachu(); Pokemons bulbasaur = new Bulbasaur(); arena(pikachu, bulbasaur); } } //Interface public interface Pokemon { public void atacar(Pokemons p); public void defender(); } Eu montei a estrutura, não consegui comentar acima porque essa inserção de código funciona de uma forma doida nesse site mas enfim, eu montei a estrutura (tive que criar uma classe abstrata que chamei de "pokemons", não teve jeito). Aí você faz a parte do cálculo dos métodos atacar, defender e arena. Ok?
  21. Pra mim também deu erro, isso é uma das coisas que me pega em orientação a objetos porque eles te obrigam a pensar de uma maneira meio longa e inconveniente. Eu tentei implementar a interface mas deu erro, daí talvez a classe precisasse ser abstrata como você fez, não sei porque o seu deu erro, mas vou testar aqui, amanhã te passo o que eu consegui com essas informações novas que você passou. Lembra que as duas classes precisam ser concretas. Ela dá erro mesmo enquanto você não tiver dado "override" nos métodos da interface, dentro das classes, mas eu vou postar exemplo depois daí vai ficar claro.
  22. Se você gosta de programar, e prefere c/c++ se especialize, são os salários mais altos acredite ou não, mas pode levar uma década. Agora, se você gosta de ganhar dinheiro e programação é só um obstaculo, com certeza aprenda qualquer uma dessas linguagens chatas de web que tem emprego de sobra, mas não espere passar de muito mais de 4k com essas. A não ser que esteja empreendendo à parte.
  23. Eu pensei aqui, eu acho que seria melhor simplificar a batalha, porque se for fazer quem ataca primeiro vai depender de speed, se for ver quanto de dano vai tomar, vai depender do tipo do pokemon, do tipo do ataque que ta recebendo, isso vai ficar muito complexo, no fim das contas vai estar criando um jogo pra vender kkkk. sim da pra criar duas classes mas o pokemon especifico pra mim faz mais sentido ser um objeto, exemplo: class Pokemon { String tipo; final int hp; final int ataque; public Pokemon() { this.tipo = tipo this.hp = hp; this.ataque = ataque; //etc. } } public void batalha(Pokemon pokeA, Pokemon pokeB) { if (pokeA.speed > pokeB.speed) { System.out.println(pokeA+" da o primeiro golpe"); } else { System.out.println(pokeB+" da o primeiro golpe"); } //etc. mais um monte de coisa } public class Main { public static void main(String[] args) { Pokemon pikachu = new Pokemon("Elétrico", 35, 55, 40) batalha(Pikachu, Charizard); } } Algo nesse sentido. (não testei esse código, só fiz nas coxas pra dar um exemplo rápido). Eu não sei onde entraria a interface nesse caso, mas geralmente é pra criar uma função com o mesmo nome que vai ser utilizada pra diferentes ocasiões usando um @override quando for defini-la dentro da classe. Talvez perguntar pro seu professor ser mais específico.
  24. A interface geralmente guarda os métodos mas não é ela que define o que os métodos vão fazer. Geralmente quem faz isso são as classes.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!