Prestashop 1.6, clientes y pedidos, stock y combinaciones

logotipo prestashop

Estuvimos administrando una tienda online con Prestashop 1.4, para lo que elaboramos unos módulos personalizados para una gestión de stock rápida y fácil. La forma de gestionar el stock ha cambiado desde la versión de Prestashop 1.5, versión que nos hemos saltado por varios motivos (hay muchas discusiones al respecto).

Después de consultar las fuentes que figuran al pie de esta entrada, ahora conocemos mejor cómo las nuevas versiones como Prestashop 1.6 controlan el stock de los productos. Intuimos que este cambio ha sido causado por la aparición de software ERP programado por varias empresas (y la necesidad de éste para tiendas con amplio catálogo y variedad de combinaciones de producto).

Stock en la base de datos

Hola!
A ver en la tabla «ps_stock_available» tienes de cada producto y
para cada tienda una entrada con el stock final, eso si, siempre que en
Preferencias > Productos tengas la administración avanzada de
stock a «no». Si la tienes en sí, el stock se calcula sumando los movimientos de stock de cada almacén de ps_stock_mvt.

En esa tabla se indexan las cantidades del producto por combinaciones. Nuestro módulo filtra las combinaciones de cada producto y las divide según el grupo de atributos que necesitamos. En el caso concreto de www.lacasadeljamon.com.es, el grupo de atributos que controla el stock es el conjunto de pesos de cada producto. Este caso concreto tiene 40 combinaciones por cada peso de cada producto. Teniendo este dato, hemos elaborado un módulo que actualiza las cantidades de estas combinaciones.

Para los productos con combinaciones, en ps_stock_available se establecen las catidades para cada combinación. Hay que añadir otro registro, con id_product_attribute = 0, por cada producto con combinaciones (si no, no se mostrará el botón del carrito en la página del producto). Nuestro módulo tiene una línea concreta en su código para hacer esto.

Sobre los impuestos de los productos

http://www.prestashop.com/forums/topic/284753-problema-a-intentar-importar-archivo-catalago-productos-xampp/

Problema al importar CSV de gran tamaño: http://programadorphp.es/script-para-importar-productos-y-categorias-en-prestashop#comment-14249

La columna de la tabla ps_product que informa de los impuestos del producto NO da la ID FINAL de los impuestos, hay que hacer otra consulta a otra tabla que sí relaciona los campos id_tax_rules_group con id_tax.

No es lo mismo un impuesto (p. ej. IVA 21%) que una regla de impuestos (p. ej. no aplicar IVA a las Islas Canarias), y debemos entender bien este concepto a la hora de trabajar con Prestashop, ya que nos permitirá configurar correctamente los impuestos para determinadas localizaciones.

Sobre el catálogo y los atributos y combinaciones

Encontramos sólo leves diferencias en la base de datos en lo concerniente a las combinaciones de productos. La más notable es de nuevo la inclusión de tablas y campos relativos a la funcionalidad de multitienda que incorpora Prestashop 1.6.

Las siguientes tablas no cambian:

ps_attribute_impact
ps_attribute_lang
ps_attribute_group_lang

ps_product_attribute_combination
*ps_product_attribute_image – de momento no usamos esta tabla

Estas tablas son de la nueva versión exclusivamente:


(adsbygoogle = window.adsbygoogle || []).push({});

ps_product_attribute_shop 
ps_attribute_shop
ps_attribute_group_shop

Las siguientes tablas cambian un poco:

ps_attribute: incluye un nuevo campo position
ps_attribute_group: incluye un nuevo campo position y group_type

ps_product_attribute: nuevo campo available

Sobre otras tablas de Prestashop


Tablas que no tienen que ver con productos o combinaciones, pero que incluimos:



ps_order_state: En la nueva versión tiene nuevos campos relativos a los estados del pedido.

ps_order_state_lang: Las tablas son iguales en las dos versiones.

Importación de clientes

Tablas ps_customer de versiones de Prestashop 1.4 y 1.6.
Los asteriscos indican los campos nuevos de la nueva versión.

TABLA ps_customer Prestashop 1.4 (20 campos)

id_customer
id_gender
id_default_group
secure_key
note
email
passwd
last_passwd_gen
birthday
lastname
newsletter
ip_registration_newsletter
newsletter_date_add
optin
firstname
active
deleted
is_guest
date_add
date_upd

TABLA ps_customer Prestashop 1.6 (31 campos)

id_customer
id_shop_group*
id_shop*
id_gender
id_default_group
id_lang*
id_risk*
company*
siret*
ape*
firstname
lastname
email
passwd
last_passwd_gen
birthday
newsletter
ip_registration_newsletter
newsletter_date_add
optin
website*
outstanding_allow_amount*
show_public_prices*
max_payment_days*
secure_key
note
active
is_guest
deleted
date_add
date_upd

Importación de pedidos

TABLA ps_orders Prestashop 1.4 (32 campos)

id_order
id_carrier
id_lang
id_customer
id_cart
id_currency
id_address_invoice
id_address_delivery
reference
secure_key
payment
conversion_rate
module
recyclable
gift
gift_message
shipping_numbre
total_discounts
total_paid
total_paid_real
total_products
total_products_wt
total_shipping
carrier_tax_rate
total_wrapping
invoice_number
delivery_number
invoice_date
delivery_date
valid
date_add
date_upd

TABLA ps_orders Prestashop 1.6 (44 campos)

id_order
reference
id_shop_group*
id_shop*
id_carrier
id_lang
id_customer
id_cart
id_currency
id_address_invoice
id_address_delivery
current_state*
secure_key
payment
conversion_rate
module
recyclable
gift
gift_message
mobile_theme*
shipping_number
total_discounts
total_discounts_tax_incl*
total_discounts_tax_excl*
total_paid
total_paid_tax_incl*
total_paid_tax_excl*
total_paid_real
total_products
total_products_wt
total_shipping
total_shipping_tax_incl*
total_shipping_tax_excl*
carrier_tax_rate
total_wrapping
total_wrapping_tax_incl*
total_wrapping_tax_excl*
invoice_number
delivery_number
invoice_date
delivery_date
valid
date_add
date_upd

CAMPOS AÑADIDOS DE LA VERSIÓN NUEVA:

id_shop_group*
id_shop*
current_state*
mobile_theme*
total_discounts_tax_incl*
total_discounts_tax_excl*
total_paid_tax_incl*
total_paid_tax_excl*
total_shipping_tax_incl*
total_shipping_tax_excl*
total_wrapping_tax_incl*
total_wrapping_tax_excl*

SOBRE OTRAS TABLAS:

En relación a las tablas de pedidos, destacamos:

– En la nueva versión no existe la tabla ps_order_discount.
La tabla ps_order_history es idéntica.

Tablas de los transportistas:

Prestashop 1.4:
ps_carrier
ps_carrier_group
ps_carrier_lang
ps_carrier_zone

Prestashop 1.6:
ps_carrier
ps_carrier_group
ps_carrier_lang
ps_carrier_shop*

  – id_carrier
  – id_shop – para multitienda, si no se tiene multitienda siempre es 1
ps_carrier_tax_rules_group_shop*

  – id_carrier
  – id_tax_rules_group
  – id_shop
ps_carrier_zone

Importar lista de clientes, productos, direcciones… con un archivo CSV

Hemos elaborado un módulo que nos permite generar los CSV para importar a Prestashop, gracias al análisis que hemos realizado de los cambios de las tablas de la base de datos.

Algunos de los datos no se puden importar con un CSV, debido a que la plataforma no incluye el recurso para importar esa información. Estos datos los «importamos» con una consulta MySQL que realiza otro módulo personalizado. Lo siguiente es una captura de este módulo, que hemos denominado «setraspasa».

El módulo que copia registros de una base de datos de 1.4 a otra de 1.6

Realizar consultas Mysql en los módulos de Prestashop


SELECT:

$result = Db::getInstance()->ExecuteS(«SELECT * FROM  `»._DB_PREFIX_.»nombre_tabla`»);

INSERT:

Db::getInstance()->Execute(‘INSERT INTO `’._DB_PREFIX_.’nombre_tabla` (`nombre_campo`) VALUES («valor»)’);


Ordenar alfabéticamente los atributos de los productos

Modificar el archivo classes/Product.php, la línea que reza:

ORDER BY ag.`position` ASC, a.`position` ASC, agl.`name` ASC’;

Ha de ser cambiada por la siguiente:

ORDER BY ag.`position` ASC, pac.`id_product_attribute`, a.`position` ASC, agl.`name` ASC’;

Alineación de atributos con botones de radio:

En themes/nombre_tema/product.css , añadir a  #attributes .attribute_list ul li la propiedad width:100%. Así los elementos de la lista ocuparán todo el ancho disponible y no se amontonarán en la misma línea.

Crear Widget de WordPress

Un Widget de WordPress se compone de dos partes:

  • Una función que instancia al Widget.
  • Una clase para nuestro Widget, que extiende al objeto WP_Widget.

Incluir el archivo widget.php en la carpeta
wp-content/widget/widget.php.

 

(adsbygoogle = window.adsbygoogle || []).push({});

Contenido de widget.php:

<?php

/*
Plugin Name: Mi primer Widget mpw
Plugin URI: http://www.txtplano.blogspot.com.es/
Description: Crea un Widget para añadir a cualquier Sidebar.
Version: 1.0
Author: JorgeGL
Author URI: http://www.txtplano.blogspot.com.es/
*/

/* Función que instancia el Widget
mpw viene de “Mi Primer Widget”, el nombre de la función podéis cambiarlo como queráis
 */


function mpw_create_widget(){
include_once(plugin_dir_path( __FILE__ ).’/widget/widget.php’);
register_widget(‘mpw_widget’);
}
add_action(‘widgets_init’,’mpw_create_widget’);

/* Extendemos la clase WP_Widget */

class mpw_widget extends WP_Widget {
    function mpw_widget(){
        // Constructor del Widget.
        $widget_ops = array(‘classname’ => ‘mpw_widget’, ‘description’ => «Descripción de Mi primer Widget» );
        $this->WP_Widget(‘mpw_widget’, «Mi primer Widget», $widget_ops);
    }

    function widget($args,$instance){
// Contenido del Widget que se mostrará en la Sidebar

        echo $before_widget;    
        ?>
        <aside id=’mpw_widget’ class=’widget myp_widget’>
            <h3 class=’widget-title’>Mi Primer Widget</h3>
            <p><?=$instance[«mpw_texto»]?></p>
        </aside>
        <?php
        echo $after_widget;


}

function update($new_instance, $old_instance){
$instance = $old_instance;
$instance[«mpw_texto»] = strip_tags($new_instance[«mpw_texto»]);
// Repetimos esto para tantos campos como tengamos en el formulario.
return $instance;
}

function form($instance){
?>
<p>
<label for=»<?php echo $this->get_field_id(‘mpw_texto’); ?>»>Texto del Widget</label>
<input class=»widefat» id=»<?php echo $this->get_field_id(‘mpw_texto’); ?>» name=»<?php echo $this->get_field_name(‘mpw_texto’); ?>» type=»text» value=»<?php echo esc_attr($instance[«mpw_texto»]); ?>» />
</p>
<?php
}

}

?>

Este widget incluye un formulario para incluir texto desde el administrador de WordPress y mostrarlo directamente en la página.

Luego sólo tendremos que activar el plugin desde el gestor de plugins de WordPress. Hecho esto,
vamos a Apariencia > Widgets y lo arrastramos a la
Sidebar
que mejor nos convenga.

Crear un sidebar par nuestros widgets

Ahora tenemos la posibilidad de crear un sidebar personalizado para anclar nuestros widgets. Con la sidebar no nos referimos a la barra lateral, sino a una zona cualquiera de la plantilla. Debemos elegir dónde insertar el código: si en functions.php o bien en el widget en cuestión. Se recomienda esto último, para no tener que editar el código del theme.

<?php
function miplugin_register_sidebars(){
    register_sidebar(array(
        «name» => «Nombre de la Sidebar»,
        «id» => «id-unico-para-la-sidebar»,
        «descripcion» => «Descripción de la Sidebar»,
        «class» => «clase-del-elemento»,
        «before_widget» => «<li id=’%1$s’ class=’%2$s’>»,
        «after_widget» => «</li>»,
        «before_title» => «<h2 class=’titulodelwidget’>»,
        «after_title» => «</h2>»
    ));
}
add_action(‘widgets_init’,’miplugin_register_sidebars’);
?>

 

Fuentes de referencia:

http://codex.wordpress.org/es:Escribiendo_un_Plugin
https://codex.wordpress.org/Plugin_API/Action_Reference
http://www.codigonexo.com/blog/wordpress-programadores/crear-sidebars-en-wordpress/
http://www.domestika.org/es/forums/6-programacion-servidor/topics/94200-como-crear-tu-propio-sidebar-personalizado-en-wordpress
http://joanartes.com/blog/sidebar-wordpress/
https://wordpress.org/plugins/multiple-sidebars/installation/ — Plugin para crear sidebars desde el administrador de WordPress

Cambios en el tema de Prestashop 1.5

Breves notas sobre algunos cambios en la plantilla por defecto de la versión de Prestashop 1.5 – procedimiento en el que elaboramos un archivo de texto que sirvió como log para llevar al día las modificaciones realizadas en la plantilla. En esta entrada sólo se incluye el principio del archivo.

 

Cambios en el tema por defecto de Prestashop

LOCALHOST – tema por defecto:


 /*cambio1 #383838*/  #4b97ab
 /*cambio1 #333*/  #4b97ab

El gris oscuro de fondo es el color #383838 que aparece 2 veces en global.css.
También en el footer (#333) y el menú horizontal: /modules/blocktopmenu/css/superfish-modified.css.

Un buen sitio para esto de los colores: http://www.color-hex.com/

Cambio en la fuente:  font:normal 11px/14px Arial, Verdana, sans-serif;
añadimos /*cambio 2*/ con varias fuentes:

/*cambio 2 font:normal 11px/14px Arial, Verdana, sans-serif;*/ 
/*font:normal 11px/14px Georgia, Arial, sans-serif;*/
/*font:normal 11px/14px Cambria, Arial, sans-serif;*/
/*font:normal 11px/14px Verdana, Arial, sans-serif;*/
/*font:normal 11px/14px Constantina, Arial, sans-serif;*/
/*font:normal 11px/14px Century Gothic, Arial, serif;*/
font:normal 11px/14px Century Gothic, Arial, sans-serif;

Un buen artículo sobre las fuentes y la compatibilidad: http://www.elwebmaster.com/articulos/fuentes-seguras-para-la-web-como-y-cuales-son

Instalar nuevos temas desde archivo .rar

Descargando temas gratuitos: http://demo.devilthemes.com/blackhawk/

Este tema incluye un módulo slider propio. En la carpeta descargada está separado del tema. Poner cuidado en subir la carpeta del tema y la del módulo en sus lugares correspondientes.

La distribución trae un módulo denominado Theme Installler para poder importar o exportar temas. La instalación ha «detectado» el módulo devilslider que incluía el tema.

Aparece esta advertencia al finalizar la subida del archivo:

Advertencia: Copia/Pegue los errores si quiere establecer manualmente el tipo de la imagen (en la página «Imágenes» debajo del menu «Preferencias»):
Algunos tipos de imágenes no se pueden añadir porque ya existen. Esta es la lista:

  • Nombre del tipo e imagen: small_default (Ancho: 45px, Alto: 45px)
  • Nombre del tipo e imagen: medium_default (Ancho: 58px, Alto: 58px)
  • Nombre del tipo e imagen: large_default (Ancho: 264px, Alto: 264px)
  • Nombre del tipo e imagen: thickbox_default (Ancho: 600px, Alto: 600px)
  • Nombre del tipo e imagen: category_default (Ancho: 500px, Alto: 150px)
  • Nombre del tipo e imagen: home_default (Ancho: 124px, Alto: 124px)
  • Nombre del tipo e imagen: scene_default (Ancho: 520px, Alto: 189px)
  • Nombre del tipo e imagen: m_scene_default (Ancho: 161px, Alto: 58px)
A veces podemos encontrarnos con un problema a la hora de subir temas, relativos a la configuración del tamaño máximo de archivo permitido de dichos archivos. Se soluciona configurando correctamente el B.O. y cambiando ciertos valores y archivos del servidor. Más información: http://promokit.eu/forums/topic/an-error-has-occurred-during-the-file-upload/
Cambios en el logotipo y cabecera
El logotipo de nuestro nuevo diseño tiene un tamaño superior y proporciones distintas al que incorpora por defecto el tema descargado. Hemos notado (gracias a Firebug) que los elementos de la cabecera están colocados mediante CSS en posición absoluta con respecto al «top».
themes/blackhawk/css/modules/blocklanguages.css

themes/blackhawk/css/modules/blockuserifo.css
themes/blackhawk/css/blocktopmenu/css/superfish-modified.css

Configurar nueva pestaña de Firefox

Zona hostil para manazas
  1. En la barra de direcciones, escribe about:config y pulsa Intro.
    • El aviso de about:config «¡Zona hostil para manazas!» o «¡Esto puede cancelar su garantía!» puede aparecer. Haz clic en ¡Tendré cuidado, lo prometo! o ¡Seré cuidadoso, lo prometo!, para continuar.
  2. Escribe browser.newtab.url en la barra de búsqueda.
  3. Haz doble clic en el ajuste browser.newtab.url y cambia la URL de about:newtab a about:blank. Al mismo tiempo, también puedes cambiarlo y poner about:home
    para que Firefox Google sea tu página de inicio o escribir la dirección
    de la página web que quieres que sea tu página de inicio. Por ejemplo, likonet.es.
  4. Haz clic en Aceptar y cierra la pestaña de about:config tab.  

Integrar Facebook y Prestashop

Módulo para convertir una página de producto

http://www.prestashop.com/forums/topic/115844-modulefree-facebook-like-a-lot-prestashop-14-update-2810-with-facebook-open-graph-tags/

Módulo Facebook Like Box

http://www.prestashop.com/forums/topic/183872-modulo-gratis-facebook-like-box-modulo-de-facebook/
http://www.prestashop.com/forums/topic/196366-module-facebook-fanpage-like-box-plugin-for-free/

Para poner un botón en cada página de producto

http://www.prestashop.com/forums/topic/198007-necesito-poner-un-me-gusta-de-facebook-en-cada-producto/

Resumen de uso de página de plugin del botón

https://developers.facebook.com/docs/plugins/like-button/

Hay que rellenar un formulario con algunos datos:
– La URL de la página de Facebook a la que hacer Me Gusta,
– Plantilla deseada para el plugin (hay varias para elegir, con distinto aspecto)
– La acción del botón (Like o Recommend)
– Especificaremos el ancho del botón manualmente en píxeles
Se nos dará un código generado en función de los datos del formulario previo. Podemos modificar este código para adaptarlo a nuestras necesidades.

Scratch – programación sencilla

Interesante aplicación para aprender a programar de manera muy sencilla, basada en el lenguaje Actionscript. El aspecto y los colores de esta interfaz gráfica la hacen parecer una aplicación para niños, pero de forma sencilla se pueden hacer cosas bastante interesantes y complejas.

Después de unas breves notas sobre la interfaz, describiremos paso a paso cómo hacer un pequeño juego donde un tiburón se come aun asustadizo cangrejo

Descarga: http://info.scratch.mit.edu/es/Scratch_1.4_Download

Sobre la interfaz

Menú principal. Donde están los botones de guardar, Archivo, Editar…

– Columna. La interfaz de Scratch tiene 3 columnas principales:

En la columna izquierda encontraremos los «controles» en forma de «cajitas de colores» para programar los objetos.
– La columna central es la de edición de un objeto, donde las tres pestañas (disfraces, programas, sonidos) determinarán su comportamiento.
– La columna derecha es el escenario de nuestro programa. En su parte superior tenemos 4 controles para los objetos (duplicar, borrar, agrandar y achicar) así como la bandera verde y el botón para todo o botón rojo. En su parte inferior podemos importar y crear nuevos objetos y ver una lista de los objetos que tenemos.

– Escenario: la parte inferior derecha de la interfaz.

– Disfraz: son los sprites de los objetos. Un objeto puede tener más de un disfraz.

Controles: Esos «comandos» de colores de la columna izquierda, mencionaremos casi siempre su color entre paréntesis para facilitar su localización.

– Anclar: Es el movimiento que hacemos con los controles de la columna izquierda al dejarlos caer en la columna central sobre el «ancla» de otro control. Así asociamos, por ejemplo, el cambio de disfraz al tiempo que tarda en cambiar.

Rutina: conjunto de comandos de colores.

 

Interfaz gráfica de Scratch

1- Disfraces para un objeto: El tiburón muerde

En este paso añadiremos un objeto con 3 disfraces que se moverá por el escenario a nuestra voluntad, usando las teclas de dirección del teclado.

– En el Escenario, click derecho sobre el gatito > «borrar»
– Encima del Escenario , «pintar un objeto nuevo» > «importar»
– Escogemos el que se llama «shark1-a» (porque tiene varios disfraces) y aceptamos para importarlo
– Podemos reducir su tamaño usando el 4º botón de la fila de botones, «Achica objeto»,  que está encima de la vista previa
– Vamos a la etiqueta «Disfraces» (segunda columna), pulsamos «pintar». Escogeremos esta vez el segundo disfraz, llamado «shark1-b». Repetimos la operación para «shark1-c»
– Vamos a la pestaña «Programas»
– Desde «controles» (naranja) arrastramos a la columna de en medio «Al presionar bandera verde» y le anclamos «por siempre»
– Desde «Apariencia» (morado), metemos dentro de la cajita «siguiente disfraz».
– Y justo debajo de «siguiente disfraz», aún dentro de la cajita: «Control» > «esperar 0.06 segundos»

2- Movimiento del objeto


Con la siguiente captura de pantalla podéis ver cómo debe quedar la columna central de nuestro Scratch. Es esta imagen se incluye también todo lo del paso anterior, es decir, la mordedura del tiburón con sus tres disfraces.

En este paso añadimos 4 controles (naranja) «Al presionar tecla …», seleccionamos las flechas del teclado. En cada uno añadimos un movimiento azul «Apuntar en dirección …» donde seleccionaremos las cuatro direcciones de las flechas del teclado. Y añadiremos 4 un controles más, «mover 10 pasos» a cada uno.

Resumen de pasos 1 y 2

3- Otro comportamiento del objeto: El cangrejo rebota y huye

Este objeto se moverá solo por el escenario y rebotará contra los bordes.

– Importamos el objeto «crab1-a» desde el escenario, como hicimos con el tiburón.
– Cada vez que seleccionemos un objeto del escenario (haciendo doble click), la columna central cambiará a la edición del objeto que hayamos
– Desde Programas, Al presionar bandera verde > por siempre > esperar 0.06
– Nuestro cangrejo se mueve, pero no rebota. Tenemos que hacer uso de otros controles para que lo haga siempre que toque un borde.
– Añadimos un «al presionar bandeja verde», como siempre, pero esta vez la «cajita» no será «por siempre», sino «por siempre si».
– Ésta incluye una casilla vacía en la que colocamos un sensor (azul claro) «¿tocando.. ?» donde establecemos «¿tocando borde?».
– Vamos de nuevo a los controles (azul). Metemos dentro de la cajita «por siempre si» los siguientes: «apuntar en direción 90», «mover 10 pasos», «girar 15 grados». Dentro de «apuntar dirección 90» arrastramos un control operador (verde) de resta, que tiene 2 casillas vacías. En la primera arrastramos un control de movimiento (azul) «dirección» y en la segunda hacemos click y escribimos 180 .
– En este punto, si probamos el programa, veremos un comportamiento distinto del cangrejo: ya rebota contra los bordes, haciendo un giro cada vez.
– Nos gustaría que el cangrejo siempre permaneciese con las pinzas hacia arriba. Para ello, marcamos el botón «solo mirar izquierda-derecha» que está en la columna central, arriba (a veces cuesta encontrar esta opción. En la captura siguiente, se encuentra debajo de «Archivo» del menú principal).

Movimiento y rebote del cangrejo

– El cangrejo debería huir del tiburón cuando esté cerca de él. Para este comportamiento debemos incluir los siguientes controles:

al presionar bandeja verde
por siempre si (tocando (objeto 1))
apuntar en dirección (operador resta(dirección – 180))
mover 10 pasos

Se puede ver en la siguiente captura:

Huida del cangrejo

4- El cangrejo es comido

 
Sólo una pequeña nota para explicar estos controles: como el cangrejo va a desaparecer cada vez que el tiburón lo toque, necesitamos que vuelva a aparecer cada vez que presionamos la bandeja verde. Por eso usamos el control de apariencia (morado) «mostrar».
al presionar bandera verde
     mostrar
     por siempre si (tocando (objeto 1))
esperar 0.5 segundos
           esconder
El cangrejo es comido

5 – Un fondo marino animado

– Columna derecha > parte inferior > Click en Escenario > Columna central > pestaña fondos > botón importar > carpeta nature > underwater.
– Añadimos otro fondo marino, para tener dos fondos.
– Borramos el fondo blanco que nos necesitamos.
-Editamos uno de los fondos. En esta nueva ventana nos aparece un sencillo editor de imágenes. La idea es cambiar las burbujas del fondo marino, seleccionándolas y girándolas. También podemos borrar algunas burbujas, para conseguir un efecto similar.
– Ahora tenemos dos fondos casi iguales, sólo cambian las burbujas.

– Vamos a la pestaña «Programas» del Escenario y añadimos esta rutina para cambiar de escenario y conseguir el movimiento de las burbujas, gracias al control de apariencia (morado) «siguiente fondo»:

al presionar bandera verde
por siempre
siguiente fondo
esperar 1 segundo

Cambio de fondo

6 – El tiburón crece cuando come


Lo conseguimos con el control de apariencia (morado) «fijar tamaño a». Nótese el uso de fijar tamaño antes de «por siempre si», por el mismo motivo que en el punto 4, «El cangrejo es comido». El tiburón cambiará de color al comerse al cangrejo, vean el control de apariencia (morado) «cambiar efecto color por 25» que se usa para este fin Seleccionamos el tiburón y añadimos esta rutina:

al presionar bandera verde
fijar tamaño a 48%
por siempre si (tocando (objeto 2))
fijar tamaño a (operador suma (tamaño + 20%))
cambiar efecto color por 25

Tiburón crece y cambia de color

7 – Terminando el juego

En este punto debemos crear otros objetos para que sean pasto de la gula de nuestro tiburón. Basta con hacer clic derecho encima de nuestro cangrejo y elegir «duplicar». Crearemos 3 más. Opcionalmente podemos cambiarles el disfraz para tener más variedad en nuestro fondo marino. Los objetos duplicados tendrás los mismos programas que el original.

El tiburón se va a poner las botas…

Necesitamos añadir una rutina para cada uno, para que el tiburón se los pueda comer. Seleccionamos el tiburón y, en sus programas, modificamos la rutina del punto 6 para que quede como el la imagen. E juego acabará cuando el tiburón alcance cierto tamaño:

 

Clic derecho sobre la rutina > duplicar. En «¿tocando objeto 2?» ponemos «objeto 3». Duplicamos de nuevo… así hasta tener 4 rutinas.

Fuente: https://www.youtube.com/watch?v=0yPwpA7mRB0

Este post es un resumen del contenido del vídeo https://www.youtube.com/watch?v=0yPwpA7mRB0. Me he suscrito al canal del autor, ¡que siga haciendo vídeos, por favor!

Programar en Java para Android

PRIMEROS PASOS

Descargamos el SDK (Standard Development Kit) en la siguiente dirección: http://developers.android.com, haciendo clic en en «Get the SDK«. Luego seleccionaremos si nuestro S.O. es de 32 ó 64 bits. La descarga también incluye el IDE, llamado EclipseEs un archivo .zip de 480 Mb (a la fecha de esta entrada).

Se puede trabajar con otros IDE, pero al parecer los desarrolladores prefieren éste. Los de Android están trabajando en Android Studio.

Descomprimimos el archivo, y dentro tenemos dos carpetas: una para el Eclipse y otra para archivo del SDK. Además de un ejecutable llamado SDK Manager, que nos servirá para añadir complementos al SDK.

– PROBLEMA al ejecutar Eclipse: http://zonaforo.meristation.com/error-al-iniciar-eclipse-t1964065.html
– Al parecer, mi vesión de Java es de 32 bits… Así que descargo el SDK de 32 bits, como me aconsejan en esa solución: http://reescribiendo.wordpress.com/2011/09/25/solucin-not-java-virtual-machine-was-found-en-eclipse/

USO DE ECLIPSE

– En Help > Install new software se crea un directorio de repositorio para instalar desde una URL (https://dl-ssl.google.com/android/eclipse/) aplicaciones de Android para Eclipse.

– En el 5º icono de la barra de herramientas (Window >Show Toolbar) se descargan las versiones de Android. Por defecto me vienen marcados 5 paquetes para instalar, algunos relativos a la versión 4.4 (en el vídeo que me explica el tutorial, la versión es la 4.2).

– En el 6º icono, para el AVD Manager, configuramos la máquina virtual. Agregamos un Android Virtual Device, o un dispositivo virtual, que tiene que tener ciertas características del dispositivo.

Leer más