Jump to content

AJUDA - Game em Action Script 3.0


GabrielBR

Recommended Posts

Bom dia pessoal, tudo bem ?

Sou novo por aqui, e sou novo também na jornada de criação de games

Gostaria que vocês me ajudassem pois estou com um problema... estou estudando sozinho e não consigo arrumar o meu jogo

é um jogo de nave feito em FLASH CC, porem as naves não descem e quando atira, os tiros não destroem a nave

CONTROLE DO JOGO:

Movimentação: SETAS DIRECIONAIS

TIRO = BARRA DE ESPAÇO

VOU COLOCAR O LINK DO DOWNLOAD DO JOGO

http://www.4shared.com/rar/_s5Y2MySce/jogo.html

Link to post
Share on other sites

Vou postar os codigos e as classes para voces entao...

import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
import inimigos.inimigoClass;

//ACHA O CÓDIGO DA TECLA DO TECLADO
stage.addEventListener(KeyboardEvent.KEY_DOWN, achaTecla);
function achaTecla(event:KeyboardEvent):void{
trace("O código da tecla é: ", event.keyCode);
}

//VARIAVEIS GLOBAIS
var velocidade:Number = 5;
var direita:Boolean = false;
var esquerda:Boolean = false;
var cima:Boolean = false;
var baixo:Boolean = false;
var espaco:Boolean = false;
var checarTecla:Boolean = false;
var nave:MovieClip = new naveClass();
var atirar:Sprite = new Sprite;
var tempoTiro:Timer = new Timer(300,1);
var podeAtirar:Boolean = true;
var tempoNave:Timer = new Timer (1500);

//ADICIONANDO NAVE NO PALCO
nave.x = stage.stageWidth / 2;
nave.y = stage.stageHeight-100;
addChild(nave);
addChild(atirar);

//OUVINTES
stage.addEventListener(KeyboardEvent.KEY_DOWN, teclaPress);
stage.addEventListener(KeyboardEvent.KEY_UP, teclaSolta);
stage.addEventListener(Event.ENTER_FRAME, moveNave);
tempoTiro.addEventListener(TimerEvent.TIMER, controlaTempo);
tempoNave.addEventListener(TimerEvent.TIMER, criaInimigo);

//FUNCAO TECLA SOLTA
function teclaPress(event:KeyboardEvent):void{
if (event.keyCode == 37){
	esquerda = true;
}else if (event.keyCode == 38){
	cima = true;
}else if (event.keyCode == 39){
	direita = true;
}else if (event.keyCode == 40){
	baixo = true;
}else if(event.keyCode == 32){
	espaco = true;
}
}


//FUNCAO TECLA PRESSIONADA
function teclaSolta(event:KeyboardEvent):void{
if (event.keyCode == 37){
	esquerda = false;
}else if (event.keyCode == 38){
	cima = false;
}else if (event.keyCode == 39){
	direita = false;
}else if (event.keyCode == 40){
	baixo = false;
}else if (event.keyCode == 32){
	espaco = false;
}
}

//FUNCAO MOVE NAVE
function moveNave (event:Event):void{
if (esquerda == true){
	nave.x += -velocidade;
}else if (direita == true){
	nave.x -= -velocidade;
}else if (cima == true){
	nave.y += -velocidade;
}else if (baixo == true){
	nave.y -= -velocidade;
}
if (espaco == true && podeAtirar == true){
	var tiro:Sprite = new tiroClass();
	tiro.x = nave.x;
	tiro.y = nave.y;
	atirar.addChild(tiro);
	podeAtirar = false
	tempoTiro.start ();
}
}

//Função que controla o tempo do tiro
function controlaTempo(event:TimerEvent):void{
podeAtirar = true;
}

tempoNave.start();
function criaInimigo(event:Event){
var novoInimigo:Sprite = new inimigoClass();
novoInimigo.x = Math.random() * stage.stageWidth;
addChild(novoInimigo);
}

CLASSE INIMIGOS

package inimigos{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;

public class inimigoClass extends Sprite{
private var nucleo:Object;
private var vely:Number = 2;

public function inimigoClass() {
	// constructor code
	addEventListener(Event.ADDED_TO_STAGE, quandoAdicionado);
}

private function quandoAdicionado(event:Event){
	nucleo = MovieClip(root);
	addEventListener(Event.ENTER_FRAME, recarregar);
}

private function recarregar (event:Event){
	y -= vely;
	for (var i:int = 0; i < nucleo.atirar.numChildren; i++)
		var atingido:Sprite = nucleo.atirar.getChildAt(i);

	if (hitTestObject(atingido)){
		nucleo.atirar.getChildAt(i).removeListener();
		nucleo.atirar.removeChild(atingido);

		removeEventListener(Event.ENTER_FRAME, recarregar);
		nucleo.removeChild(this);
		}
   }

 public function removeListener ():void{
	 removeEventListener(Event.ENTER_FRAME, recarregar);
}
}

CLASSE TIRO


package  {

import flash.events.Event;
import flash.display.Sprite;

public class tiroClass extends Sprite {

	//Variável globais da classe
	private var larguraTela:Number;
	private var alturaTela:Number;
	private var direcao:int = 10;
	private var foraTela:int = -10;

	//Funcao construtora da classe
	public function tiroClass():void {
		// constructor code
		addEventListener(Event.ADDED_TO_STAGE, quandoAdicionado);
	}

	//Função que verifica quando objeto está adicionado na tela
	private function quandoAdicionado (event:Event):void{
		larguraTela = stage.stageWidth;
		alturaTela = stage.stageHeight;
		addEventListener(Event.ENTER_FRAME, recarregar);
	}

	//Função que recarrega o tiro
	private function recarregar (event:Event):void{
			if (y < foraTela){
					removeEventListener(Event.ENTER_FRAME, recarregar);
					parent.removeChild (this);
			}
			y -= direcao;
	}

	public function removeListeners():void{
			removeEventListener(Event.ENTER_FRAME, recarregar);
	}
}

Edited by coxosclassic
code cleanup
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.