Cómo mover y cambiar de tamaño zonas (versión turborresumida, ya llegará la versión completa en el



Documentos relacionados
UNIDAD 1. LOS NÚMEROS ENTEROS.

Porcentajes. Cajón de Ciencias. Qué es un porcentaje?

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

CURSO RÁPIDO DE PHOTOSHOP APLICADO AL SLOT

L204 DVD-ROM 1 Audio transcripts: Unidad 1

Programación Gráfica 2D ( IV ) Tilemapping.

CURSILLO DE ORIENTACIÓN

Tema 3. Medidas de tendencia central Introducción. Contenido

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

CURSO RÁPIDO DE PHOTOSHOP APLICADO AL SLOT

Esta es la forma vectorial de la recta. Si desarrollamos las dos posibles ecuaciones, tendremos las ecuaciones paramétricas de la recta:

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

Capítulo 0. Introducción.

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

DISENO DE CURSOS AUTOGESTNOS. Mana del Socorro Perez Alcala

Cuando crees tus propios documentos, puede ser que alguna

Solución a las diferentes preguntas que puedan entrar en el examen de CCNA. David Santos Aparicio

AP ERTURA/ CIERRE DE CAJA TP V GN40

COMO INSERTAR UN FICHERO DE MUSICA MP3 o WAV EN UN PPS O PPT (Microsoft Office 2003)

PRÁCTICAS CON ROBOMIND. PARTE 1.

Traslaciones, Homotecias, Giros y Simetrías

LA OLA. Cinco cuentos para leer en voz alta. Autor: Antonio Pons

pez agencia CLAVES PARA EL EXITO DEL ALQUILER

Introducción al diseño híbrido con ZW3D

LAS ESCALAS EN AUTOCAD.

- Potencia contratada: Esto lo vamos a ver con más detalle al final. La potencia es una medida de la velocidad a la que se consume la energía.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Cajón de Ciencias. Ejercicios resueltos de Movimiento rectilíneo uniforme

Diana Raquel Sierra A. Mg

Quiero mucho este trabajo, me llena a pesar de sus pros y contras.

Un juego de cartas: Las siete y media

Recuperar baterías por David MJ

Qué es y para qué sirve Excel2007?

Cajón de Ciencias. Problemas resueltos de sistemas de ecuaciones

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

LAS FRACCIONES DE CARLOS

El podcast de PrestAyuda vende más y más rápido con Gert Mellak.

Gimp - Segunda parte. En qué formatos puede grabar GIMP mi imagen? Guardar una imagen

Curso Internet Básico - Aularagon

Tema 2. Espacios Vectoriales Introducción

Recuva funciona muy bien, siempre y cuando se cumplan dos factores fundamentales que son:

Orbitales híbridos. Cajón de Ciencias

MANUAL DE AYUDA MODULO TALLAS Y COLORES

P: VOLVEMOS A HABLAR CON EL ABOGADO JOSÉ RAMÓN ZURDO, DIRECTOR DE LA AGENCIA NEGOCIADORA DEL ALQUILER ÚNICA EMPRESA DEL MERCADO QUE PAGA

Una App para Facebook

KIG: LA GEOMETRÍA A GOLPE DE RATÓN. Asesor de Tecnologías de la Información y de las Comunicaciones

Ecuaciones de primer grado con dos incógnitas

Cap. 24 La Ley de Gauss

Dónde podemos encontrar su origen? El origen de las constelaciones encuentra en Bert Hellinger que las desarrolló en los años 80.

Conversor de audios y vídeos.

La relación entre la altura de caída y el tiempo que tarda en rebotar 6 veces una pelota

Descomposición factorial de polinomios

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

Transformación de gráfica de funciones

LECCIÓN 1 5 PROBLEMAS RESUELTOS

Los 8 Errores más comunes en la Gestión y el Marketing de Restaurantes

Guías MATCH: Aprendiendo Matemáticas con Scratch. Recomendado para: 9 ó 10 años Nivel de Scratch: Inicial Trabajo en aula: 2 horas

EQUIPAJES: RESPUESTAS

MANUAL DE CREACIÓN DE CARPETAS PARA ACCESO POR FTP DE CLIENTES EN UN NAS

ALMACEN 1. En el ejemplo se muestra al proveedor 1, que realiza la fase 40. Automáticamente se creó el almacén P1.

GRABACIÓN DE DATOS Apuntes de mecanografía

Manual de configuración de cuentas correo Configuración de Alias de Correo

Sesión 3 - Movimiento Diferencial

Emprendedores sociales como generadores de cambio

Miguel Angel Marcos 2007

Práctica del paso de generación de Leads

DEPARTAMENTO DE EDUCACIÓN FÍSICA CURSO 2011/2012

Si quieres, te enseño mi pueblo!

1

El almacén: sistema de archivos

Combina, prueba, tantea PÁGINA 14

Controles parentales. 2. App recomendadas. - Tower Math / tabla periodica /Roma - Como buscar y descargar una App -

CREAR UN ÁLBUM DE FOTOGRAFÍAS

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común:

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

RESUMEN. Colegio Antonio Machado Baeza (Jaén)

IVOOX. 1º.-Subir y gestionar archivos.

Y tú, cómo mides tus campañas? Las claves para aumentar tus conversiones.

Consideremos un mercado normal con una oferta y una demanda normales (Gráfico 1).

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

Base de datos en Excel

Ejercicios resueltos: fracciones y decimales

Actividades con GeoGebra

QUE DA. Parte 1. nosotros). Tienes gripa,

ENCENTRO NACIONAL DE JUVENILES CATEQUESIS PREVIA: ENCUENTRO nacional de JUVENILES 2015

MACRAMÉ - TUTORIALES PROPIOS PARA HACER PULSERAS

Tutorial para hacer una base de datos sencilla con openoffice Base

Como dibujar las vistas de una pieza en Autocad

PROGRAMACIÓN DE JUEGOS EN.NET PARA POCKET PC

MANEJANDO FICHEROS Y CARPETAS

Recordando la experiencia

Curso de PHP con MySQL Gratis

FOCO- LIQUIDACIÓN: DUDAS MÁS FRECUENTES

Guía para principiantes de Photoshop

Estás en: Mi hijo de 6-12 años > Educar en casa > Rutinas

EJERCICIOS RESUELTOS 1º DE BACHILLERATO (Hnos. Machado): EJERCICIOS DE REFUERZO 1º EVALUACIÓN (Cinemática) Por Álvaro Téllez Róbalo

INSTALACION DEL Terminal Services. Instalamos el Terminal Services. Siguiente. Nos saldrá una advertencia, seleccionamos instalar.

Cálculo del radio de la Tierra. Método de Eratóstenes ( Siglo III a.c.)

Transcripción:

Cómo mover y cambiar de tamaño zonas (versión turborresumida, ya llegará la versión completa en el turbotutorial de LUA) Intro Lo primero que hay que saber es que LUA trabaja con identificadores, no con nombres. Así que cada zona tiene que tener su identificador único. Otra cosa que hay que saber es que cada cosa que haya en el cartucho, siempre tiene más propiedades ocultas de las que aparecen en Urwigo. Para el caso que nos ocupa (zonas), en Urwigo puedes cambiar el nombre, descripción, identificador, los puntos pero no viene por ejemplo el OriginalPoint. El OriginalPoint de una zona es un punto que se genera en el centro geométrico de la zona, y es muy importante. Se puede cambiar desde LUA. Generar una zona de forma matemática Vamos a aprender a generar una zona de forma matemática. Para ello, vamos a usar la función interna de wherigo llamada Wherigo.TranslatePoint(puntoRef,distancia,rumbo). Esta función lo que hace es generar un nuevo punto, trasladando puntoref una distancia según un rumbo. En wherigo, las distancias no son un simple número, ya que tienen unidades (pueden ser 20 m, 20 km ). Por lo tanto, hay que convertir a distancia antes de usar un número como tal. No hace falta que la zona de origen que vamos a transformar tenga el mismo número de puntos que queremos que tenga una vez transformada. Vamos a generar un círculo:

Vayamos paso por paso: function GENERAR_CIRCULO(zona,radio) Es la definición de la función que usaremos para generar círculos. Lo que hace es coger la zona zona y convertirla en un círculo de radio radio. local distancia=wherigo.distance(radio, m ) Creamos una variable local llamada distancia, y la convertimos a tipo medida. Su valor es igual a radio, y está expresada en metros. zona.points={ } Creamos un array. Dicho array representará los puntos de zona. Qué puntos están dentro de ese array? Pues traslaciones de zona.originalpoint, una distancia, y un rumbo. Fíjate que hacemos un punto cada 20º, por lo que al final quedará un círculo bastante redondo. Si hiciéramos 36 puntos, uno cada 10º, quedaría más redondo, pero claro, consumiría más. zona.active=false, zona.active=true Para que whereyougo registre el cambio, la zona ha de ser desactivada y activada tras los cambios de puntos. Si estaba desactivada de origen, pues cuando la actives, estarán hechos los cambios.

Si te das cuenta, como esta es una forma geométrica simple, podríamos haber hecho dos bucles que habrían quedado turbo guapos: Mover una zona Mover una zona parece muy difícil, pero es lo más sencillo del universo. Como has visto en el ejemplo del círculo, los puntos los hemos generado desde el OriginalPoint. Si movemos el OriginalPoint a otro lado, cuando generemos la zona se generará desde el nuevo OriginalPoint. Podemos hacer un Timer tipo Interval, que cada x segundos mueva el OriginalPoint en un rumbo una distancia, y después genere de nuevo el círculo (o que se mueva con cualquier otro evento, no sólo por Timer): Como puedes ver, cuando el timer se acaba, se mueve el Origen de ZonaPrueba 10 m con rumbo 90º. Luego, genera el círculo desde ese nuevo origen, con radio 50.

Y si quiero que la zona se mueva con una trayectoria determinada? Pues lo que hacemos en ese caso es una zona cuyos puntos definirán la trayectoria. Por ejemplo, imaginemos que creo una zona identificada como Trayectoria, que tiene 20 puntos: Nuestra ZonaPrueba, se moverá por cada uno de los puntos de Trayectoria ( Pac man!). Para ello, volveré a usar el Timer tipo Interval (repito que puede ser cualquier evento). Cada vez que haga un On elapse, moverá el ZonaPrueba.OriginalPoint al siguiente punto de Trayectoria. Vamos a crear una variable numérica que se llame Posición en la trayectoria, identificada como PosTrayectoria. Inicialmente, esa variable tomará el valor 1 (nuestro círculo comienza en el primer punto de la trayectoria), y cada On elapse, dicha variable se incrementará en 1 (el círculo avanzará al siguiente punto de la trayectoria). Cuando PosTrayectoria llegue a 21 tomará el valor 1 otra vez (la trayectoria tenía 20 puntos nada más), para que esté permanentemente dando vueltas a la Trayectoria:

Y si lo que quiero no es usar una forma geométrica simple, sino un dibujo chungo que te cagas? Te habrás dado cuenta que usar un círculo es muy fácil, porque el radio es constante, y los rumbos son pues 10,20,30,40, etc pero y si el dibujo es chungo que te cagas? Bueno es lo mismo. Lo que pasa es que hay que conocer antes las distancias y los rumbos desde el OriginalPoint hasta cada punto del dibujo Cómo hacemos eso? Consideremos la siguiente zona de 14 puntos, identificada como Explosion : Haremos uso de la función interna de wherigo Wherigo.VectorToPoint(punto1,punto2). Esta función lo que hace es dar una distancia y un rumbo entre un punto1 y un punto2. Yo lo hago así: Esto lo que hace es calcular el rumbo y distancia desde el OriginalPoint a cada uno de los puntos de la zona. En este caso, la zona tiene 14 puntos. la función print lo que hace es imprimir el valor de rumbo y distancia en la consola de DEBUG de urwigo, de tal forma que cuando llamo a esa función tendré un output como este:

Ahora conozco los rumbos y distancias desde el OriginalPoint hasta cada uno de los puntos de mi dibujo. Por lo tanto, puedo hacer lo siguiente: Ya de paso, acabo de introducir el concepto de reescalar y de girar, ya que como ves, las distancias están multiplicadas por un factor, y los rumbos están sumados a un giro. Cuando haces la llamada a la función estableces ese factor y ese giro, para poder cambiar la zona al gusto. En este caso, convierto ZonaPrueba en el dibujo de la explosión, pero 4 veces más grande y girado 15º.

Bueno, hay mil cosas más que se pueden hacer, por ejemplo, para hacer que una zona se mueva y persiga al jugador, se puede calcular el rumbo con Wherigo.VectorToPoint(zona.OriginalPoint, Player.ObjectLocation). Esto nos daría el rumbo entre el original point de la zona y la localización del jugador. Si se calcula dicho rumbo justo antes de mover la zona, la zona se moverá hacia el jugador (zombies!!) No me he querido meter demasiado en el tema de la sintaxis de LUA, simplemente en los procedimientos para resolver los distintos problemas que nos hemos planteado. Con tiempo y una caña, haré un tutorial más exhaustivo.