Bueno en esta entrada se mostrara los fps al correr RunCrash en el dispositivo, como podemos apreciar el juego corre a 60 fps con los cuales obtendremos una muy buena fluidez del mismo, agregando como nota que utilizamos código compatible con el actual iOS7, dejamos notas en el código fuente referente a esto, porque al momento de migrar a XCode 5 el cual esta en fase beta para developers, no correría el juego o lanzaría los típicos warnings de que se esta utilizando código desechado
Bueno eso seria la entrada, después se podría colgar un video del juego en acción.
lunes, 19 de agosto de 2013
Visión de los XIB de RunCrash
Bueno en esta entrada se mostraran los archivos XIB que contiene RunCrash, pero que es un XIB, bueno a grandes rasgos un XIB es un Xcode Interface Builder, el cual en versiones anteriores a XCode 4 incluía una heramienta que hacia la labor de las interfaces gráficas de las aplicaciones tanto de los dispositivos móviles como de las aplicaciones de escritorio. Bueno pero pasemos a las XIB de RunCrash.
Primero mostraremos la Pantalla de Bienvenida, la que se nos muestra al momento de correr a RunCrash, como se puede apreciar en la propiedad de los objetos este XIB consta de 2 objetos los cuales son, en realidad consta de 2 objetos expuestos y 4 etiquetas en la parte oculta del imageView, es por esto que no se muestran en la selección de objetos pero al seleccionar el imageView se podrá tener acceso a ellos, bueno esto no es muy relevante pero para quien quiera saber de donde sale ese texto esa es la respuesta. Pasandp a los Outlets o las acciones para que se entienda mejor, vemos que el imageView no contiene ningún Outlets asociado, no así el Botón el cual se vera en la siguiente imagen
En esta imagen como se mencionaba con anterioridad se puede apreciar los eventos que posee el botón Configuración los cuales son ejecutados en el evento TouchUpInside cuando es tocado,
Posteriormente mostraremos el XIB al cual se accede desde el botón Configuraciones, este es la ventana de configuraciones SettingsWindow, aquí se podrá manejar los aspectos de los sonidos relevantes al juego, como son la activación o desactivación del sonido de fondo y las mismas opciones pero para los efectos de sonido, los cuales son los sonidos de las colisiones, etc.
Como podemos observar este XIB contiene una vista (View) con 6 objetos anidados a la vista nos centraremos en los valores que nos muestra el Switch que maneja los efectos de sonido, donde podemos observar que en el evento de ValueChanged, es decir cuando cambia el valor de nuestro Switch este lo enviara a la variable que tiene por nombre effectswitch el cual debe estar declarada con anterioridad en nuestro archivo .h para poder ser visualizada en el XIB o para que nos muestre la opción de seleccionarla, de similar forma sucede con el otro Switch que tenemos creado, y como se menciono la forma de trabajar con los botones será la forma en que trabajara el botón guardar, claramente que en los archivos cabecera (.h) y los archivos cuerpo (.m) estarán las acciones de todos los objetos que en la interfaz estamos relacionando
Bueno nuestro siguiente XIB será el display que nos muestra una vez que hemos perdido las 5 vidas que posee el juego, claramente si no hemos obtenido bonificaciones por llegar a os 10.000 ese será el numero de vidas que obtendremos. Como podemos apreciar este XIB solo posee una View sin objetos, pero cuando corramos el juego veremos que aparecen textos, esto ocurre porque como se muestra en la imagen estamos reverenciando el XIB GameOverViewController a sus clases cabecera y cuerpo, es decir, cuando se crearon estas clases GameOverViewController .h y .m se selecciono en XCode que asociara un XIB por esta razón todo se programa directamente allí y después se le dice al File Owner cual es su clase.
De similar forma al anterior funciona el XIB RunCrashViewController, claramente con opciones diferentes, como por ejemplo en la anterior se manejaban la muestra del puntaje mayor y el sprite de gameover, aquí se hace la parte de mayor trabajo como la contracción de los obstáculos los contadores de vidas , el puntaje la forma en que se mostraran los objetos, los movimientos etc.
Primero mostraremos la Pantalla de Bienvenida, la que se nos muestra al momento de correr a RunCrash, como se puede apreciar en la propiedad de los objetos este XIB consta de 2 objetos los cuales son, en realidad consta de 2 objetos expuestos y 4 etiquetas en la parte oculta del imageView, es por esto que no se muestran en la selección de objetos pero al seleccionar el imageView se podrá tener acceso a ellos, bueno esto no es muy relevante pero para quien quiera saber de donde sale ese texto esa es la respuesta. Pasandp a los Outlets o las acciones para que se entienda mejor, vemos que el imageView no contiene ningún Outlets asociado, no así el Botón el cual se vera en la siguiente imagen
En esta imagen como se mencionaba con anterioridad se puede apreciar los eventos que posee el botón Configuración los cuales son ejecutados en el evento TouchUpInside cuando es tocado,
Posteriormente mostraremos el XIB al cual se accede desde el botón Configuraciones, este es la ventana de configuraciones SettingsWindow, aquí se podrá manejar los aspectos de los sonidos relevantes al juego, como son la activación o desactivación del sonido de fondo y las mismas opciones pero para los efectos de sonido, los cuales son los sonidos de las colisiones, etc.
Como podemos observar este XIB contiene una vista (View) con 6 objetos anidados a la vista nos centraremos en los valores que nos muestra el Switch que maneja los efectos de sonido, donde podemos observar que en el evento de ValueChanged, es decir cuando cambia el valor de nuestro Switch este lo enviara a la variable que tiene por nombre effectswitch el cual debe estar declarada con anterioridad en nuestro archivo .h para poder ser visualizada en el XIB o para que nos muestre la opción de seleccionarla, de similar forma sucede con el otro Switch que tenemos creado, y como se menciono la forma de trabajar con los botones será la forma en que trabajara el botón guardar, claramente que en los archivos cabecera (.h) y los archivos cuerpo (.m) estarán las acciones de todos los objetos que en la interfaz estamos relacionando
Bueno nuestro siguiente XIB será el display que nos muestra una vez que hemos perdido las 5 vidas que posee el juego, claramente si no hemos obtenido bonificaciones por llegar a os 10.000 ese será el numero de vidas que obtendremos. Como podemos apreciar este XIB solo posee una View sin objetos, pero cuando corramos el juego veremos que aparecen textos, esto ocurre porque como se muestra en la imagen estamos reverenciando el XIB GameOverViewController a sus clases cabecera y cuerpo, es decir, cuando se crearon estas clases GameOverViewController .h y .m se selecciono en XCode que asociara un XIB por esta razón todo se programa directamente allí y después se le dice al File Owner cual es su clase.
lunes, 5 de agosto de 2013
De vuelta al proyecto.
Después de un tiempo de pausa en el proyecto, estamos de vuelta, esta vez con el proyecto mas avanzado de lo que se muestra publicado. Hemos definido los Sprites del juego y hemos superado una de las etapas mas difíciles que fue trabajar con las colisiones de los objetos.
Prontamente estarán publicados.
saludos.
Prontamente estarán publicados.
saludos.
jueves, 25 de abril de 2013
Testing de Acelerómetro, Vibración, Sonidos y carga a iDevice
En este test se realizo una App para iPhone, el cual consta de un láser donde este reacciona a las sacudidas que se le dan haciendo uso del Acelerómetro, Sonidos y Vibraciones para simular los impactos del láser.
Software necesarios para la realización del test.
OS X Mountain Lion 10.8.3
Xcode (4.6.2)
Fireworks CS6 (Trial version de prueba)
Audacity (Open Source)
Frameworks
AVFoundation (para hacer uso de las vibraciones del dispositivo y de UIAccelermeter)
AudioToolbox (Para acceder a los sonidos que tendra la App)
Procedimientos
Comenzamos creando un nuevo proyecto en Xcode de nombre láser y seleccionamos el storyboard y el ARC.
¿Que es Storyboard y porque lo seleccionamos?
Con las nuevas versiones de Xcode ya no se hace la carga de la GUI o el desarrollo en Interface Builder, sino que viene incluido directamente en Xcode, es asi como incluyen los Storyboard una forma mas grafica de ver las relaciones de las Views, pero que en ocaciones nos genera un poco de codigo basura, como se trabajara con una sola View lo dejaremos seleccionado.
¿Que es ARC y porque lo seleccionamos?
Automatic Reference Counting (ARC), sirve para administrar el ciclo de vida de los objetos en iOS, por eso ahora hay 2 formas de administra la convencional y con ARC.
La forma convencional es donde nosotros somos los responsables de hacer los retan,release,autorelease,dealloc.
La forma con ARC es en la que el sistema se encarga de destruir los objetos cuando no se utilizan mas, claramente hay que indicarle el comportamiento que tendrá dichos objetos.
ARC implica que dependiendo del uso de los objetos, el compilador sabrá cuando aumentar o disminuir el contador de referencia de los objetos , y cuando este llegue a cero el compilador destruirá la instancia.
Posteriormente cargamos los archivos de sonido que creamos y las imágenes como se muestran en las imágenes posteriores.
Seguido por la carga de los Frameworks que anteriormente se mencionaban AVFoundation y AudioToolbox y cargamos el icono de la App el cual fue importado a la carpeta imágenes anteriormente.
Pasamos a la creación de la Interfaz de la View la cual comprenderá de un componente botón y 3 componentes label, el boton referencia a la instancia startLaser y el evento será TouchUpInside, en la imagen se muestra lo descrito.
Se crean las clases SaberOnView, SaberOnViewController,SaberSoundsModel
Finalmente vemos la aplicación corriendo en el simulador de iphone por motivos de facilidad se mostrara el SS del simulador, ya que no variara mucho mostrar el del dispositivo del simulador(no se apreciara el acelerómetro en imágenes ).
Activación Dispositivo para carga de App
Una vez pagado la suscripción de los USD 99 anuales procederemos a crear el certificado
Posteriormente agregamos el o los dispositivos que poseamos a la cuenta de desarrollado, podemos agregar un total de 100 dispositivos para probar nuestras aplicaciones.
Seguimos con la creación de los ID de las aplicaciones
Aqui se muestra el desglose de la creación del ID de Láser
y finalmente los agregamos a Xcode para que este cargue los perfiles al dispositivo. Cabe mencionar que los certificados como los perfiles provisorios se descargan y cargan a Xcode.
Con esto tenemos el dispositivo listo para aceptar la carga de las aplicaciones que creemos en este caso será láser para el test del acelerómetro, vibración y sonidos
miércoles, 24 de abril de 2013
Instalar OS X Mountain Lion 10.8.3 en VMware Image w/ AMD Support Changelog
Herramientas Necesarias:
- Archivos OS X Mountain Lion 10.8.3 VMware Image
- Programa VMware Workstation v9.0.2
Requisitos Maquina:
- Laptop con procesador AMD Athlonx2 (Para esta versión OS)
- Sistema Operativo Windows 8 x64. (No hay especificación que no trabaje con X86)
- 2 o más Gigabytes memoria Ram (La maquina virtual trabaja con un mínimo 1 Gigabyte dedicado)
Procedimiento:
Una vez descargado los archivos necesarios instalamos el programa VMware Workstation v9.0.2
Instalada la Maquina Virtual cargamos la imagen pre-configurada de OS X (doble click):
Podemos asignar más recursos si nuestra Laptop lo dispone, pero con la que viene asignada es suficiente.
Corremos la maquina cargada, creando una cuenta para el equipo y realizando configuraciones de ubicación geográficas (Ver post anterior).
Por ultimo, realizadas las configuraciones básicas, tomar una instantánea de la máquina virtual (take a snapshot of this virtual machine) para hacer el respaldo correspondiente.
Referencias:
Se siguió las instrucciones realizadas por el equipo: ©2013 Soul Dev Team.
Para más detalles ver : http://www.souldevteam.net/blog/2013/03/22/os-x-mountain-lion-10-8-3-vmware-image/
Archivos necesarios: http://www.souldevteam.net/blog/downloads/
Instalación de Mountain Lion (OsX 10.8) en VirtualBox.
En este post publico la instalación de OsX 10.8 utilizando VirtualBox en windows 7 .
La instalación la hice basándome en
la publicación de Javier Losada, aunque con la diferencia de que
utilice la última versión de VirtualBox 4.2.12.
Herramientas Necesarias:
- Archivo ISO de Sistema Operativo Mountain Lion (MacOsx 10.8).
- Programa VirtualBox 4.2.12.
- Archivo ISO VirtualBox-4.2.12-extendedpack.
- PC con Sistema Operativo windows7.
Requerimientos mínimos de PC:
- Más de 2GB RAM. (Debemos asignar mínimo 2GB de memoria principal a la máquina virtual, aparte de la necesaria asignada al SO anfitrión).
- procesador Intel dualcore x64. (debido a que los OsX están pensados para los computadores MAC que tienen procesadores de 64bits).
- Virtualización disponible. (El computador debe tener esta opción habilitada en la BIOS).
Detalles más importantes a considerar
en la instalación.
- Configuración de Máquina Virtual.
- Selección de “MacOs x64” como característica de la Máquina Virtual a crearse.
- Agregar VirtualBox-4.2.12-extended.iso. Esto es para el funcionamiento correcto de los puertos usb y evitar el pantallazo-azul “Driver_power_state_failure” de Windows al apagar la computadora.
- Deseleccion de botón “Habilitar EFI(sólo SO especiales)”.
- Deseleccion de botón “Habilitar PAE/NX”. Esto es en caso de que ocurra el error “system uptime in nanoseconds” en el proceso de pre-instalación del Sistema Operativo.
- Instalación de sistema Operativo.La instalación no presenta mayor problema, ya que solo se sigue las indicaciones de la interfaz Gráfica.
- Copia de archivos de instalación:
- Aceptación de contrato de licencia de software.
- Ingreso de datos de cuenta de usuario.
- Escritorio de OsX Mountain Lion.
Con esto tenemos el sistema operativo listo para la instalación del IDE XCode con el cual desarrollaremos nuestra aplicación para Iphone.
Enlaces:
- SO mountain lion : https://itunes.apple.com/cl/app/os-x-mountain-lion/id537386512?mt=12
- Máquina Virtual: http://es.wikipedia.org/wiki/M%C3%A1quina_virtual
- Instalación de máquina virtual : http://javierlosada.wordpress.com/2013/01/13/mountain-lion/
Suscribirse a:
Entradas (Atom)









