Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - XÑA

#1
General / Actualizar certificados de IOS
06 de Abril de 2021, 05:37:23 PM
Hola a todos. tengo una aplicación hecha en Xamarin y ahora me van a caducar dos certificados: el de publicación y el certificado push.

Lo cierto es que no quiero cargarla, y que la app deje de funcionar o que no la pueda actualizar. Tengo un par de preguntas, a ver si alguien puede ayudarme.

Cuando quiero renovar el certificado de Publicación ( el que incluye el nombre del desarrollador), sólo me aparece la opción de Revoke, y crear otro certificado. Si creo otro certificado...¿Sigue entendiendo que es la misma app?

Lo mismo ocurre en el certificado push. Y por lo que entiendo en el caso del certificado push lo que tengo que hacer es crear una nuevo, pero utilizando la msima lógica de Revoke/Create.

¿Cómo debo enlazarlo después con el notiffication hub de Azure?

Gracias
#2
General Programadores / El Garbage Collector en unral
10 de Noviembre de 2017, 01:45:59 PM
Buenas, estoy programando en Cpp en Unreal y no entiendo muy bien como funciona este tema. He leido la documentación, pero no me queda nada claro.
Veamos, si yo creo un actor con SpawnActor, y quiero que no se lo cargue el Garbage Collector...¿Cómo lo tengo que hacer? Tengo que añadirlo a un TArray?
:(
#3
Inteligencia Artificial / Steering behaviours y límites
03 de Febrero de 2017, 01:40:12 PM
Hola a todos. Estoy haciendo el Wander y me va genial, pero quiero que el personaje no se salga de una zona delimitada por un cubo.

Puedo usar obstacle avoidance en cada lado del cubo, pero estoy convencido de que sea la mejor opción...

¿alguna idea?
#4
Código de la Semana / Video texturas con transparencia en Unity 5
18 de Diciembre de 2016, 07:44:34 PM
Hola a todos. Hace nada he tenido que resolver el problema de utilizar un vídeo con una transparencia y quería compartirlo, por si alguien tiene esa necesidad.

El vídeo tiene que tener un color que identifique la parte transparente y la técnica es utilizar un Shader para detectar ese color y modificar el Alpha. Pero no es tan sencillo, claro :)

En mi caso tenía un objeto UI, un Raw Image, que es el que recibe la texture movie. Eso no os da problemas, hay ejemplos en la web, el problema viene con el shader.

Bien, en el caso del RawImage, yo he añadido un Unlit:


Shader "Unlit/videoAlpha"
{
// Hay que asignar en el materail la opción Transparent en Render Queue
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_AlphaMult ("Multiplicador Alpha",Range(0,1)) = 1
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100

Pass
{
Blend SrcAlpha OneMinusSrcAlpha

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
#pragma multi_compile_fog

#include "UnityCG.cginc"

struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};

struct v2f
{
float2 uv : TEXCOORD0;
UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};

sampler2D _MainTex;
float4 _MainTex_ST;
float _AlphaMult;

v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}

fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
// Si el color rojo supera 0.9, entonces hago que el Alpha cambie.
if (col.r > 0.9) col.a = 1-col.r;
// Multiplico por una constante para poder forzar que sea más o menos transparente.
col.a *= _AlphaMult;
// apply fog
UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}


Y ahora lo que hay que hacer es crear un material, asociar este shader al material y este material al objeto UI RawImage!!

Y todos diríamos...ya está!!! Pues no!!!!!! Hay que hacer una cosita más que es lo que me ha costado !!!

Os vais al material y cambiais el RenderQuee a 'Transparent' ....e voila!!!!

En mi caso, lo que tenía que tener transparencia era el color blanco, y el resto es gris, por eso he utilizado el: color.r>0.9 , pero eso ya depende totalmente del vídeo.

Disfrutadlo!!
#5
General Programadores / Unity 5.5 y Collaborate
15 de Diciembre de 2016, 09:37:17 AM
Hola.... Acaba de salir Unity 5.5 e incluye una opción muy buena que es 'Collaborate'.

Lo importante es que no tienes que hacer nada, simplemente lo activas en 'Services', das el correo de los que quieres que participen, y sólo tienes que publicar o descargar...

Eso sí, al modificar la escena, si hay colisión, te pide una aplicación para hacer de 'Diff'... :( Y yo no tenía nada instalado así que no puedo contaros....

Así que de momento...Genial!!! :)
#6
General Programadores / Unreal Engine 4
10 de Diciembre de 2014, 09:11:57 AM
Buenas, ayer pagué los 20€ y me descargué el Unreal Engine 4. Había empezado a trabajar con el 3 y me pareció tan complicado y difícil que lo dejé. Pero lo cierto es que el 4 es realmente alucinante. Bueno, sólo he hecho dos tutoriales, pero la parte que permite programar en C++ sobre Visual Studio Community(GRATIS) está perfectamente integrada, y eso es algo que yo buscaba.
Dudaba mucho entre meterme a tope en Unity o en Unreal, pero un amigo mio me enseñó un juego hecho con Unreal con BluePrints( programación visual, sin código), y lo cierto es que estaba espectacularmente bien. Así que decidí darle un "chancesito"  :)

Ya iré contando cositas... ;)
#8
Programación gráfica / HeroBall free disponible en Google Play!!
06 de Septiembre de 2014, 10:15:30 AM
Uff, por fin un jueguecito en google play. Se llama HeroBall, y está ahora mismo disponible la versión Free, con unos pqueños Ads.
El juego es uno de estos casuales de pasar niveles. Llevas una bola que diriges para poder llegar a la meta. Hay obstáculos típicos, cañones que te disparan, rayos lasers.... En fin... Un montón de niveles, alguno super-complicado!!!!

Está en Google Play y en Slideme.org:

http://slideme.org/application/heroball

Y ahora la parte técnica:

Programado en Corona. Dios mio con este SDK lo he pasado fatal. Cambios y cambios y cambios. El último hace unos meses, cambió toda la parte gráfica. Pero bueno, es gratis publicar para Android y en teoría funciona también en iOS, aunque todavía no lo he podido probar. Esta versión que sale ahora es para pulir fallos, así que supongo que una vez esté todo resuelto se publicará la de iOS.

Corona utiliza lua, que para mi es lo peor que podría existir en este mundo. Un lenguaje creado para hacer cosillas de script, se convierte en el lenguaje de moda hoy en día para programa juegos con script. Y NO ES UN BUEN LENGUAJE. Pero lo peor de todo es el debug, que tenía que trabajar a base de PRINT!!  :( Imaginaos que os pete o que queráis depurar una variable........ Sencillamente patético.....
¿Entonces porqué Corona os preguntaréis? Pues porqué es gratis, tiene la física integrada y hay que escribir muy poco para poder hacer un juego. Además no tenía experiencia y probé unos cuantos y este era el único que cumplía estos requisitos.... Y Corona tiene MUY BUENOS TUTORIALES Y DOCUMENTACION.

Dos años en desarrollo. Alucina!!! Y el grafista me contactó aquí, en stratos!!!  :)
Al principio muy rápido el desarrollo, pero a la hora de editar los niveles me quise montar un editor. Lo programé en C# con DevExpress y cuando lo tenía casi listo para ya poder colocar los objetos y todos, estos de DevExpress cambiaron la licencia y al mes caducaba y no podía volve a usarse!!!  :o  Tuve que dejarlo...
Así que eso no paró bastante el ritmo. Aparte, los dos trabajábamos, lo de siempre. Pero fijaos que no desistimos y la final aquí está.
Se desarrollaron 12 niveles más de tutorial, que al final no se han añadido porqué se consideraba que no eran necesarios... Eso también alargó el proceso...

TODOS los gráficos ( salvo las pantallas de fondo de cada nivel) del juego caben en una pantalla de 1024x1024. Así que fijaos si se pueden hacer cosas con pocos gráficos. Bueno, a ver, hay bastantes, pero me refiero a que no es necesario matarse gráficamente para conseguir algo. Yo creo que una parte importante de este juego es la edición de los niveles y el testeo. De todo esto se encargaba el grafista.

Bueno, evidentemente seguremos haciendo cosas, porqué si hemos hecho HeroBall, podemos hacer más cosillas. 8)

Espero que os bajéis el juego y os paséis al menos un nivel, aunque para mi el primero es demasiado difícil... ;)
#9
class base
{
public virtual Method()
{
}
}

class base1:base
{
public override Method()
{
}
}

class base2:base1
{
// No quiero aquí que pueda hacer esto
public override Method()
{
}
}

¿Se puede hacer?
#10
Programación gráfica / Control WPF D3D11
15 de Junio de 2014, 01:30:40 PM
Buenas a todos. Como ahora estoy programando en WPF, echaba en falta un control que pudiera trabajar con DX11. He estado trabajando un par de meses en ello, y parece que ya tengo uno funcional.
Utiliza la técnica de un Render Target DX9 compartido para comunicarse con WPF, pero todo el renderizado es sobre DX11, por lo que podemos obtener las ventajas de ambos mundos.
Por desgracia el 'Render' está limitado al refresco de pantalla, puesto que parece que WPF renderiza sincronizándose con la pantalla, pero es perfectamente "smooth", aunque no nos da los FPS que da wn Windows Forms, claro.
La solución está formada por varios proyectos:
DX11 LowLevel, programado en Managed C++, que ( por desgracia) necesita que descargues SDK June 2010 DX, puesto que utiliza partes de DX9 para el enlace
Engine High Level, en C#. Este es el digamos "motor" que utilizas.
Control WPF, en C#. Aquí está el control
Material library, en C#. Está separada puesto que es independiente del motor de bajo nivel y del engine.
DX9 control, en C#. El objeto que enlaza WPF con DX9

Forms example, en C#. Un ejemplo de la libería para Windows Forms con un control de Windows Forms.

Actualmente, lo que tengo son dos controles en una misma ventana, gestionando perfectamente el resize. Con carga de texturas diffuse, un scenegraph, y luz omni.

Estaba pensando en ponerlo a disposición e la gente, pero como después empiezan a surgir dudas y dedicas tiempo a ello, me preguntaba...

¿alguien tiene interés en ello?  ???

Gracias!!
#11
Hola amigos, a ver que os parece esto.

Yo tengo un método virutal

public virtual void OnDraw()
{
}

Y ahora lo heredo en otra clase

public override void OnDraw()
{
   base.OnDraw();
   
    Cositas
}

Bien, mi duda es...¿Hay alguna norma que te diga que es mejor llamar al base al principo o al final?

Al final sería así:
public override void OnDraw()
{
    Cositas

   base.OnDraw();
   
}

¿y porqué esta pregunta? Porqué si quiero 'normalizar' mi código, me gustaría que TODOS los overrides se trataran igual, porqué ahora mismo siempre tengo dudas de si el base debo ponerlo antes o después y en algunos casos lo programa para que sea antes o después.


#12
Buenas, me estoy volviendo un poco loco. Estoy intentando publicar una versión Alpha de la app para probar con los testers. He creado el grupo, creado el apk, lo he subido...
El problema es que luego voy a administrar los testers. Añado el grupo y abajo, donde debería aparecerme el link que hay que mandar al grupo para descargar la app, me dice que el link estará disponibñe cuando pase a producción. Pero...Yo no quiero ir a producción todavía....
¿Alguien puede ponerme un poco de luz en esto??

Gracias
#13
Wave Engine / Ultima versión
25 de Octubre de 2013, 02:42:59 PM
Muy bien los cambios de la última versión. Ya soporta vídeo y captura de cámara!!!!

He mirado un poco los ejemplos y muy muy bien enhorabuena!!!

Ahora tocan las preguntas...

Cuando uso un ViewPort virtual, todos los parámetros que son relativos al screen, como ancho y alto que devuelve WaveServices.Platform.ScreenHeight...¿están escalados al vierwport virtual? Es decir, si quiero trabajar a 800x600...¿me devuelve ScreenHeight 600?

¿Qué pasa cuando roto el device? ¿me rotan los valores como en Phone?

¿se puede establecer la posición del vídeo dinámicamente?

¿Se puede probar en Xamarin con la versión Trial? ¿Cómo?

:)
#14
Hola, estoy convirtiendo SmallPT ( un path tracing hecho en 99 líneas en C) a .Net.
Y me he encontrado que Parallel.For NO me está funcionando. Cuando ejecuto el programa usando Parallel.For, parece que se queda como colgado, no me hace absolutamente nada...

No lo entiendo, la lógica es que cambiando el for(y) por el Parallel.For me debería funcionar...

¿Podeis echarle un vistazo, a ver qué está fallando? El código es muy sencillo...

Gracias

El código que me falla está en la clase Scene.cs. Si quitamos el Parallel.For, y lo sustituimos por el For que hay justo debajo, funciona perfectamente.... Oo


       void RayTrace(Ray cam, Vec cx, Vec cy, Vec r)
        {
            Parallel.For(0, height, (y) =>
            //for (int y = 0; y < height; y++)
            {
                // Loop over image rows

                for (ushort x = 0; x < width; x++)
                {// Loop cols
                    Xi[0] = 0;
                    Xi[1] = 0;
                    Xi[2] = (ushort)(y * y * y);

                    for (int sy = 0, i = (height - y - 1) * width + x; sy < 2; sy++)     // 2x2 subpixel rows
                        for (int sx = 0; sx < 2; sx++, r = new Vec())
                        {        // 2x2 subpixel cols
                            for (int s = 0; s < samps; s++)
                            {
                                double r1 = 2 * MathUtils.erand48(Xi), dx = r1 < 1 ? Math.Sqrt(r1) - 1 : 1 - Math.Sqrt(2 - r1);
                                double r2 = 2 * MathUtils.erand48(Xi), dy = r2 < 1 ? Math.Sqrt(r2) - 1 : 1 - Math.Sqrt(2 - r2);
                                Vec d = cx * (((sx + .5 + dx) / 2 + x) / width - .5) +
                                        cy * (((sy + .5 + dy) / 2 + y) / height - .5) + cam.d;
                                r = r + Radiance(new Ray(cam.o + d * 140, d.norm()), 0, Xi) * (1.0 / samps);
                            } // Camera rays are pushed ^^^^^ forward to start in interior
                            c[i] = c[i] + new Vec(MathUtils.clamp(r.x), MathUtils.clamp(r.y), MathUtils.clamp(r.z)) * .25;
                        }
                }

                onLineEnded(y);
            }
            );

            SaveImage();
        }


Código fuente: www.mallorcaaldia.com/FTP/SmallPT.rar
#15
General Programadores / Recursion y problemas con la Pila en C#
18 de Octubre de 2013, 09:58:50 AM
Buenas a todos. Estoy convirtiendo el programita smallPT ( Path Tracing) de C++ a .Net y me he encontrado con un problema.
En RayTracing, la recursión es muy utilizada, y en C# me salta enseguida StackOverflow.  ???
He conseguido salvarlo utilizando un Thread y asignando la pila. El problema ha venido cuando he querido utilizar el Parallel.For. Por lo visto aquí lo que hace es ir creando tareas, pero NO hay forma de especificar el tamaño de la pila, si no es con EditBin.
Así que he añadido esto al postProcess de compilación:
call "$(DevEnvDir)..\tools\vsvars32.bat"

editbin /stack:60097152 "$(TargetPath)"

Pero no me funciona....

¿alguna idea?
#16
General Programadores / Flash Builder 4.6
14 de Octubre de 2013, 02:24:04 PM
Bueno, os cuento mi experiencia con esta herramienta, seguro que a alguien le sirve.
Hace un año y pico en la empresa se decide desarrollar aplicaciones para móviles. Eran aplicaciones in-house, para ser usadas por los empleados de la empresa ( camareros, principalmente). Así que me decanté por...¡Flash Builder 4.5!
Lo hice porqué me permitía generar con el mismo código para Android y para iOS.
Bien, desarrollamos unas cuantas, la verdad es que bastante bien, pocos problemas. Luego nos emocionamos, y más aplicaciones, esta vez para tablets...Eso sí todo en Android de momento, no necesitábamos iPhone para nada.

Pero el otro día se decidió realizar una app para el público. La creo para android y perfecto, pero cuando le toca al MAC....¡funciona sin hacer ni un solo cambio! ¡Eso sí es cross-platform!!!  :D

Pero, al subirla al market....que si la firma, que si la provision mobile.... Consigo un MAC y lo hago desde el MAC. Todo ok!!! Pero recibo un email automático de Apple, me dice que para el iPhone 5 necesito añadir una imagen adicional. Vale, no es problema, pero...no funciona. Investigo un poco y hay que actualizar la versión de AIR,...bueno, todavía no lo he conseguido.  ???

Pero lo que para mi es importante es que parece que Adobe ya no va a sacar más actualizaciones de Flash Builder, parece que se lo da por muerto. Eso significa que tengo que olvidarme de él!!! Todo el código y aplicaciones que he hecho ya no servirán en un futuro, porqué puedo encontrarme una chorrada de estas y ser imposible de resolver...

Y es una pena, porqué para apps empresariales estaba muy bien, y no tuve que cambiar NADA para que funcionara en un iPhone.

Ahora me toca buscar otro sistema, a ver si esta vez dura un poco más....

Esto es un asco!!! :-[


#17
Wave Engine / Estado del engine
07 de Octubre de 2013, 09:39:11 AM
Vicente, ¿podrías contar un poco el estado del engine?

Gracias  :)
#18
General Programadores / Roll, pitch, yaw en Android
26 de Septiembre de 2013, 09:59:05 AM
Hola a todos. Estoy trabajando con Xamarin en Android y me toca el turno de los sensores. Captura los valores según los ejemplos, pero al hacer roll, el pitch también se me dispara...

¿Alguien tiene código para saber la orientación en coordenadas globales del dispositivo?

Gracias!!
#19
Ahí va una entradita nueva, para aquellos que sufren programando en Android!!!  :o

http://javiermaura.wordpress.com/2013/08/05/creando-un-mini-engine-para-android-con-xamarin/
#20
Uff, hacía mucho que no escribía entradas, pero ahí va esta. Creo que es muy interesante, al menos a mi me ha costado lo mio.

http://javiermaura.wordpress.com/2013/08/03/playvideo-con-monodroid-indicando-un-archivo/

Ahora mismo estoy escribiendo un mini-mini-engine cross platform para poder utilizar el mismo código en WP7, Android y en iOS. He estado utilizando monogame, pero al meterte en video...¡puedes empezar a rezar! Conseguí que me funcionara en iOs, pero en Android no he podido conseguirlo. La cuestión es que al final te pasas tiempo peleando y peleando para intentar conseguir algo que podría ser más fácil si lo escribe uno mismo.
Eso pensaba, claro.  :)
Así que me metí en android y estoy intentando 'controlar' la cámara, el vídeo y OpenGL para poder dibujar algunas cosas. Me he encontrado con un montón de problemas, porqué la lógica de funcionamiento es muy diferente, pero bueno, ahí estoy, intentándolo. Una de las ventajas de hacerlo tu mismo es que puedes partir de una API en concreto, no como monogame que funciona desde APIS muy bajas, pero sin embargo, tiene muchas limitaciones cuando se trata de manejar 'cosas nuevas'.
En mi caso, necesito manejar muy bien la cámara, el vídeo y OpenGL, pero de OpenGL SOLO necesito dibujar sprites, así que toda la parte de 3D me la puedo ahorrar.

Bueno, menos rollos.... Espero que le sirva a alguien. Un saludo!!! ;)





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.