Comunidad de diseño web y desarrollo en internet online

Duda con juego

Citar            
MensajeEscrito el 26 May 2011 08:54 pm
Hola estoy intentando terminar un juego de plataformas para subir a Kongregate la base del juego esta echa el pj los items y la interacción esta funcionando bien,
el problema es para hacerle una introduccion precarga, menú de opciones etc,
la verdad no tengo idea de como realmente se arma un juego hacerlo sin la introducción sera mas sencillo pero no tendría mucho sentido ahora intente poner una variable "game_play"en la clase main si es true carga las opciones false no hace nada.
La variable esta declarado como false y en el fotorama que inicia el juego la pondría como true pero no da resultado.
Lo que pido es el consejo de alguin que ya halla desarrollado juego solo una guia de como tendría que armarlo. desde ya gracias
Dejo un poco de código para que entiendan mejor :
La clase Main

Código ActionScript :

package com{
   
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.filters.*;   
import flash.text.TextField

   public class Main extends MovieClip{
      var pizza   
      public static var scoreRef:Number=0
      public static var game_play:Boolean=false
      
      public var $score:Score=new Score();
      
      
public function Main():void
{   
var key:KeyFlag= new KeyFlag(char,stage)




   char._piso=limit
   char._ref=stage
   char._items=helt

   
   addEventListener(Event.ENTER_FRAME,scoretxt,false,0,true)
   score_txt.text=""
   stage.scaleMode=StageScaleMode.SHOW_ALL
   pizza=new Pizza();
   addChild(pizza)
         
   porcion00.tar=char
   porcion00.Bandeja=ttr
   pizzeta.tar=char
   Score._scoreRef=score_txt
   
}

   private function scoretxt(even:Event):void
   {
      score_txt.text=String(scoreRef)
   }
   

   }//
      //END CLASS AND PACK
   }//


esta se encarga de pasarle las referencias al resto de las clases.
La clase del Char

Código ActionScript :

package com{
   
   import flash.display.MovieClip
   import flash.display.Stage
   import flash.events.Event
   
   public class Char extends MovieClip{
   
      private var friccion:Number=0.95
      private var yspeed:Number=0
      private var grav:Number =1
      private var salto:Number= 6.5
      private var tsalto=0
      private var walk_jump:Boolean=true
      private var can_jump:Boolean=true
      
      public var ptBajo:Number=height/2
      public var ptAlto:Number=-height/2
      public var ptIzq:Number=-width/2
      public var ptDer:Number=width/2
      public var _piso:MovieClip;
      public var _ref:Stage;
      public var dx:Number=0
       public var newBlood
      
      private var vel:Number = 2
      private var maxvel:Number = 8
       
      public static var msj:MovieClip=null
      public var _items:MovieClip;
      
   public function Char():void
   {
   //_items._helt= null
   
   addEventListener(Event.ENTER_FRAME,gravedad,false,0,true)
   
            
   
   }
   private function gravedad(evento:Event):void
   {   coliciones()
      //if (_piso)
      if( _piso.hitTestPoint (x,y+ptBajo+1,true)) { y-=0,yspeed=0,can_jump=true }   
      else {   yspeed += grav;  y += yspeed;   }
   }
   
   private function coliciones():void
   {      movesOn()
            
      
         while (_piso.hitTestPoint(x,y+ptBajo,true))   y -- 
         while(   _piso.hitTestPoint(x,y+ptAlto,true))y ++ 
         
         //Colicion en lado Izq
         while (_piso.hitTestPoint(x+ptIzq,y,true))    x ++ 
         while (_piso.hitTestPoint(x+ptIzq,y+ptBajo/3,true))  x ++ 
         //Colicion en lado Derecho
         while (_piso.hitTestPoint(x+ptDer,y,true))   x --  
         while (_piso.hitTestPoint(x+ptDer,y+ptBajo/3,true))   x -- 
                  //////OTROS HITTESTING/////
         if  (_piso.puas.hitTestPoint(x,y+ptBajo+2,true))   
         msj= new Globo_msj(),stage.addChild(msj),Energia.energiDecres-=10;
         
         if (_items.hitTestPoint(x,y+ptDer,true)||
            _items.hitTestPoint(x,y+ptIzq,true)                           ){
            parent.removeChild(_items)}
         
         
      
   }
      public function movesOn():void
   {
      if(msj)msj.x=x+50,msj.y=y+ptAlto+15;
      
      this.x+=dx;
      dx*=friccion;
      if (dx > maxvel)dx=maxvel
         else if (dx<-maxvel )dx=-maxvel
    
    }   
      
      private function moverblood(eve:Event):void {/* newBlood.x=this.x */   }
      
   
   }//
      //END PACK AND CLASS
   }//

y ahi un monton de clases para el manejo del pj "KeyFlags.as" y cada item en si tiene su clase.
Espero un empujon saluda Maxx

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 27 May 2011 02:55 pm
No entiendo bien el planteo, la pantalla de introducción suele ser una simple animación o incluso una imágen, en el siguiente frame se da el kick-off del juego. Si el juego tiene muchas pantallas, lo que se suele hacer es un ScreenManager donde haces push de las distintas pantallas por las que vas pasando, especialmente si tienes opción de guardar niveles.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 May 2011 07:30 pm
gracias por responder Jorge,
el echo es que vengo hacer rato aprendiendo AS pero solo por hoby el echo es que mas que programacion me falta tecnica.
Pero si tengo una clase de documento esta tendria que tener alguna condicion para que inicie el contructor de la misma, se entiede? por que si no me empiezan a saltar errores obiamente por que estoy haciendo referencias a objectos que todabia no estan en el displayList.
osea mas que nada pido un empujoen en cuanto al encuaderando del juego osea depues que creamos todas las acc. como terminar de armarlo.
Gracias Saludos Maxx

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 28 May 2011 04:10 pm
El Document class se instancia ni bien se inicia Flash, no puedes impedir que se inicie. Si quieres manejar el momento en que se instancia, entonces no puede ser un document class, tiene que ser una clase distinta. Luego el document class puede acceder inmediatamente a lo que hayas puesto manualmente en el escenario (si en opciones de publicación, Actionscript, tienes marcado declarar automáticamente instancias en el escenario) sin que de error, si lo agregas por código, lo accedes luego de hacer el addChild, etc.
Si accedes a elementos que todavía no están en el displayList, el error es tuyo, debes esperar a que sean agregados al displaylist

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2011 05:24 pm
Lo que pongo en el escenario se agrega al DisplayList cuando la película se sitúa en dicho fotograma verdad? entre, si por ej
en mi classe main tengo

Código ActionScript :

package{
 pulbic class Main extends MovieClip{
         
public static var inicioJuego:Boolean=false;

 public function Main():void
{


}

private function CheKIn():void{if (InicioJuego)addEventListener(Event_ENTER_FRAME,LoadRef,false,0,true)}
private function LoadRef(evento:Event):void
{
char._piso=limit;
            char._items=helt;

         
         score_txt.text="";
         pizza=new Pizza();

         addChild(pizza);
         porcion00.tar=char;
         porcion00.Bandeja=ttr;
         pizzeta.tar=char;
         Score._scoreRef=score_txt
         

}


}}


Y en el fotograma que se encuentren dichos MC pondría Main.inicioJuego=true
estaría correcto por que lo hago de esa forma pero no va.
Gracias saludos Maxx

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 28 May 2011 05:53 pm
me falto en el constuctor addEvntListener(Event.ENTER_FRAME,CheKIn...

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 28 May 2011 10:40 pm
Ya encontre una solución y era mas simple de lo que me lo planteaba y fue simplemente poner todas esas referencias directamente en el fotograma y listo !!
Gracias Jorge por tu ayuda

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.