• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

GONCALOPES

Jogo Pong

4 mensagens neste tópico

Olá

Tenho que fazer o jogo do Pong

E não sei o código que hei de por na bola, e nos dois objectos que se movem que defendem a bola.

E a bola não pode sair do campo, com os outros dois objectos alguém me pode ajudar.

Se tivessem um fla para me ajudar, era muito bom claro que não ia copiar o vosso trabalho, modifica lo, e algumas partes do codigo, para o meu agrado.

Fico a espera.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui não se arranjam trabalhos.. tiram-se dúvidas, dão-se ajudas e/ou dicas...

Começa a fazer, tenta ir até onde podes/consegues, e/ou então coloca dúvidas concretas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso envolve demasiados temas.

O que tens a fazer é partir o teu problema em partes mais pequenas/especificas e depois ir tentando resolver uma a uma ou colocar as tuas dúvidas aqui:

1º-Quais os requisitos?

      ->Detectar as colisões da bola com os limites do stage.

              ->Topo/Fundo -> ressalto -> angulo/velocidade/etc

              -> Esquerda/Direita -> ponto/reiniciar

      ->etc

      ->etc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa noite, o meu jogo corre tudo, mas depois não dá para voltar a reiniciar, e nem sequer chega aos 10 pontos, o codigo está todo certo, porque nao da nenhum erro.

Disponibilizo aqui o meu código na timeline do jogo

_root.inicio_mc.play();
var inicio:Boolean=false;
_root.fim_mc.visible=false;
stop();

Dentro do meu movieclop jogo_mc

var jogo:Object = new Object();
jogo.bola = new Object();
jogo.score = new Object();
jogo.score.pc = 0;
jogo.score.jogador = 0;
jogo.bola.clip = this.bola_mc;
jogo.largura = this.quadro_mc._width;
jogo.altura = this.quadro_mc._height;
jogo.bola.x = 200;
jogo.bola.y = 100;
jogo.bola.xmov = 0;
jogo.bola.ymov = 0;
jogo.bola.radius = (this.bola_mc._width)/2;
jogo.painelEsquerda = new Object();
jogo.painelDireita = new Object();
jogo.painelEsquerda.clip = this.esq_mc;
jogo.painelDireita.clip = this.dir_mc;
jogo.painelEsquerda.x = 0;
jogo.painelEsquerda.y = 0;
jogo.painelEsquerda.altura = jogo.painelEsquerda.clip._height;
jogo.painelEsquerda.largura = jogo.painelEsquerda.clip._width;
jogo.painelDireita.altura = jogo.painelDireita.clip._height;
jogo.painelDireita.largura = jogo.painelDireita.clip._width;
jogo.painelDireita.x = jogo.largura-jogo.painelDireita.largura;
jogo.painelDireita.y = 0;
jogo.k = .5;
jogo.Score = function() {
_root.jog_txt.text = jogo.score.jogador;
_root.pc_txt.text = jogo.score.pc;
};
jogo.posicaoInicial = function() {
jogo.bola.x = 200;
jogo.bola.y = 100;
var direccao:Number = Math.round(Math.random());
if (direccao == 0) {
	jogo.bola.xmov = -6;
} else {
	jogo.bola.xmov = 6;
}
jogo.bola.ymov = 6;
_root.inicio = false;
};
jogo.posicaoTemporaria = function() {
this.bola.tempx = this.bola.x+this.bola.xmov;
this.bola.tempy = this.bola.y+this.bola.ymov;
};
jogo.detectarParedes = function() {
if (this.bola.tempy-this.bola.radius<0) {
	this.bola.tempy = 0+this.bola.radius;
	this.bola.ymov *= -1;
} else if (this.bola.tempy+this.bola.radius>this.altura) {
	this.bola.tempy = this.altura-this.bola.radius;
	this.bola.ymov *= -1;
}
if (this.bola.tempx-this.bola.radius<0) {
	this.bola.tempx = 0+this.bola.radius;
	this.bola.xmov *= 0;
	this.bola.ymov *= 0;
	jogo.score.pc += 1;
	if (jogo.score.pc != 10) {
		_root.inicio_mc._visible = true;
		_root.inicio_mc.play();
	} else {
		_root.fim_mc._visible = true;
		_root.fim_mc.gotoAndStop("derrota");
	}
} else if (this.bola.tempx>this.largura) {
	this.bola.tempx = this.largura-this.bola.radius;
	this.bola.xmov *= 0;
	this.bola.ymov *= 0;
	jogo.score.jogador += 1;
	if (jogo.score.jogador != 10) {
		_root.inicio_mc._visible = true;
		_root.inicio_mc.play();
	} else {
		_root.fim_mc._visible = true;
		_root.fim_mc.gotoAndStop("vitoria");
	}
}
};
jogo.renderBola = function() {
this.bola.x = this.bola.tempx;
this.bola.y = this.bola.tempy;
jogo.bola.clip._x = this.bola.x;
jogo.bola.clip._y = this.bola.y;
};
jogo.detectarPlataformas = function() {
if (this.bola.tempx<this.painelEsquerda.x+this.painelEsquerda.largura && this.bola.tempx+this.bola.radius>this.painelEsquerda.x && this.bola.tempy+this.bola.radius>this.painelEsquerda.y && this.bola.tempy<this.painelEsquerda.y+this.painelEsquerda.altura) {
	this.bola.tempx = this.painelEsquerda.x+this.painelEsquerda.largura+this.bola.radius;
	this.bola.xmov *= -1;
}
if (this.bola.tempx<this.painelDireita.x+this.painelDireita.largura && this.bola.tempx+this.bola.radius>this.painelDireita.x && this.bola.tempy+this.bola.radius>this.painelDireita.y && this.bola.tempy<this.painelDireita.y+this.painelDireita.altura) {
	this.bola.tempx = this.painelDireita.x-this.bola.radius;
	this.bola.xmov *= -1;
}
};
jogo.jogoAI = function() {
this.painelDireita.ymov = (this.bola.y-(this.painelDireita.y+this.painelDireita.altura/2))*this.k;
this.painelDireita.tempy = this.painelDireita.y+this.painelDireita.ymov;
if (this.painelDireita.tempy<0) {
	this.painelDireita.tempy = 0;
} else if (this.painelDireita.tempy+this.painelDireita.altura>this.altura) {
	this.painelDireita.tempy = this.altura-this.painelDireita.altura;
}
this.painelDireita.y = this.painelDireita.tempy;
jogo.painelDireita.clip._y = this.painelDireita.y;
};
this.onMouseMove = function() {
updateAfterEvent();
var tempy = _ymouse-jogo.painelEsquerda.altura/2;
if (tempy<0) {
	var tempy:Number = 0;
} else if (tempy+jogo.painelEsquerda.altura>jogo.altura) {
	var tempy:Number = jogo.altura-jogo.painelEsquerda.altura;
}
jogo.painelEsquerda.y = tempy;
jogo.painelEsquerda.clip._y = jogo.painelEsquerda.y;
};
this.onEnterFrame = function() {
if (_root.inicio) {		
	jogo.posicaoInicial();
}
jogo.posicaoTemporaria();
jogo.detectarParedes();
jogo.detectarPlataformas();
jogo.renderBola();
jogo.jogoAI();
jogo.Score();
};

e o código no startmenu

_root.instrucoes_mc._visible=false;

stop();

E a bola depois de jogarmos, e chegarmos ao primeiro ponto, termina o jogo, alguém me ajuda, é que o trabalho é urgente.

Agradecia uma resposta o mais breve possível.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora