ComunidadID
Bienvenido a ComunidadID

¿Quieres promocionar tu videojuego?

Regístrate y publicalo 
en nuestros foros!


No estás conectado. Conéctate o registrate

Dudas creando un programa de graficos 2D

Ir a la página : Precedente  1, 2, 3, 4, 5, 6  Siguiente

    

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

matriax


Nivel: 14
Nivel: 14
Recuerdo del primer mensaje :

Estoy haciendo un programa de graficos 2D, no va a ser ningun photoshop ni nada, es algo para mis necesidades pero que si alguien le resulta util lo subire gratis y demas.

Ya se puede crear el primer sprite un circulo, cambiar de "flat" a "light" y exportar a .png con su alpha.

El problema es que no me aclaro en como seleccionar/modificar las propiedades de un objeto cuando pulso un boton. Se que es una tonteria pero pero ahora mismo me he quedado bloqueado XD.


Edit: Ha sido subirlo seguir probando cosas y a los 5min he dado con la solucion, que rabia cuando ocurren esas cosas XDDD. Estaba usando la funcion "general" de comparar valores en lugar de la funcion de la familia de sprites para comparar la instancia del objeto Lengua .

Lo podeis descargar de aqui el programa:
[Tienes que estar registrado y conectado para ver este vínculo]

De todas formas si veis algo que esta mal hecho o se puede mejorar soy todo oidos! Guiño


Edit2: He encontrado otro error, si hay varios circulos uno encima del otro, cuando hago click en el que esta mas al frente da igual siempre selecciona el de mas al fondo ¿? Como solucionao eso? :S



Última edición por matriax el 19/8/2016, 11:57, editado 1 vez

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
No me gusta mucho lo de Wait X seconds pero si soluciona los problemas y en caso de añadir codigo solo lo hay que hacer un sitio bienvenido que le vamos hacer.

Lo del Z-Index no deberia de ser tan dificil, en lugar de con la lista y el array del plugin, voy a intentar ponerlos simplemente en un textarea o similar.

Quiero decir. el Zorder esta ordenado y se ordena automaticamente al cambiar o borrar un sprite por lo que internamnete siempre esta bien ordenado, el problema es volcar esos datos al maldito array del Z-Indez y que los muestre. Asi que voy a simplificar el proceso y con un textarea o lo que sea voy a intentar mostrarlos. En caso de que pueda mostrarlos correctamente luego seria poner el contenido del textarea al Z-Index o algo XD.


Zonacas si estas leyendo esto mira a ver si le puedes echar un vistazo al Z-Index y el array haber si eres capaz de hacerlo funcionar Lengua

-----

He visto tanto lo del dictionary como lo del XML,etc... que comente para poder guardar datos. El problema viene cuando quieres guardar en un archivo una imagen no predefinida :S .

Supongo que o hago el programa solo para cosas predefinidas o lo enfoco como prototipo de todo lo que podria hacerse y buscar alguien con conocimientos de UNITY o similar para hacer el programa bien con todas las caracteristicas que tenia pensado.

-----

En fin voy a ver si consigo al menos mostrar el Zorder en un textarea a pelo, y hacer algun intento de guardado en un archivo, ya sea xml o lo que sea. Si no dejare lo del gurdado y me centrare en meter opciones graficas hasta donde llegue y que sirva como prototipo de idea.

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Aqui solucionado con textarea:


[Tienes que estar registrado y conectado para ver este vínculo]


Cojeis un sprite y lo moveis arriba o abajo, en el textaea aparecera el orden del objeto al momento.

No sabia (o es que no se puede) cambiar el color del texto seleccionado o agrandar solo ese asi que para destacarlo lo he puesto como en una cajita hecha con guiones XD, es un poco cutre pero queda claro Lengua .


Ahora teniendolo funcionando perfectamente en el textarea voy a ver si puedo de alguna forma convertir la idea o pasar esos datos al arrays de la lista deplegable. SI no como digo pasare al tema de guardar valores.

https://kronbits.itch.io/

Zonacas


ADMINISTRADOR
ADMINISTRADOR
No puedo ver que estáis haciendo , no estoy en mi PC shipwrecked

Cuando vuelva de vacaciones le echare un vistazo, supongo que para entonces ya lo habréis arreglado jeje

Según lo que voy leyendo el programita tiene muy buena pinta, seguid no os rindáis!! caballito


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

matriax


Nivel: 14
Nivel: 14
Joder! Acabo de conseguir que el Z-Index en el array del Menu desplegable funcione correctamente, solo me falta que se actualize al momento, solo eso! XD

Le tengo puesto every tick y demas, pero no funciona porque cada tabla del menu aparece actualizada cuando es creada, por lo que cuando el menu se hace pequeño y se agrande salen bien actualizados.

Asi que "solo" queda ver como actualizar la maldita lista Lengua


EDIT: Ya lo he solucionado, tiene un evento llamado "Refresh List" y listo.




Ahora estoy intentando que se seleccione en el menu index el sprite seleccionado Lengua

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Listo!



[Tienes que estar registrado y conectado para ver este vínculo]


EL sprite seleccionado ahora aparece resaltado en el menu Z-Index el cual se actualiza segun la posicion Z-Index de los sprites.

Por otra parte he añadido la posibilidad de renombrar los sprites. EN la caja del nombre simplemente introducir lo que sea y darle a intro y cambia el nombre el cual tambien cambia en el menu Z-index muahahah.

El unico "fallo" por llamarlo asi es que mientras estas renombrando el archivo el Zindez no se resalta porque no coincide ningun nombre hasta que le das al intro y se actualiza, lo cual es logico y podria dejarlo asi pero voy a intentar ya que estoy en racha que se actualize al instante.

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
bravo!!! funciona bien!

emoticono25

tengo una duda, veo un evento donde le cambias el color al texto a amarillo, pero no veo el evento donde vuelve a ser blanco??

------------

sera posible que puedas agregar un nuevo sprite?
solo 1 para empezar a buscar alguna forma de ingresar nuevos Sprites desde el programa, exportar, guardar etc.
aunque estoy pensando que no sera posible agregar nuevos, pero quizá exista algún tipo de plugin por ahí.

matriax


Nivel: 14
Nivel: 14
No necesita el evento para hacerlo de nuevo en blanco porque al ejecutarse "every tick" y crear varios "text_names" los cuales son originalmente blancos, pone de amarillo solo el que se necesita. Al siguiente tick crea 5 textnames blancos y pone de amarillo solo el seleccionado,etc... Y lo mismo seria si pongo OnCreated/Drag&Drop solo porque al tener puesto "refresh list" borra las lineas y las pone de nuevo.

----------------

Sobre nuevos sprites Rexrainbox me contesto el otro dia y me dijo esto:


RexRainbox escribió:Sprite object has "action:load image from URL", therefor you might save the URL of texture and other properties in a JSON structure.
My hash table plugin supports that feature -- push a dictionary (or a JSON) into an array (sample capx.

Pero eso de Arrays, Dictionary, JSON,etc... solo de pensarlo ya me tira para atras XD.

En caso de ser mediante URL claro esta solo habria que guardar la direccion de la imagen y al sprite cargarla mediante las acciones. Lo jodido es eso de guardarla en un "hashtable" con dictionary y arrays XD.


De todas formas empezar por lo basico, con sprites predefinidos. Vamos que al menos puedas importar/exportar la posicion y propiedades ya sean de circulos u otras cosas que se metan en el programa que es lo que voy a ver como hacerlo hoy ya que me he quitado el z-index de encima.

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Aunque no sea como queria al menos ya tengo algo.

Con S se guarda el estado actual de la ventana con todo. Y con "L" lo carga donde lo dejastes. Todos los sprites, posicion Z-Index, opacidad TODO.


[Tienes que estar registrado y conectado para ver este vínculo]


Lo que me faltaria es ver como guardarlo en un archivo en lugar de guardarlo directamente en una carpeta y fichero predeterminado.

Ademas si se pulsa "I" se importa una imagen externa, de internet. Lo malo es que esta se aplica a todos los sprites y no al seleccionado y que cuando guardas y vuelves a cargar aparece el circulo y no la imagen externa.

Lo de la imagen externa supongo que metiendo una instance variable llamada "url" y que meta la direcion ahi cuando la importas de forma que cuando cargue de nuevo aunque la imagen no este sepa de donde cogerla.

Tambien el save tarda un poco y queda la APP bloqueada, tal vez con el guardado en un fichero manual no haga eso no se, aunque claro esta al tener que guardar tantas cosas y no solo sprites sea el problema.

En fin algo es algo! Very Happy

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
La madre, normal que tarde tanto en salvarlo, ocupa 79mb el save1.slot XDDDD

Estoy mirando que los sprites tienen un "Set from Json" que supongo que seran las propiedades del objeto a cargar y a lo que se referia rexrainbox en su mensaje.

Voy a ver si consigo hacer funcionar algo de esa manera porque con la actual 80mb por archivo no es viable, y eso que no hay nada de graficos XD.

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Ya se pueden guardar/cargar la composicion que estes haciendo durante la ejecucion del programa y lo hace al instante.

[Tienes que estar registrado y conectado para ver este vínculo]


Tambien puedes exportar la composicion a json la cual solo ocupa unos pocos kb.

El problema es ahora al cargar el .json, como le digo que objetos crear y a cual de ellos aplicarle segun que estado de sprite, solo falta eso! Lengua

Bueno y descubrir como abrir un fichero y cargarlo, que como no se lo carga desde una direccion por defecto que tengo en el disco duro "F:\Programacion\2dProgram\betas\sprites.json" , se como abrir el dialogo de abrir archivo, pero cuando lo abres no se como pasarle el contenido al array asi que al importar lo leo directamente.

Me da que me voy a quedar a las puertas , al menos hoy, lo intentare una hora mas a ver si se me ocurre algo y si no ya mañana que estare mas fresco le dare otra oportunidad o si me contestan de los foros de scirra: [Tienes que estar registrado y conectado para ver este vínculo]

A no ser que Isaske en un golpe de inspiracion lo consiga mientras duermo y mañana cuando me levante tenga una bonita sorpresa Lengua

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
en el ultimo archivo se exporta un Json pero no tiene nada guardado dentro.

y en el penultimo archivo veo que se guarda un archivo en una carpeta llamada Test..
donde esta? que no la encuentro en ningún lado xd

matriax


Nivel: 14
Nivel: 14
Vale fallo mio, cuando creas objetos primero tienes que darle a guardar (pulsa la tecla S) y luego E para exportarlo. Tendria que aplicar que cuando le das "E" de exportar ejecute la funcion de salvar el contenido en el array y luego exportar el archivo, si no la gente que no ha guardado y exporte le pasara lo mismo.

En mi caso sin salvar si que exporta el .json y tiene esto:
Código:
{"c2array":true,"size":[10,1,1],"data":[[[0]],[[0]],[[0]],[[0]],[[0]],[[0]],[[0]],[[0]],[[0]],[[0]]]}

No se si con nada te refieres a eso o a nada escrito XD.

Sobre el ejemplo del savestate lo guarda en la carpeta del NW.js, pero pasa de ese ejemplo.

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
vale si dentro se guardan todos los datos basicos de cada Sprite,
ahora como dices falta saber como utilizar ese Json para posicionar cada sprite..
cosa que no tengo idea XD

matriax


Nivel: 14
Nivel: 14
Aqui la ultima version con el arreglo del save al exportar:
[Tienes que estar registrado y conectado para ver este vínculo]


Yo acabo de tener una idea pero me voy a dormir ya, Argggg! XD

Ahora mismo se guarda el valor del sprite en el ArrayX. OK.

La idea es guardar en el ArrayY el typo de sprite. Como veras la familia sprite tiene una nueva instancia llamada "type". EN este caso tenemos Circle y Square. Asi que a la hora de guardar tambien habria que hacer un Array.Y>sprite.type.

A la hora de cargar el archivo para crear los sprites habria que decirle que:

Para cada elemento Y del Array by Zorder que sea igual a:
Circle  > me creas un sprite de circulo
Square > Me creas un cuadrado

De esta forma creara tantos objetos y de cada typo con el Zorder correspondiente, y luego hacer el X para que en cada objeto le ponga las variables! Very Happy . Si no igual algo parecido deberia de funcionar XD.


Pero claro yo me he quedado sin tiempo ya, mira si puedes aplicar la idea si no mañana lo intentare yo.

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
hay un problema a la hora de importar el Json,
si lo inicias en modo debug y ves el array, este nunca carga el Json..

--------------------

logre cargar el Json en el array con el objeto Ajax, aunque este no sirve con rutas como
"sprite.json" bueno si.. pero lo busca dentro del archivo construct xD no desde fuera..

necesita una ruta absoluta como C:\Users\IsaacPC\Desktop\sprite.json
pero no importa porque no se necesitar guardar la dirección en ninguna parte,
al presionar "I" se abre un buscador de archivos que solo acepta .json
y al darle en OK obtengo la ruta absoluta y el Ajax abre esa ruta.
y cuando carga el Ajax le pasa el Json al array.
el array carga perfectamente.

falta hacer que se creen los sprites y se acomoden en su lugar..
-------------

Lo logre!! 

► El evento que tenias que Seteaba el Size X del array según cuantos sprites habían..
por culpa de ese evento el array cuando importaba el Json siempre tenia 0 posiciones XD
ese evento lo moví al Save.. porque si es Util pero solamente a la hora de guardar.

Al crear un sprite, su Zorder lo seteas con Sprites.PickedCount,
y funciona bien, lo extraño es que no funciona bien con un Sprites.Count, no detecta el primer sprite.. bueno lo extraño es que al LOAD necesita usar el Sprites.Count-1 , el Sprites.PickedCount no funciona en el load.. que cosas XD


Los sprites se posicionan bien, solo falta agregar una forma para crear un circulo o un cuadrado, seria mas fácil si las imágenes estuvieran en el mismo sprite, 
quizá sea mejor primero ver como agregaras nuevos sprites antes de seguir esto,
lo mejor seria encontrar una forma de agregarle un Frame extra a un sprite, y cargarle una imagen al Frame, así seria mucho mas fácil XD

[Tienes que estar registrado y conectado para ver este vínculo]

matriax


Nivel: 14
Nivel: 14
Al igual me estoy perdiendo algo pero.... Es necesario esos loop.width, wait seconds,etc.. ? Porque creo que solo habria que decirle cuantos sprites crear y luego cargar sus propiedades ¿? Voy hacerlo desde mi version a ver si consigo lo mismo(Es que odio los Wait X seconds XD) .


-----


Pues la idea era tener diferentes instancias del sprite pero como dices si estuviera todo en un sprite seria mucho mas facil porque no se necesitaria guardar si el tipo de sprite es un circulo o un cuadrado ya que estaria integrado en las propiedades del sprite y nos ahorraria mucho trabajo, asi que lo voy hacer como dices ya que no veo ahora mismo que ventaja habria en hacerlo con instancias diferentes.

Y para graficos importados seria cargarlo en 1 frame de una animacion llamada "imported" o "clipboard_img" o lo que sea. Luego faltaria ver como integramos la url o el contenido de la imagen al .JSON pero bueno vayamos poco a poco.

-----

Asi que si solo hay que saber cuantos sprites crear y luego cargar su estado yo creo que esta hecho, pero voy a intentar hacerlo simple sin tantas cosas.

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Ya puedo cargar/salvar/importar/exportar todo tipo de sprites ya sean circulos, cuadrados o lo que me de la gana que lo va a mostrar todo correctamente.

Al final he puesto los dibujos en un unico sprites y separados en animaciones con el nombre: Circulo, Cuadrado o lo que vaya a a ser. Luego para el tipo de circulo si es con gradient o lo que sea se lo pondre en los frames. Espero que no haya ningun problema luego si quiero añadir mas cosas.

---

Lo que me queda es el tema de al pulsar I(importar) abrir el dialogo para cargar el fichero. Voy a ver si hay alguna forma de hacerlo sin Ajax ni darle tantas vueltas.

Cuando tenga esto lo subo.

-----

EDIT:
Aqui el programa:
[Tienes que estar registrado y conectado para ver este vínculo]
Aqui una composicion que he creado ¿Que pone? Lengua
[Tienes que estar registrado y conectado para ver este vínculo]

No he encontrado otra solucion al ajax para leer el contenido del archivo seleccionado y he acabado añadiendo el plugin.


-----

Lo proximo es ver como guardar la imagen de una URL que supongo que habra que meter otra instance en el sprite llamada URL y meterla ahi y decirle que si el sprite tiene un texto diferente a "" en URL cargue la imagen con la direccion de esa variable.

Y por ultimo quedaria importar imagenes ya sea mediante el clipboard o abriendo el dialogo de seleccion de fichero y ver como se supone que grabamos esa imagen dentro del .json, no se si en hexadecimales o y luego pasarla a imagen o a saber.

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Pues creo que conseguido Lengua

Con el ultimo programa intentad cargar este fichero:
[Tienes que estar registrado y conectado para ver este vínculo]


Se deberia de cargar una foto...

La imagen esta guardada en formato de texto Base64, no he encontrado ninguna forma de hacerlo en binario por lo que las imagenes guardadas pesaran un 25% mas. He probado con jpg y con .png y sin ningun problema.

El programa actual, el ultimo que he puesto solo carga los valores, pero con el plugin de PODE puedo extraerlos de una imagen en C2 para luego ser cargada:
[Tienes que estar registrado y conectado para ver este vínculo]


Parece facil, veremos Lengua

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
no puedo abrirlo no encuentro el plugin clipboard  emoticono11

matriax


Nivel: 14
Nivel: 14
He actualizado sin el Clipboard plugin.
[Tienes que estar registrado y conectado para ver este vínculo]




Edit: Pues no el clipboard plugin era de terceros, es este:
[Tienes que estar registrado y conectado para ver este vínculo]

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
No se si se podra pero estoy intentando que si tienes una imagen en el disco duro puedas moverla a la ventana del programa y que aparezca, seria un puntazo.

Tengo esto:
[Tienes que estar registrado y conectado para ver este vínculo]

Vamos que on Filedropped me creaas un sprite y el contenido me lo metes en la variable Base64. No funciona porque los datos que mete es "Binary Data" no Base64.

Asi que o se encuentra la forma de pasar esos datos a Base64 o directamente esos datos binarios crear la imagen.


Necesitaras este plugin tambien que sirve para extraer/convertir  una imagen a Base64.

[Tienes que estar registrado y conectado para ver este vínculo]

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Madre mia que simple era, y yo mareando la perdiz XD :

NWjs On file dropped--------------Sprite load image from NWjs.DroppedFile

Aunque claro esta para guardar la imagen supongo que no quedara otra que hacerlo en Base64.

https://kronbits.itch.io/

isaske5


Nivel: 29
Nivel: 29
no he tenido mucho tiempo, ya me perdi XD no entendí muy bien como guardas la imagen xd
haber cuando subes el ultimo capx con las nuevas actualizaciones para ver.
---------

pone LOL y en la segunda una imagen con un perro usando lentes XD

interesante como lee la imagen de esa forma  ojos

matriax


Nivel: 14
Nivel: 14
Jaja si! lo siento he estado tocando tantas cosas y queriendo meter otras que tengo ahora mismo 4 aplicaciones de construct2 abiertas con ejemplos de los problemas o cosas a implementar Lengua .


---

Ya lo tengo practicamente todo claro, lo unico que me falta o me faltaba(Tengo una solucion muy poco elegante XD) es que los sprites al compartir todos la misma estructura de imagenes, si importabas imagenes del exterior siempre se ponian todas con la ultima imagen importada.

La solucion a este problema que he encontrado es que en la animacion "imported"(para imagenes cargadas de internet,pc o con filedropped) es antes que nada crear un gif de no se 1000 frames y cargarlos en esa animacion. Luego a la hora de importar imagenes y ponerselas a un sprite decirle que cambie hacia "animacion="imported" , frame correspondiente al Zorder del sprite y ahi meta la imagen.

Es muy poco elegante pero creo que funcionaria y no se me ocurre ahora mismo ninguna otra forma a no ser que Ashley, uno d elos programadores añada un opcion que he comentado en los foros de poner una propiedad a los sprites tipo "Share image texture with other instances: Yes/No". Con eso diciendole que no, varias instancias del mismo sprite podrian tener diferente imagen sin hacer malabarismos.

Cuando tenga esta ultima cosa clara, es añadirla al .capx del sprite_save_state y que todo funcione. Luego es añadir ese codigo al programa grafico y que funcione.

Vamos, que ahora mismo es aclarar como manejar las imagenes importadas y luego trabajo de chinos juntandolo todo y limpiando para que quede todo claro y que sea facil de editar :S

------------------

Jajajaj correcto! Bien FUNCIONA!! LOL y el perro jaja ;D

https://kronbits.itch.io/

matriax


Nivel: 14
Nivel: 14
Poco a poco las cosas van estando implementadas Lengua

Actualmente la estructura de la informacion es .JSON pero he tenido que cambiar la forma de guardarla porque por lo visto no permite almacenar/descargar mas de 2mb. Asi que para guardar lo hago con el NW.Js en lugar del Browser "Invoke String" etc... con la extension .MTX (De MaTriaX XDD)

Comentar tambien que el tema de la codificacion/decodificacion de Base64 es para morirse XD. Para un proyecto de 5mb tarda 8segundos en abrir y cargar las imagenes Sad . Ademas hay que tener en cuenta de Construct2 o NW.js(no se yo de quien es la culpa) es "single-core" vamos que si tu procesador tiene 4 nucleos de 3ghz que suman 12ghz, da igual, solo trabaja uno. Y el que tenga 6 o los nuevos de 8 o 10 pues imaginaros el desperdicio de rendimiento Sad .

Tendre que crear otro tipo de exportacion llamada "local" para la gente que trabaje con archivos del PC y guardar solo la ruta. Y luego una exportacion para aquellos que quieran compartir el proyecto. La imagen del canvas la guarda como .png facil, lo que me refiero es a la composicion de donde esta cada cosa con sus propiedades, los archivos como .PSD de photoshop y demas.


Tengo implementado de momento solo el FileDrop para cargar imagenes y funciona perfectamente.

Ahora mismo estoy intentando Copiar y Pegar(Control+C/Control+V) un objeto(tenga o no imagen importada) y me esta dando mas problemas de los que pensaba aunque espero solucionarlo hoy.

Si todo va bien el lunes subire lo que tengo para que podais trastear Guiño .

https://kronbits.itch.io/

Contenido patrocinado


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

Ir a la página : Precedente  1, 2, 3, 4, 5, 6  Siguiente

    

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