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.


Mensajes - Drumpi

Páginas: [1] 2 3 ... 389
1
Recursos / Re:MP3 pasa a sel libre
« en: Mayo 16, 2017, 03:31:50 pm »
Tenía entendido que lo que tenía licencia era el algoritmo  de compresión y descompresión, y por eso lo que había que pagar no era el formato del fichero, sino la posibilidad de reproducirlos :P

2
Javis ¡Que hablas de Momia! Como si no lo conocieras :D (igual que su manía de hacerlo todo tan a lo grande que lo deja todo a medias ¿Para cuándo "el Cuervo Negro" en el Invento Fighting? :D).

Nah! El efecto queda muy chulo, y los gráficos geniales, como siempre :) Y muy curioso eso de que se vuelva verde el blit aditivo ¿Será que se usa tan poco que no nos hemos dado cuenta hasta ahora?
Ya nos dirás cómo queda todo, ¡ganas de verlo hay! :)

PD: mírate lo de la heces. Por mucha verdura que estés comiendo, ese verde no es nada bueno :D :D :D

3
Mesa de Ayuda / Re:otro problema
« en: Mayo 16, 2017, 03:17:44 pm »
¿Tienes problemas de programación? ¿Te va mal con tu proceso "amigo"? No lo dudes, llama ahora a Drumpi a su "servicio técnico de la vida". Resolvemos tus bugs usando una bola de cristal.
^^U

"enemigo_muerto" es una variable privada de tipo int cualquiera. Ponle el nombre que quieras, pero declárala en el private o te perseguirá hacienda :D
"collision" devuelve un entero, que vale el ID exacto del proceso con el que choca, o cero si no ha habido colisión.
"get_id" te devuelve un ID cualquiera del proceso de ese tipo. Tu matabas a un proceso cualquiera, que no era necesariamente el que chocaba, y por eso, al siguiente frame, volvía a existir una colisión y mataba a otro proceso diferente. Esto pasaba hasta que dejaba de haber colisión o, por suerte, se eliminaba el proceso que querías.

Pues eso, guarda el valor de collision en una variable, comprueba que no es cero ¡Y ACABA CON ÉL!
¡¡¡OJO!!! Que haces get_id para matar al proceso enemigo y también está mal: la ID del propio proceso se guarda en una variable local predefinida llamada "id"... pero no hagas el kill hasta que termine su código. En tu caso lo pondría DESPUÉS de la animación de la explosión, cinco líneas más abajo.

Aunque recomendaría en un futuro que sustituyeras el LOOP por un WHILE que valga true mientras esté vivo (por ejemplo, que su energía > 0, o una variable llamada vivo = true), y que al chocar con la bala hagas que se salga haciendo que su condición valga false. Y ya pones la animación de la explosión después y dejes que se muera al terminar el código.

Está un  poco viejo, pero el código de Fénix es 95% compatible. El tutorial de iniciación DIV/Fénix de esta página (http://drumpi1_0.en.eresmas.com/Tutor/Tutor.htm) lo hice hace tiempo para los que no se querían enfrentar al tutorial de Osk ni encontraban el manual de DIV, pero es lo que he usado para los matamarcianos todos estos años... o al menos, son las 200 primeras líneas de código que les escribo ^^U

4
PixTudio / Re:Proyecto para aprender y jugar
« en: Mayo 13, 2017, 11:30:40 am »
Vale, le he estado echando un vistazo y me faltan cosas o son exclusivas de la versión del pixpack:
- Del ejemplo de storage.prg, he visto que se usa la mod_ext_library, pero ni viene en el bennu oficial, ni la encuentro en ninguna parte del pack, y sin ella PixtudioPM no me deja ni compilar ni exportar.
- Del ejemplo del input, he visto el uso de START_TEXT_INPUT... pero ninguna referencia a dónde está declarada, y Pixtudio no la reconoce. La he buscado por el pack sin resultados, aunque ya he dicho que tampoco teng demasiado tiempo para perder en ello.

Lo siento, L1nk, pero necesito que seas un poco más preciso en tus respuestas, aunque me las digas en inglés, no me importa.

Y lo de la variable ASCII es que no tiene sentido: shift es á, bloq mayus es 9... no puedo siquiera limitar los caracteres cuando las teclas de función se reconocen como caracteres normales :S

5
Mesa de Ayuda / Re:preguntas de un principiante sobre bennugd
« en: Mayo 13, 2017, 05:23:04 am »
¡¡Genial, Splinter, tengo ganas de echarle un vistazo!!

Hokuto40, vas a tener que ser un poco más específico con "movimiento tipo R-Type", pueden ser movimientos rectilíneos, curvilíneos, parabólicos, sinusoidales, random... :D
Pero para que no te alarmes, te doy unas pistas que te van a ayudar.
- Primero, intenta mantener a los enemigos que se mueven fuera del scroll, es decir, no uses ctype, te va a ahorrar muchos quebraderos de cabeza. Úsalo para torretas y esos enemigos que estén en una posición determinada.
- Segundo, mantén siempre separado el movimiento en vertical y en horizontal. Evita usar cosas como advance, o te darás de bruces con vectores, ángulos y demás: usa KISS! (Keep It Simple, Stupid!).
- Para consegir unas rutinas buenas, tienes que jugar con la velocidad de las naves. Necesitas declarar para cada enemigo una variable de velocidadx y velocidady, que deben sumarse a su X e Y en cada frame:
Código: [Seleccionar]
x += velocidadx;
y += velocidady;
frame;
Así, si al crear un enemigo con velocidadx = -20, y en cada frame haces velocidadx++, conseguirás que la nave aparezca moviéndose hacia la izquierda, e irá perdiendo velocidad progresivamente hasta que empiece a moverse hacia la derecha.
Código: [Seleccionar]
x = 850;
y=200;
velocidadx = -20;
velocidady = 1;
while (x < 900)
    velocidadx++;

    x += velocidadx;
    y += velocidady;
    frame;
end

- Usa RESOLUTION. Te va a venir muy bien para ajustar velocidades.

Respecto a los enemigos, eso es una historia más larga. Ahora no me puedo poner a contártela, pero un ejemplo muy sencillo sería que generases un punto aleatorio en la pantalla, y que el enemigo se moviese hasta él. Es lo que hice en el último crap-juego: space52 (creo que lo subí con código fuente y todo en el hilo de la última crap-compo).

Me voy a comer, ¡que aproveche! :D

PD: los valores los he puesto al tun tun, para una resolución de 800x600, tendrás que ajustarlos ^^U

6
Mesa de Ayuda / Re:otro problema
« en: Mayo 13, 2017, 05:00:54 am »
¿Puedes copiar el código del enemigo y del disparo? Por la descripción sólo podemos hacer conjeturas, pero por lo que cuentas, parece que no estás cogiendo la ID correcta del enemigo. ¿Es posible que estés usando GET_ID(type enemigo) en lugar de:
Código: [Seleccionar]
enemigo_muerto = collision(type enemigo)
if (enemigo_muerto != 0)
    signal(enemigo_muerto, s_kill);
end
?

7
Mesa de Ayuda / Re:Peticion de tutorial de un principiante
« en: Mayo 13, 2017, 04:56:56 am »
Quieras que no, incluso con Unity al final terminas escribiendo decenas de líneas de código. Y más te vale ir sobrado de trigonometría y matemáticas vectoriales en general, porque si en Bennu es lioso, en Unity que TODO va a base de vectores y (trago saliva) cuaterniones (en serio, todos los usan y nadie sabe lo que son :D).
Y aun así, muchísima gente considera Unity como un editor de prototipos en lugar de editor de videjuegos :D

Paciencia es la palabra clave. No sólo por todo el trabajo que hay detrás, si no porque te tienes que estar peleando constantemente con el ordenador :P

8
Mesa de Ayuda / Re:pivote
« en: Mayo 13, 2017, 04:51:37 am »
¡Y tanto! Pero vamos, basta con que alguien se ponga a subir cosas al foro para que la comunidad se reactive, aunque sea un poco :D
Si no, con que Pixel organice otra crap compo a partir de mediados de Junio (guiño guiño), esto se pone en marcha :D

PD: ¿aun no se han subido los juegos de la crap 7? ¿O es que los quieres juntar con la 8? LOL

9
PixTudio / Re:Proyecto para aprender y jugar
« en: Mayo 13, 2017, 04:46:36 am »
No, estaba usando la variable global ASCII con el código típico para inputs (el bucle, comprobar que ascii es diferente al frame anterior, según qué caracter añadir a la string, borrar o salir...).

Ahora sólo dispongo de 30 minutos diarios para programar, y los días que tengo más, estoy tan cansado que como la noche anterior no haya dormido 10 horas, no tengo fuerzas ni para escribir más de cinco líneas de código ^^U

Sí, ya estoy oficialmente de nuevo trabajando: SAP y Visual Basic ¡qué horror! :D Llego a casa y programar en PixTudio una app manejando seis listas enlazadas y una GUI propia me resulta hasta relajante ^^U

Bueno, el caso es que debido a esto, estoy tomando las decisiones más rápidas y sencillas con el programa, en lugar de pararme a resolverlo como Dios manda, por eso, estoy usando el generador de FPGs de Pixel de nuevo, y añado los puntos de control por código al cargar los gráficos (no eran tantos como me imaginaba). Y en el editor estoy usando el teclado del PC, por lo que es posible que la primera versión salga sin editor (al menos en Android).
Por increible que parezca, el programa ahora mismo maneja unas seis listas enlazadas, y en el editor ya puedo añadir y quitar elementos. Aun faltan cosas por hacer, como activar los botones que editan los elementos de la lista (los botones de añadir y quitar funcionan de lujo, a pesar de tener tanto que tener en cuenta), generar la función que divide un texto para que quepa en el ancho de un botón o guardar/cargar los ficheros de datos... ¡y aparte lo que va a ser la app en sí!. Debería terminarlo para mañana, pero es misión imposible.

Voy a mirarme esos ficheros, Link, a ver qué puedo sacar en claro, gracias. El problema es lo que ya he dicho anteriormente: no tengo tiempo para ponerme a investigar o hacer experimentos, y no quiero instalar otro notepad con una versión custom de PixTudio porque ya ni sé cuál de los que tengo está instalado ni qué plugins son los que traen ^^U
Ahora, si el teclado y el Input me sacan del apuro, te voy a tener que estar dando karmas durante una semana :D

10
PixTudio / Re:Proyecto para aprender y jugar
« en: Mayo 12, 2017, 09:13:47 am »
Dos preguntas rápidas, que tengo que salir, y cuando venga a leer la respuesta os pongo al tanto de cómo ha avanzado esto:

- ¿Cuál es la ruta de la carpeta "downloads" en Android? En unos sitios leo "/sdcard/Downloads", en otros "/sdcard/downloads", y en otros que use una función de Android que no sé si está implementada. Y de paso la de la SD externa, que creo que esa es "/mnt/external-sd" siempre.

- Esta ya la hice pero no obtuve respuesta: cuando pulso shift o la tecla de la tilde, ASCII devuelve un valor válido (o eso parece) y en lugar de escribir sólo "A" o "é" me escribe dos caracteres diferentes ¿es un bug o es que ha habido que cambiar el comportamiento habitual de ASCII? Lo digo por esperar un arreglo de Pistudio o hacerme un apaño en mi código para arreglarlo.

11
Mesa de Ayuda / Re:pivote
« en: Mayo 05, 2017, 04:59:33 pm »
Sí, set_center (o set_point(file, graph,0,posx,posy)) aplica a todo lo referenta al gráfico: rotaciones, escalados, distancias y posiciones. Se puede setear en ejecución con esas funciones... o directamente al generar el FPG con cualquier editor (y creo que el formato MAP también lo admitía).

12
Mesa de Ayuda / Re:Peticion de tutorial de un principiante
« en: Mayo 05, 2017, 04:55:54 pm »
Si tu supieras lo que se tardó en programar esos ejemplos que mencionas... :D
Sólo por poner el ejemplo más tocho: SoR Remake lo hicieron Bomber (un forero desde los tiempos de Fenix y más allá) y su equipo en 5 AÑOS (la última versión fue la v5.0)... para que SEGA les dijera que no podían publicar su trabajo.

L1nk3rn3l te ha señalado un paquete con muchísimos ejemplos, empieza por ahí, y ve haciendo cosillas sueltas, no quieras correr. Modifica poco a poco los ejemplos, curiosea, léete las funciones para ver qué hacen, y ve mejorando poco a poco.

13
Mesa de Ayuda / Re:preguntas de un principiante sobre bennugd
« en: Mayo 05, 2017, 04:49:03 pm »
Venga, te doy una pista sobre las animaciones:

Código: [Seleccionar]
cont++;
if (cont == 4)    //Así el gráfico cambia cada 4 frames
    cont = 0;
    graph++;
    if (graph == CTE_ULTIMO_GRAFICO_ANIMACION)
        graph = CTE_PRIMER_GRAFICO_ANIMACION)
    end
end
...
frame;

Lo de las durezas, no te martirices, porque es algo que cuesta entender de buenas a primeras. Primero intenta usar un mapa de durezas del mismo tamaño que el que verá el jugador, y cuando lo entiendas lo reduces. La idea es comprobar el color de los píxeles del mapa por los que va a pasar el personaje en ese frame. Es decir, que si va a avanzar 4 pixels, tienes que hacer 4 comprobaciones, pero si sólo una falla, ya no puedes avanzar (o tienes que desviar la trayectoria, ya depende de lo que estés programando). ¿Qué se comprueba? si el pixel permite pasar a tu prota o no, por ejemplo, si el color del siguiente pixel es el 0 (negro), puede seguir avanzando, pero si es 1 (por ejemplo, rojo) ha topado con una pared y no podrá moverse.
¿Cual es la mayor dificultad? el movimiento en diagonal, que lo mismo se puede mover en vertical, pero no en horizontal, o por cada pixel en vertical se debe mover dos en horizontal. Y claro, en un juego de plataformas, donde intervienen el movimiento del jugador (horizontal) y la gravedad (vertical), pues tienes ese problema siempre. Por eso insistía en que empezases por algo en vista vertical: en el peor de los casos, el movimiento diagonal es de 45º.

Si no sabes cómo programarlo, recurre a los diagramas de flujo, o al pseudolenguaje, o a cualquier lenguaje que domines, y luego intentas traducirlo a Bennu.

Sobre los libros, lo siento, sé que se subieron al foro, pero no recuerdo dónde, ni si los descargué ni... Yo ya me los leí en su momento porque me los dejaron una temporada y casi que me los aprendí de memoria, aunque tengo que repasarlos para añadir plataformas móviles a uno de mis juegos.
Pero tómatelo con calma, esto lleva tiempo y mucho ensayo y error: mi primer plataformas, FenixLand, tardé como un mes en conseguir que el prota caminase, y aun así tenía fallos que he ido corrigiendo con el tiempo. No sé ni donde anda la descarga ya (el proyecto lo tengo)

14
Offtopic / Re:Felicitaciones 2016!!!
« en: Mayo 03, 2017, 09:04:52 am »
De nada, retrasado... quiero decir ATRASADO, que ya ha pasado un mes y medio :P

15
Mesa de Ayuda / Re:preguntas de un principiante sobre bennugd
« en: Mayo 03, 2017, 09:02:06 am »
Es que FPGEditor no tiene nada que ver con Bennu. Lo de la velocidad de las animaciones es simplemente una vista previa de cómo quedaría en pantalla. Hacer que la velocidad de la animación sea más lenta o rápida la tienes que programar tu, bien como comenta oskarg, o con un contador que haga que cada 2 frames, 4 frames, o los que tu quieras, cambie.

Y no te lo voy a negar: hacer un juego de plataformas no es fácil en Bennu, y menos si lo comparas con Construct2, Unity, etc. La diferencia es que en Bennu, pese a sus limitaciones, es sorprendentemente más rápido que con Unity. Estuve trabajando en un juego en el que un Dual Core se arrastraba para tener 12 personajes y mover 5 en pantalla fija, y sin embargo, en Wiz (1 cpu a 700MHz sin aceleración gráfica) puedo poner a 15 enemigos en un scroll tileado sin optimizar, con una detección de durezas horrible, a la misma velocidad.

¿Qué pasa? Lo que ya te he comentado: Unity tiene el motor Physx ese que te hace todo el trabajo, y en Bennu no. Bueno, te lo dije y no lo has mirado: tienes Chipmunk que te hace eso mismo (lo que no tengo son enlaces a las demos de la gente)
Y tutoriales de plataformas hay: en el manual de Osk creo que está comentado el código del Castle of Dr malvado en versión Fenix, paso a paso, y ese mismo código lo tienes para DIV en el "Manual avanzado", que es un tocho para leer de narices, pero te explica los matamarcianos, los plataformas, RTS, Aventuras gráficas y creo que hasta un Street Fighter. Pero hay que ponerse a leerlo.

Yo no recomiendo empezar por un juego de plataformas. Deberías empezar con un matamarcianos, seguir con algo en vista aerea, tipo carreras de coches o un juego de acción, y cuando ya domines las bases, ponerte con un juego de plataformas. Muchos novatos caeis en el mismo error, y por eso el 70% acaba abandonando.

Yo te recomendaría que le dedicases tiempo y siguieras con bennu, pero si necesitas resultados tan pronto, no te voy a decir que no pruebes fuera, pero por mucho que digan, a día de hoy, creo que Bennu es mejor para 2D que cualquier otro lenguaje.

Páginas: [1] 2 3 ... 389