viernes, 28 de octubre de 2016

PiratasGames-2017

Apps-PiratasGames, Aplicación Android, Versión del Juego la Culebra, pero con Piratas.

El presente juego tiene la presente trayectoria, una vez buscando en internet un curso bueno, bonito y barato para aprender a programar bajo Android me encontré con que GOOGLE, está dictando y lo sigue haciendo al día de hoy 14 de Mayo del 2017, cursos gratis con la universidad complutense de Madrid, España, al final del curso el cual lo recomiendo al 100% google te entrega un Diploma una vez apruebes el curso junto a la Universidad, que más se puede pedir, lo recomiendo al 1000% excelente curso, aquí le dejo el enlace para los que quieran iniciar este tipo de curso. https://cursos.formacionactivate.es/apps-moviles/curso , luego de este curso mi meta era desarrollar una aplicación android de entretenimiento, y buscando y buscando me encontré con https://videotutoriales.com y realicé un curso gratis en línea de como hacer un juego de piratas, y bueno me puse manos a las obras.

Al final del curso modifique todas las interfaces, todas las clases y los temas internos, es decir modifique todo al 100% y el resultado fue que pude crear mi propio framework para juego el cual les presento, https://github.com/tarsicio/Framework-Juegos-Android, dicho framework es libre GNU, en el está el código fuente del mismo y el archivo classes.jar el cual es el nucleo del juego.

Una vez terminado el Framework culminé la parte del juego el cual le presento, espero les guste. 

El juego completo y 100% Operativo  lo pueden DESCARGAR desde la siguiente dirección URL https://github.com/tarsicio/PiratasGames/releases 
Apps-PiratasGames-Android-2017 Aplicación de Juego PiratasGame-2017 para plataforma Android.
El presente juego, está basado en el juego de la culebra, pero con Barcos, Piratas, Tesoros y por supuesto en el Mar, si tocas la flecha verde del lado derecho del juego el barco girará en sentido de las agujas del reloj y si tocas la flecha verde del lado izquierdo del juego el barco girará en sentido contrario de las agujas del reloj.

El barco puede salir por un lado de la pantalla del teléfono y entrará por el lado contrario, es decir puede entrar por cualquier lado del teléfono y el mismo saldrá por el lado opuesto, cada vez que el barco recoja el botín, se suma  un pirata al barco y este va un poco más rápido, al ir tomando más tesoros sigue aumentando su velocidad y se va sumando el total de tesoro recolectado, el puntaje más alto se guarda en el teléfono, si el barco toca a un pirata de la cola el juego culmina y debe iniciar de nuevo, guardando el puntaje más alto.

Las imágenes fueron tomadas de Internet, imágenes GNU, todo esto por lo del tema de propiedad intelectual, se trató de buscar imágenes que fueran agradables a la vista humana y fácil de usar y comprender, si necesita pausar el juego lo puedes hacer en cualquier momento en el botón superior Izquierdo, el juego presenta dos tipos de pantallas, los tesoros aparecen en cualquier parte de la pantalla de forma aleatoria.

Cada vez que el banco toma un tesoro, este va sumando el puntaje en la parte inferior media del juego, el presente juego lo puedes utilizar desde la versión Android 2.3


La intención del presente juego es buscar el entretenimiento continuo y que todos los puedan disfrutar, espero cumplir con esta expectativa, sabemos que hoy en día los usuarios son muy exigentes en esta materia, pero este es mi primer juego hecho en Android, espero haberlo hecho bien, para ustedes.


Espero que se diviertan un rato, este Juego, nos permite crear nuestro propio Framework de juego base, con el cual pretendemos realizar nuestro segundo juego el "El-Quinto-Elemento" ó "The-Fifth-Element", esperalo, está en Diseño y Desarrollo, una vez culminado lo publicaremos en la Apps de Google, y por esta misma vía te lo comunicaremos o por Twitter

El presente Juego se realizó con nuestro Framework, el cual contiene las siguientes Interfaces y Clases, Te lo puedes descargar desde: https://github.com/tarsicio/Framework-Juegos-Android 

INTERFACES

En la parte del Framework te mostramos todas interfaces, no es nuestra intención mostrarte todo en ésta página, te lo puedes descargar de github y ver tú mismo todo el código fuente JAVA.

  • Acelerometro
  • Input
  • Teclado (KeyEvent)
  • Audio
  • Sonido
  • Gráficos
  • Pantalla
  • SingleTouch
  • MultiTouch
  • Pool
  • Pixmap
  • FileIO (Manejo de Archivos)
  • Juego
Todas estas interfaces son implementadas luego, como podemos ver se maneja lo necesario para manipular cada acción del teléfono, como es la pantalla, sonido, gráfico, audio, archivos, entre otros.

Por ejemplo la interface FileIO se observa de la siguiente manera.

package com.tarsicio.bibliotecagamesve.interfaces;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Creado por el Autor el día 19/05/2016.
 * @author  Tarsicio Carrizales, twitter: @tarsicio_tic, Mail: telecom.com.ve@gmail.com
 * @version 1.0
 * Aplicación de Juego el Pirata (PiratasGames)
 */

public interface FileIO {

    /**
     * Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     *
     * El metodo leerAssets busca un archivo en particular dentro de la carpeta assets
     * dentro del proyecto del juego y lo retorna
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public InputStream leerAsset(String nombreArchivo) throws IOException;

    /**
     *Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public InputStream leerArchivo(String nombreArchivo) throws IOException;

    /**
     *Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public OutputStream escribirArchivo(String nombreArchivo) throws IOException;
}

En la presente imagen se pueden observar el total de inteface.

CLASES

Al igual que las interface, se muestran las Clases, las cuales implementa todas y cada una de las interface, para seguir los pasos vamos a mostrar la Clase que implementa la interface FileIO.

la Clase AndroidFileIO.java la cual esta dentro del paquete modelo, queda de la siguiente manera.

package com.tarsicio.bibliotecagamesve.modelo;

import android.content.res.AssetManager;
import android.os.Environment;

import com.tarsicio.bibliotecagamesve.interfaces.FileIO;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Creado por el Autor el día 19/05/2016.
 * @author  Tarsicio Carrizales, twitter: @tarsicio_tic, Mail: telecom.com.ve@gmail.com
 * @version 1.0
 * @see FileIO
 * Aplicación de Juego el Pirata (PiratasGames)
 */

public class AndroidFileIO implements FileIO {

    private AssetManager assets;
    private String rutaAlmacenamientoExterno;

    /**
     *
     * @param assets
     */
    public AndroidFileIO(AssetManager assets){
        setAssets(assets);
        setRutaAlmacenamientoExterno();
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public InputStream leerAsset(String nombreArchivo) throws IOException{
        return assets.open(nombreArchivo);
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public InputStream leerArchivo(String nombreArchivo) throws IOException{
        return new FileInputStream(getRutaAlmacenamientoExterno() + nombreArchivo);
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public OutputStream escribirArchivo(String nombreArchivo) throws IOException{
        return new FileOutputStream(getRutaAlmacenamientoExterno() + nombreArchivo);
    }

    /**
     *
     * @param assets
     */
    private void setAssets(AssetManager assets){
        this.assets = assets;
    }

    /**
     *
     */
    private void setRutaAlmacenamientoExterno(){
        this.rutaAlmacenamientoExterno = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + File.separator;
    }

    /**
     *
     * @return
     */
    public AssetManager getAssets(){
        return this.assets;
    }

    /**
     *
     * @return
     */
    public String getRutaAlmacenamientoExterno(){
        return this.rutaAlmacenamientoExterno;
    }
}

Espero que lo disfruten y ayuden en su proyecto personal o de trabajo.

Saludos a todos
Atentamente,
Tarsicio Carrizales

jueves, 27 de octubre de 2016

LARAVEL 5.3


Aplicación Completa CRUD Users-Rol-Permissions, con Acacha adminlte-laravel Operativo al 100%, el presente CRUD fué realizada con una plantilla propia, la cual se diseñó para el presente trabajo así con los diferentes controladores, el modelo User fué modificado y adaptado al presente proyecto, de forma que cumpla con los objetivos planteados, ya que se incluyó los siguientes campos en la tabla (FechaInicio, FechaFin, CuentaActiva, entre otros)


Plantilla Completa de Laravel V-5.3 al 100% modificada por su servidor. la plantilla de Acacha adminlte-laravel se modificó para adaptarla al presente proyecto, se dejó todo lo de bootstrap hojas de estilos (CSS) sin modificar así como bootstrap.js (JavaScript)
La presente plantilla está realizada con Laravel versión 5.3, todo lo referente a los Roles, Permisos, y Usuarios, Operativa al 100% para sus proyectos de Laravel.


Se crearon Los Modelos, Controladores y Vistas para ser utilizados en la presente plantilla. La intención es que usted pueda iniciar sus proyectos sin preocuparse del tema de la seguridad, en cuanto a los roles, permisos y usuarios.

CRUD USUARIO


La plantilla para Visualizar los Usuarios, cuenta con los campos que se consideran necesarios a mostrar, usted los puede modificar de acuerdo a sus necesidades, recuerde, en la presente página usted puede utilizar los niveles de seguridad implementados en  Bincan/Roles, los cuales les permiten determinar los niveles de acceso programados para cada usuario, por ejemplo:

@ROLE('root') // @if(Auth::check() && Auth::user()->isRole('root'))
// Usuario administrador super root
@endrole
@Permission('crear.usuarios') // @if(Auth::check() && Auth::user()->can('crear.usuario'))
// El usuario puede crear
@endpermission
@Level(2) // @if(Auth::check() && Auth::user()->level() >= 2)
// Nivel 2 o superior
@endlevel

Con este esquema le permite ahorro de líneas de código y determinar la seguridad de acceso a cada página del sistema.  


Recuerde que debe realizar ajustes en cada Vista del presente CRUD, de acuerdo a sus necesidades especiales, tome en cuenta que si actualiza a Laravel a la Versión 5.4, es posible que tenga que verificar los paquetes asociados en el presente proyecto, ya dichos cambios afectan la forma en cómo se comportan los demás componentes integrados en esta aplicación.

En la presente Ventana le permite Modificar a un usuario del Sistema en Particular, es decir puede modificar, la clave, la ficha de Inicio y Fin en la cual el Usuario puede utilizar la aplicación, así como a que grupo de trabajo pertenece, todo esto para el tema del Uso de recursos en la aplicación, tales como poder modificar, imprimir, leer, y crear entre otros.

en esta pantalla no está permitido modificar el login de usuario ni su correo, pero usted lo puede modificar de acuerdo a sus necesidades, usted puede modificar el código, recuerde que el presente proyecto esta bajo licencia libre GNU. 


La presente plantilla está 100% operativa a la Versión 5.3 de Laravel, La parte gráfica de esta plantilla está hecha con "acacha/admin-lte-template-laravel": "2.", y la parte de Seguridad, Roles y Permisos hecha con "bican/roles": "2.1.", con esto tiene una vista agradable al usuario final, la sección de Bincan/Roles, fue modificada por completo

CRUD-ROL-PERMISSIONS

Se tiene una página con todos los perfiles del sistema, usted puede elegir que perfiles crear, para asignar a los grupos de usuarios, puedes utilizar todo lo indicado hasta el momento y de esta manera aumentar los niveles de seguridad en su aplicación y hacer una aplicación robusta de acuerdo a sus necesidades.


La parte de "bincan/roles" fue modificada para su mejor funcionamiento.
También se agregaron otros componentes que permitan un mejor desarrollo en el presente proyecto, los cuales pueden visualizar en el archivo "composer.json"
Para facilitar su trabajo una vez instalada la aplicación puede ejecutar el comando: php artisan migrate:refresh --seed esto le permitirá crear las tablas para su base de datos y cargar los registros básicos de inicio, los cuales le permitirán trabajar con la aplicación.
Recuerde crear la base de datos, con su gestor preferido, y configurar el archivo .env dentro de la aplicación
Una vez culminado la instalación de la aplicación entre con el correo de ejemplo telecom.com.ve@gmail.com clave: 123456 ó si lo desea, en el seeder de usuario, cambie los datos por los de su preferencia.




LOGIN - MENÚ


El sistema de autenticación es el que trae laravel, en este caso se modificó y se le agregó el middleware de Autenticación para hacer el sistema más seguro el cual maneja la propiedad TOKEN, usted puede modificar el presente programa y elegir un tipo de seguridad adaptada a sus necesidades.


Se realizó un sistema de Menú con imágenes el cual hace el manejo de las páginas de una forma mucho más amigable e interactivas, si usted considera que este tipo de práctica no es conveniente, las puede cambiar a la ventana izquierda como la mayoría de sistema existentes, recuerde que a este nivel con BiCan-Roles puede hacer que no se muestren algunos Iconos de acuerdo a la configuración de cada perfil de usuario.


Aquí pueden visualizar un sub menú al cual les pueden aplicar todas las características del primer menú, o el principal. 


No hace falta que utilice el comando composer update, ya que este repositorio está completo con todos los componentes que necesita para trabajar.
Cuando usted termine de configurar esta aplicación, recuerde de quitar la opción de debuger, para que no se muestre al usuario final y si lo desea lo puede colocar en el idioma de su preferencia (Español, Inglés u otros), por defecto esta en español
Pueden realizar sus comentarios directamente por esta vía
De necesitar ayuda no dude en comunicarse con nosotros, que con gusto le podemos ayudar en el presente proyecto
Atte,
Tarsicio Carrizales