ComunidadID
Bienvenido a ComunidadID

¿Quieres promocionar tu videojuego?

Regístrate y publicalo 
en nuestros foros!


No estás conectado. Conéctate o registrate

Como crear un Fondo aleatorio

    

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 Como crear un Fondo aleatorio el 9/1/2016, 18:32

Moninagamer


Nivel: 17
Nivel: 17
Hola chicos, estaba reprogramando mi juego del Pong, y tuve la necesidad de crear un fondo aleatorio para que cambiases cada vez que se jugase.

Seguramente para la mayoria de la comunidad esto que traigo sea algo sencillo y realmente no este aportando nada nuevo, lo se, pero bueno tal vez a alguien que empieza como yo le pueda venir bien. Por cierto, tal vez no sepa explicarlo bien, sois libres de corregirme lo que queráis para que quede lo mejor explicado posible.  Ahi voy,

COMO CREAR UN FONDO ALEATORIO

Me creo una capa y la llamo BACKGROUND, fijaros en su indice, en mi caso es el numero 0

Luego añadimos en esta capa los fondos de pantalla que queramos usar en el juego, en mi caso son del tipo Tiled Background, y voy a usar 4, pero pueden ponerse cuantos queráis, los nombramos como queramos

   

Creamos una familia, yo la llamare BACKGROUNDS y tendremos algo asi,



Ahora creamos una variable local a la familia BACKGROUNDS, yo la llamare B_ID, sera numerica y su valor sera 0,




Ahora fijaros que cuando seleccionemos cualquier Tiled background o fondo, a estos podremos darle un valor numerico dentro de la variable B_ID, poner todos en 1




Y ahora la hoja de eventos






La logica de este procedimiento seria:

Cuando comience el layout, 
Sub-evento para cada miembro de la familia, donde comparo a cada miembro el valor de B_ID , cuando este sea igual a 1, se ejecuta la acción "crear objeto en la capa indice Nº (este Nº es lo que subraye al principio del tuto) en las coordenadas X,Y.

La verdad que lógica no tiene, pero funciona, y la aletoriedad es real, cada F5 que hagamos cambiara el fondo.

Espero sea entendible, y sobre todo os sea util,

Saludos

isaske5


Nivel: 29
Nivel: 29
yo no use el For each ni el .UID hasta después de mucho tiempo. xd
supongo que sabes programar de verdad?

bueno la cosa es que funcione, y funciona! muy bien! xD
pero yo lo haría mas simple.
bueno con background si seria bueno hacerlo como lo hiciste, pero esas imagenes no son para background, ya que solo usas 1 imagen completa, seria mejor 1 sprite.

-usar solo 1 sprite, y meter dentro las 4 imágenes y poner la velocidad de animacion en 0.
-luego en eventos digo, que al comenzar el sprite.animationframe = random(4) ---- ((del 0 hasta el 3))
eligira al azar uno de los frames.

Moninagamer


Nivel: 17
Nivel: 17
Joe Isaske, la verdad es que ahora que lo dices te tengo que dar la razón, con un sprite con frames de cada fondo seria mas sencillo.

Aghhhh diablos que simple lo haceis todo XD,en fin. Bueno, la verdad es que uso background porque el tamaño de la imagen es 1024x1024 y pienso que es muy grande para ser sprite, solo por eso.

4 Re: Como crear un Fondo aleatorio el 10/1/2016, 00:39

mataguiris


MODERADOR
MODERADOR
Buen ejemplo [Tienes que estar registrado y conectado para ver este vínculo], pero es cierto, la forma de [Tienes que estar registrado y conectado para ver este vínculo] es más sencilla de realizar.
Con respecto a los tamaños, realmente da igual si es tiledbackground o sprite, la imagen va a ocupar lo mismo, lo que hace tiledbackground es tilear el objeto, por tanto, a efectos de rendimiento cuenta como un solo sprite, en cambio si ponemos varios sprites cuentan como muchos, por eso es aconsejable tiledbackground para mapear, para para imágenes estáticas o que no es necesario, realmente da igual.

PD: Estoy un poco espeso, me he explicado como un libro en llamas  lol! Espero que se entienda.

http://mataguiris-games.weebly.com/

5 Re: Como crear un Fondo aleatorio el 10/1/2016, 10:59

Zonacas


ADMINISTRADOR
ADMINISTRADOR
Muy interesante el Tutorial [Tienes que estar registrado y conectado para ver este vínculo] para los que nos estamos iniciando en Construct 2, gracias por compartirlo  +R

Todos sabemos que en programación las cosas se pueden conseguir de diferentes formas, pero siempre habrá una mas optima, más rápida y que consuma menos recursos

Mi duda es cual es la más optima?


Yo creo que primero haría un random con una variable y según el numero que me diera el random , crearía en tiempo de ejecución la imagen,o tendría todas las imágenes creadas, haría el random, y después destruiría las imágenes que no uso, para ahorrar memoria.

Sería interesante hacer un pequeño experimento , con todas las propuestas y medir el rendimiento, supongo la diferencias en un proyecto pequeño son mínimas, y ni se notan pero cuando el proyecto va creciendo todas esas pequeñas diferencias luego si se notan, así que aunque se lograra una pequeña mejora es interesante saber cual es la más optima

hacemos el experimento?


_________________
http://oskystudios.wix.com/osky-studios

6 Re: Como crear un Fondo aleatorio el 10/1/2016, 12:35

Moninagamer


Nivel: 17
Nivel: 17
Ok yo lo hago, pero a parte del tamaño de la aplicacion compilada en disco por ejemplo ¿que mas cosas tendria k cotejar?

7 Re: Como crear un Fondo aleatorio el 10/1/2016, 14:44

Zonacas


ADMINISTRADOR
ADMINISTRADOR
La Memoria en uso ,FPS, CPU, Numero de objetos, el debugger trae opciones para esto , para comprobar todo esto

Simplemente con hacer una captura del debugger


_________________
http://oskystudios.wix.com/osky-studios

8 Re: Como crear un Fondo aleatorio el 10/1/2016, 21:00

Moninagamer


Nivel: 17
Nivel: 17
Prueba de random con 4 tiled background
[Tienes que estar registrado y conectado para ver este vínculo]

Prueba de random con 1 sprite y 4 frames
[Tienes que estar registrado y conectado para ver este vínculo]





Un detalle, haciendo las pruebas me he dado cuenta de algo sobre el este tutorial. Es mas sencillo aun de lo que creía, pues no es necesario crear ninguna variable local ni nada por el estilo, solo creando la familia y diciendo en eventos que genere el fondo construct 2 pone el grafico al azar de los que hay dentro de la familia. jejeje, cuando pueda modifico el tuto, pero seria tan simple como esto:



Los resultados aun no los he visto, solo he visto que varia un poco el tamaño en disco, he colgado los caps por si vosotros podeis analizarlo con mas detalle

9 Re: Como crear un Fondo aleatorio el 10/1/2016, 21:16

Zonacas


ADMINISTRADOR
ADMINISTRADOR
Las imágenes son un poco pequeñas  lupa  pero parece que no hay diferencia

parece que gana el Sprite en uso de CPU

1 SPRITE


4 BACKGROUNDS


_________________
http://oskystudios.wix.com/osky-studios

10 Re: Como crear un Fondo aleatorio el 11/1/2016, 00:23

mataguiris


MODERADOR
MODERADOR
A mi me funcionan igual...

http://mataguiris-games.weebly.com/

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

    

Permisos de este foro:
No puedes responder a temas en este foro.