User Tag List

Resultados 1 al 4 de 4

Tema: Unknow identifier ("case")

  1. #1

    Fecha de ingreso
    Jul 2006
    Ubicación
    мadrιd - тѕcнernoвyl
    Mensajes
    4,658
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    50
    Agradecer Thanks Received 
    15
    Thanked in
    Agradecido 11 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    63

    Unknow identifier ("case")

    Buenas!
    Bueno pues tengo un problema :S

    Estoy probando a crear mi primer menu (si sale bien el definitivo del juego) y lo creo igual y siguiendo los pasos del tutorial (ese de 529 paginas xD)

    todo bien, corrijo puntos y comas y tal... voy a testear... ERROR!

    me dice: Error in file C:\... at line 42: Unknow identifier ("CASE")

    Este es el codigo que tengo

    Program ClockTower;
    //establecemos variable global
    Global
    int file1;
    //variables de las fuentes
    int select_fnt;
    int title_fnt;

    Int level=1;
    int selection;
    //variables del personaje
    int mychar_position_X=1516;
    int Mychar_position_y=1549;
    //proceso cursor
    Process cursor()
    Private
    int c;
    end
    begin
    file=file1;
    graph=5;
    x=70;
    y=140;
    c=3; //efecto tembleque

    selection=0;

    while (not key(_enter)and selection==0)
    if (key (_up)) y=20;end
    if (key(_down)) y=-20; end
    if (key(_esc))selection=2;end
    //efecto tembleque horizontal
    x=x+c;
    If (x>=80) c=-3; End
    if (x<=70) c=3; end
    frame;
    end
    switch(y);
    case 30:
    selection=1;
    case 100:
    selection=2;
    end
    end
    end
    End
    //inicio del programa
    Begin
    set_mode(320,240,16);
    set_fps(32,1);
    //se cargan las fuentes
    file1=load_fpg("menus.fpg");
    select_fnt=load_fnt("select.fnt");
    title_fnt=load_fnt("titlescr.fnt");
    Loop
    switch(level)
    case 1:
    put_screen(file1,605);
    //opciones a elegir en el menu
    write(select_fnt,0,30,4,"game start");
    write(select_fnt,0,50,4,"quick start");
    write(select_fnt,0,80,4,"continue");
    write(select_fnt,0,100,4,"ending list");
    //llamamos a la variable del cursor
    cursor();

    Loop
    if(selection==1) level=2; break;end;
    if(selection==2) fade_off();exit("gracias por jugar");end
    frame;
    end

    fade_off();
    delete_text(0);
    clear_screen();
    let_me_alone();
    fade_on();
    End

    loop;
    frame;
    end
    end


    case 2:
    //permite salir al menu en cualquier sitio (Esta tambien en case 3 y 4)
    loop
    if(key(_esc))
    //generar retardo
    while(key(_esc))frame;end

    //salir
    level=1;
    break;
    end
    frame;
    end
    fade_off();
    delete_text(0);
    clear_screen();
    LET_ME_ALONE();
    fade_on();
    end



    case 3:
    loop
    loop
    if(key(_esc))
    //generar retardo
    while(key(_esc))frame;end

    //salir
    level=1;
    break;
    end
    frame;
    end

    frame;
    end
    fade_off();
    delete_text(0);
    clear_screen();
    LET_ME_ALONE();
    fade_on();
    end


    case 4:
    loop
    loop
    if(key(_esc))
    //generar retardo
    while(key(_esc))frame;end

    //salir
    level=1;
    break;
    end
    frame;
    end

    frame;
    end
    fade_off();
    delete_text(0);
    clear_screen();
    LET_ME_ALONE();
    fade_on();
    end

    case 5:
    loop
    frame;
    end
    end
    end



    tiene tabulaciones y eso pero aqui no se ve...

  2. #2

    Fecha de ingreso
    Feb 2005
    Ubicación
    Estudiando (o no) en Leganés
    Mensajes
    2,052
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido 2 veces en [ARG:2 UNDEFINED] posts
    hellcross me ha preguntado por el MSN y al final hemos conseguido compilar el código así:

    Código:
    Program ClockTower;
    //establecemos variable global
    	Global
    		int file1;
    		//variables de las fuentes
    		int select_fnt;
    		int title_fnt;
    		
    		Int level=1; 
    		int selection;
      	//variables del personaje
      	int mychar_position_X=1516;
    		int Mychar_position_y=1549;
    //proceso cursor
    Process cursor()
    Private
    	int c;
    	end
    begin
    	file=file1;
    	graph=5;
    	x=70;
    	y=140;
    	c=3; //efecto tembleque
    	
    	selection=0;
    	
    	while (not key(_enter)and selection==0)
    	if (key (_up)) y=20;end
    	if (key(_down)) y=-20; end
    	if (key(_esc))selection=2;end
    	//efecto tembleque horizontal
    	x=x+c;
    	If (x>=80) c=-3; End
    	if (x<=70) c=3; end
    		frame;
    	end
    
    if (y == 30) selection=1; end
    if (y == 100) selection=2;
       end
       end
    //inicio del programa
    Begin
    		set_mode(320,240,16);
    	set_fps(32,1);
    	//se cargan las fuentes
    	file1=load_fpg("menus.fpg");
    	select_fnt=load_fnt("select.fnt");
    	title_fnt=load_fnt("titlescr.fnt");
    	Loop
    		if(level == 1)
    			put_screen(file1,605);
    			//opciones a elegir en el menu
    			write(select_fnt,0,30,4,"game start");
    			write(select_fnt,0,50,4,"quick start");
    			write(select_fnt,0,80,4,"continue");
    			write(select_fnt,0,100,4,"ending list");
    			//llamamos a la variable del cursor
    			cursor();
    			
    			Loop
    				if(selection==1) level=2; break;end;
    				if(selection==2) fade_off();exit("gracias por jugar");end
    					frame;
    				end
    				
    				fade_off();
    				delete_text(0);
    				clear_screen();
    				let_me_alone();
    				fade_on();
    					frame;
    			end
    		end   
    		
    		
                       if(level == 2)
    			//permite salir al menu en cualquier sitio (Esta tambien en case 3 y 4)
    			loop
    					if(key(_esc))
    						//generar retardo
    						while(key(_esc))frame;end
    						
    						//salir
    						level=1;
    						break;
    					end
    					frame;
    			end
    		fade_off();
    	  delete_text(0);
    	  clear_screen();
    		LET_ME_ALONE();
    		fade_on();
    		end
    		
    		
    		
                if(level == 3)
    			loop
    								loop
    					if(key(_esc))
    						//generar retardo
    						while(key(_esc))frame;end
    						
    						//salir
    						level=1;
    						break;
    					end
    					frame;
    			end
    	
    					frame;
    		end			
    		fade_off();
    	  delete_text(0);
    	  clear_screen();
    		LET_ME_ALONE();
    		fade_on();
    		end				
    		
    		
    		if(level == 4):
    			loop
    								loop
    					if(key(_esc))
    						//generar retardo
    						while(key(_esc))frame;end
    						
    						//salir
    						level=1;
    						break;
    					end
    					frame;
    			end
    	
    					frame;
    		end			
    		fade_off();
    	  delete_text(0);
    	  clear_screen();
    		LET_ME_ALONE();
    		fade_on();
    		end			
    		
      if(level == 5)
    			loop
    					frame;
    			end
    		end
     end
    Parece ser que la version de Fenix no soporta bien los switch/case, o que estaban mal puestos pero cambiandolos por if ya compila bien el codigo.

  3. #3

    Fecha de ingreso
    Jul 2006
    Ubicación
    мadrιd - тѕcнernoвyl
    Mensajes
    4,658
    Mencionado
    3 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    50
    Agradecer Thanks Received 
    15
    Thanked in
    Agradecido 11 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    63
    Arreglado, gracias ZenitraM

  4. #4

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,180
    Mencionado
    247 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    670
    Agradecer Thanks Received 
    1,845
    Thanked in
    Agradecido 1,263 veces en [ARG:2 UNDEFINED] posts
    Perdon por no responder antes, pero como no suelo pasar por aqui, sino por el de gp2x... ^^U
    En fin, Hellcross, Fenix si que soporta switch/case, pero en lugar de escribir:
    switch(y);
    case 30:
    selection=1;
    case 100:
    selection=2;
    end
    end
    end

    deberias haber escrito:
    switch(y);
    case 30:
    selection=1;
    end
    case 100:
    selection=2;
    end
    end

    Cuando acaba un case debe cerrarse antes de abrir otro, y no al final

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •