Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Vi uma seria de videos sobre POO e estou tentando fazer alguma coisa para testar meus conhecimentos, percebi que estou com muita dificuldade para criar interação entre objetos...
Fiz essa classe player que cria um player
E uma função bem porca de pvp pra criar 2 players e fazer PVP entre eles
<html>
<head><title>Test POO</title></head>
<body>
<?php
require_once 'player.php';
$j[1] = new Player("Bubble", 4);
$j[2] = new Player("Knurd Yep", 1);
var_dump($j[1]);
echo '<br>';
var_dump($j[2]);
echo '<br>';
echo '<br>';
PvP($j[1], $j[2]);
?>
</body>
</html>
<?php
class Player {
private $name;
private $level;
private $vocation;
public function __construct($n, $v) {
$this->setName($n);
$this->setVocation($v);
$this->setLevel(8);
}
// interação entre players
function getAtk($j) {
$atk = $j->getVocation() * $j->getLevel()
return $atk;
}
function PvP($jA, $jB) {
if(getAtk($jA) > getAtk($jB)) {
echo 'Player' .$jA->getName(). 'matou' .$jB->getName().'!';
}
else {
echo 'Player' .$jB->getName(). 'matou' .$jA->getName().'!';
}
}
// getters e setters padrões
function getName() {
return $this->name;
}
function setName($nome) {
$this->name = $nome;
}
function getLevel() {
return $this->name;
}
function setLevel($l) {
$this->level = $l;
}
function getVocation() {
return $this->vocation;
}
function setVocation($v) {
$this->vocation = $v;
}
}
O que eu to fazendo de errado?Sem querer ser o chato do role.
Já pensou em fazer/estudar em cima de linguagem onde o retorno é mais imediato... tipo JS?
Fiz um curso um tempo atras do Virtual academy. usando essa lib:
Ela tá meia abandonada, mesmo assim o curso é bem bacana...
Link do curso (gratuito)
Eu sugeri mais pq lá tem exatamente essas funções (playerMove, playerAtack, setLevel, etc) e o retorno é 'real', você chega a enxergar os sprites e talz e isso ajuda na motivação hehe.
Apesar q estudar encapsulamentoé bem interessante/recomendado independente da linguagem, afinal pode usar esses conceitos em JS, PHP, JavaScript, Java, C#, C++ e pq não em C? etc etc..
bons estudos
Ps: se seu objetivo é fazer um jogo de browser estilo temporal esquece oq eu falei hehe
Se você esta passando argumentos pelo construtor da classe, qual há necessidade destes getters e setters?
Só setar os valores nestas variaveis
PvP é um objeto da classe, e não um helper!