Ver la versión completa : Jugar con el tamaño del jugador.
Buenas amigos , mi duda consiste en que quiero hacer que el personaje que estoy creando al chocar contra algo , aumente su tamaño , y no sé cómo hacerlo exactamente.
Había pensado en las declaraciones privadas ,al estilo :
process player()
private
tamano1,tamano2,tamano3 ;
BEGIN
// ...
If (collision(type enemigo)) ; tamano1 ; END
// ¿Ahora cómo hago para que se ponga el tamaño 2?De todas formas el método de las declaraciones privadas no me parece muy convincente :confused: .
¿Qué se os ocurre?
Saludos.
no se si te refieres a como seria el pseudocodigo o si existe algo en fenix para el tamaño. creo recordar en lo poco que se de fenix que hay una propiedad/variable privada que hace zoom o no, cuando dibuja un sprite, depende el valor que tenga.
Aiken
Me refiero a si existe algo en fenix para el tamaño ;)
Saludos.
Te pego del help file del fenix que estoy vaguete:
SIZE
Escalado del gráfico
DESCRIPCIÓN
Esta variable especifica el tamaño del gráfico. El intérprete escalará el gráfico en función del valor de esta variable, siendo el valor por defecto 100 (tamño 100% del original). Así por ejemplo SIZE=50 dibujaría el gráfico a la mitad de su tamaño.
Las variables de control de tamaño no tienen efecto en el MODO7, ya que el tamaño en ese tipo de representación se calcula automaticamente sobre el 100% en función de la distancia.
VEA TAMBIÉN
SIZE_X Escalado horizontal del gráfico
SIZE_Y Escalado vertical del gráfico
Resumiendo:
Crea una variable cualquiera por ejemplo NuevoTamaño=100;
Entonces declara dentro del loop que toque:
size=NuevoTamaño
...
If (collision(type enemigo)) ; NuevoTamaño=200 ; END // Por ejemplo para que el grafico duplique su tamaño o pon lo tipo incremento NuevoTamaño=Nuevotamaño+200 para que en cada colisión aumente el tamaño exponencialmente
Byes!
Um
¿Qué os parece esto? :
process personaje ()
private
int size=100 ; // Tamaño al 100%
BEGIN
// ...
IF (collision(type enemigo)) ; size++ ; END
// ...
Saludos.
Um
¿Qué os parece esto? :
process personaje ()
private
int size=100 ; // Tamaño al 100%
BEGIN
// ...
IF (collision(type enemigo)) ; size++ ; END
// ...
Saludos.
Que así de pronto debería funcionar, y que si funciona ya se por donde seguir programando lo mío. Así que prueba y comenta, que me interesa.
No tiene mala pinta pero recuerda que SIZE es una variable de servicio del propio FENIX y no la puedes/tienes que declarar... usala directamente tipo x, y o graph. Así que lo de Int size=100 te dara error.
Otro apunte: size++ aumentara tu grafico en un 1% osea muy muy poquito.
Lo mejor es que ahora que ya tienes la pista vayas probando varios codigos hasta que des con el que mejor te vaya.
Saludos
Hokutoy , tienes razón , lo de "int size" da error , he encontrado algo que compila bien.
program ejemplo ;
PROCESS player ()
Private
int tamano=size;
Begin
graph=1 ;
loop
IF (collision(type(enemigo)) ; tamano++ ; END
end
frame ;
end
end Espero que te sirva , Dardo . :brindis:
jean la montard
18/09/2008, 22:59
Di los resultados ,que yo quiero usar algo parecido para un proyecto
Yo ahora no puedo ver los resultados porque tengo algún bug en el juego y no me compila , pero según como esta el ejemplo que he puesto , debería de incrementar el tamaño en un 1% (porque el ejemplo sí que compila) , sé que es muy poco , pero para lo que yo busco me vale.
program ejemplo ;
PROCESS player ()
Private
int tamano=size;
Begin
graph=1 ;
loop
IF (collision(type(enemigo)) ; tamano++ ; END
end
frame ;
end
end
Mal, para que funcionase tendría que ser asi:
PROCESS player();
Private
int tamano;
Begin
graph=1;
loop
IF (collision(type(enemigo)) tamano++; END
size=tamano;
frame;
end
end
O si no te quieres complicar:
PROCESS player();
Begin
graph=1;
loop
IF (collision(type(enemigo)) size++; END
frame;
end
end
Entre otras muchas posibilidades
Edit: corregido error tonto
gracias Chipan por la correción.
Saludos.
SpaVampyre
19/09/2008, 12:22
chipan en tus codigos, el primero no inicializa tamano, y en ambos en el if abres tres parentesis cierras dos.
Porque estoy aburrido jejeje:
1- Size coge siempre el valor por defecto de 100 que es el 100% del tamaño del grafico original. No hace falta inizializarlo si no quieres
2- Es verdad... pero debe ser porque Chipan a editado el codigo propuesto por kiwiz que ya contenia el error mencionado.
Enga a ver si kiwiz o alguien menciona como les ha ido el codigo y para que lo estan usando.
Saludetes!
chemaris
19/09/2008, 12:58
depende como sea la collision haciendo solo size++ casi no va a aumentar, no se donde lo estas usando, pero normalmente una collision es muy corta y solo se increentaria un poco, por ejemplo puedes poner size=150 lo que haria un zoom 1,5x, o si el enemigo "muere" al colisionar para que quede bonito y lo hago poco a poco
PROCESS player();
Begin
graph=1;
loop
IF (collision(type(enemigo))) size++; END
IF (size!=100 and size <150)size++;END
frame;
end
end
luego si quieres volver al tamaño original tendrias que hacer mas o menos lo contrario
Ahora no puedo decir como funciona , porque mi juego no compila dado que tiene varios bugs.
He intentado compilar uno de los ejemplos de Chipan (el primero) y me da error :
Procedure name expected ("(")
Saludos.
Size es una variable local predefinida: quiere decir que TODOS los procesos ya tienen declarada por defecto dicha variable y puede ser leida por otros procesos.
Por cierto, despues de "process nombre_del_proceso (datos_de_entrada)" no hay ";" (es decir, no debeis escribir el punto y coma)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.