Tontadas y pamplinas + Otras dudas

Started by Futu-block, August 19, 2016, 01:28:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

bueno, pasad de eso ahora mismo que hay otra cosa mas delicada y no me terminaré de aclarar (y tiene miga)

resulta que cuando quiero pasar el Jarl a wiz (que por algo tiene esa resolución) no hay manera, ahora bien y me dije que cojo un juego de wiz y lo modifico para que funcione, todo iba excelente, e incluso me daba fallo de color el fpg a convertirlo a 16bit fenix pero me daba igual, cargaba en el pc y me compilaba y podia jugar, hasta que...

Hasta que lo puse en la wiz y nasti del plasty
¿que caraho hay que hacer?
¿acaso ocupa mucha memoria?
Ay jesus, que cruz, estoy a punto de vender la consola del mosqueo que tengo

https://www.dropbox.com/s/tiuxj1ga78fj1rh/jarl.rar?dl=0

Drumpi

¿Te has acordado de que Wiz es Linux y de que es sensible a mayúsculas y minúsculas? :D

No sé, deberías sacar a fichero los mensajes de log y error, tanto al compilar como al ejecutar.
¿Has comprobado que no sea cosa del programa que usas para hacer el FPG? ¿Qué error te daba al hacer la conversión?
Datos, tienes que conseguir datos para que te resolvamos las dudas (el problema te lo arreglas tu :D).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

vale, despues de pelearme una mijita mas y conseguir un .gpe que me chive que pasa tengo los siguientes errores:

err1.txt = vacio


err2.txt
Segmentation fault
La he liao parda, jijiji

log1.txt
BGDC 1.0.0 (Jul  4 2016 21:44:16)
Bennu Game Development Compiler

Copyright (c) 2006-2016 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 José Luis Cebrián Pagüe (Fenix)

/mnt/sd/game/jarl/jarl.prg:3: error: DLL/import.prg: file not found ( token error: ";" ).


Eso me indica que falta un punto y coma en la linea 3, algo en que discrepo, si acaso es el include de la linea 5...



y aquí el DLL/import.prg por si acaso:


y ahora procedo a renombrar las carpetas, cambio la DLL por dll (minusculas) tanto en la carpeta como en el .prg principal, 1º porque me gustan minusculasy 2º por si acaso, pero que es absurdo porque si las dos estan en mayusculas, no deberia haber problemas, peeero, ahora cambia de esta manera:
BGDC 1.0.0 (Jul  4 2016 21:44:16)
Bennu Game Development Compiler

Copyright (c) 2006-2016 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 José Luis Cebrián Pagüe (Fenix)


File jarl.dcb compiled (108474 bytes):

  Processes                    13
  Global data                2892 bytes
  Local data                  224 bytes
  Private data                316 bytes
  Public data                   0 bytes
  Code                      25384 bytes
  System processes            385
  Globals vars                 59
  Locals vars                  29
  Private vars                 59
  Publics vars                  0
  Identifiers                 917
  Structs                       7
  Strings                      57 (549 bytes)

No se que he hecho pero parece que vá bien, hasta que veo que el log2.txt me vuelve a dar el mismo problema

log2.txt
FB_OpenMouse()
Using tslib touchscreen

¿he usado algo que no debia? creo que no, no uso mouse en el juego aunque creo que lo importo en la libreria

gecko

En el segundo caso (después del renombre de archivos), pareciera que está todo bien, por lo menos los logs no dicen nada que indique errores. El juego sigue sin andar?
Torres Baldi Studio
http://torresbaldi.com

Futu-block

nope, me sigue saliendo el err2.txt
Segmentation fault

creo que eso significa algo, ¿no?

total, que hace para cargar y en el ultimo momento se arrepiente y sale al menu

Futu-block

segun pruebas que estoy haciendo, el problema sigue dandose en linux
¿hay algun comando especial para compilar en windows o son los mismos que en linux?

Futu-block

Bueno, ya habiendo terminado el ¡¡Jarl!! el juego de Chiquito de la calzada, esta en mi firma y bla bla bla, aunque todavia no lo puedo portar a wiz, pero eso ya lo veremos en otra ocasión, ahora me centro en lo anterior, los puntos de control y espejados...

Gracias a los ejemplos y a la biblia he conseguido averiguar ciertas cosas:

·set_center = situa el centro del grafico en el sitio que tu quieres, en mi caso centro el cuerpo en el ombligo y el brazo en el hombro o parte superior del brazo

·set_point = pone el puntos donde tu quieres que despues sirven de referencia para otras cosas; de esto me costó la misma vida entenderlo puesto que guarda en una coordenada en una sola variable, que luego para pasarla a una coordenada x o y me preguntaba que como de una variable saco la x,y del proceso

·get point = este es el que pregunta por los puntos guardado en esa variable o punto seteado, y se guarda con el famoso & en la estructura ''de dió'' del dios bennu, claro

Todo esto está muy bien, se le puede dar movimiento y el brazo sigue saliendo del hombro y no del ombligo hasta que...

hasta que hay un giro, cuando hay un giro se vá todo al garete, y no estoy hablando de un flag o espejado porque si ya espejamos el brazo no solo es el grafico lo que se espeja sino el giro, al incrementar el angulo comienza a girar para el otro lado, no se si es comprensible y normal o un fallo de programación porque no se ha tomado en cuenta una nimiedad

Total, el tema de la consulta está solucionado, usaré esto de los points para cuando se pinche un grafico no se vaya el centro de la imagen al punto del ratón como tenia antes

En cuanto al giro y el espejado voy a usar lo siguiente:
Un boton adicional para espejar el miembro, con lo cual habrá unas instrucciones nuevas invirtiendo la rueda del raton para que no pierda la sintonia

Futu-block

#127
¿como se cambia el tamaño de la pantalla sobre la marcha?

Quiero sacar un snapshot de  200x200 en el centro de una pantalla de 256x256 pero el juego mide 256x512...

Tenia planeado hacer: 1º redimensionar, 2º borrar fondo haciendo put_screen(0,0) 3º capturar pantalla haciendo get_screen () y bla bla 4º volver a redimensionar pantalla  5º colocar el fondo pero me explosiona el nucleo, je je

¿alguna otra idea?
creo que con un map_block copy se puede, ¿no?


Pues no y me autorrespondo, igual me sirve de consulta para la proxima vez, se trata de pintar los nuevos graficos en el viejo con map_put y luego salvar ese grafico con save_png

Futu-block

#128
¿se puede hacer un switch a map_get_pixel?

he de comparar muchos colores por cada pixel de una determinada sección de un grafico, con la intención que sea una numeración, en plan codigo pero al hacer map_get_pixel dentro de un bloque for pongo los diez if juntos y es un agobio, creo yo...

aunque pensandolo bien, mejor usar una función, ¿no?

Otra mas, quiero pillar un color de un determinado pixel y rellenar el fondo, lo hago con map_get_pixel y lo guardo en una variable, luego cuando lo pongo en map_put_pixel a traves de un for no me rellena con ese color, ¿acaso si guardas un color en una variable no se guarda como rgb(321,546,123) sino como un numero ''aleatorio? ¿como puedo usar ese color otra vez?

Otra mas acerca de una funcion, ¿como puedo hacer que una función tome en cuenta una variable global? o en su defecto interactue con otro numero
ej:

var_tal = funcion_tal() con el numero especificado...

Futu-block

#129
Vale, me auto respondo pero no del todo; he usado la siguiente función:


funcion conversor_colores_en_numeros(numero)    // que guay, puedes invocar una función con un numero y la función usará ese numero, no lo sabia
private
int cody[9];    // aqui guardamos los colores  ''dictados'' por nosotros
int valor_devuelto;
int grafico;     // que royo que tengo que cargar el grafico ¿no se puede hacer de otra forma?

begin
    grafico = load_png("imagen.png");
    cody[0] = rgb(0,0,0);    // negro equivale a 0
    cody[1] = rgb(255,255,255);    // blanco equivale a 1
    cody[etc...] = y asi hasta el 9 con los colores deseados con respecto a los numeros deseados

    if (map_get_pixel (0, grafico, numero, y) == cody[0] valor_devuelto = 0; end
    if (map_get_pixel (0, grafico, numero, y) == cody[1] valor_devuelto = 1; end
    etc...
    return(valor_devuelto);
end
// aclaro que 'numero' pertenece al valor dentro del bloque for el cual invoco a la función que equivale a la posición X del gráfico a leer, lo mismo con Y


No se, esto de repetir 10 veces el map_get_pixel es un poco agobio y mas si no conozco la manera que corte la función cuando ya haya coincidido con el color/numero deseado (la estadistica dice que se repiten mas los primeros numeros, del 0 al 3) y en cuestión de meterle un for no creo que sea muy dificil, ya lo estudiaré, ergo 1ª cuestión resuelta


·La nueva pregunta es acerca de flags, Quiero espejar horizontal y verticalmente, para eso uso el flags 0 y 1, pero si quiero espejar verticalmente ¿cual uso? 1 y 2, 0 y 1, 0 y 2 ???    Solucionado   Cuestion de ir probando·

Sigo buscando como sacar el rbg de un  pixel para rellenar con ese color, lo que se dice la pipeta en paint, el ''pic color''

Futu-block

Otra mas, ¿como hacer un flags dentro de un map_get_pixel?

Hablo si hay alguna opción extra de poner flags al grafico que escanea map_get pixel porque evidentemente lo que hay que hacer es invertir la dirección del escaneado, ya que estoy hablando de un par de bloques for y dentro el map_get_pixel.

Y otra mas ahora que estamos en caliente: ¿como invierto un bloque for?
porque en una cosa asi: for (a = 0; a<9; a++) me gustaría que hubiera algo que pudiera hacer yo como var_a = -a; vamos, darle un valor negativo para que cuente de 9 a 0, que dudo que haya algo asi, solo estoy especulando y esta respuesta se dá por respondida, ¿no? ( y casi que la anterior, si se pasa alguien que sepa mas que yo por aqui, claro ;))

SplinterGU

Quote from: Futu-block on March 08, 2018, 04:55:24 PM
Otra mas, ¿como hacer un flags dentro de un map_get_pixel?

Hablo si hay alguna opción extra de poner flags al grafico que escanea map_get pixel porque evidentemente lo que hay que hacer es invertir la dirección del escaneado, ya que estoy hablando de un par de bloques for y dentro el map_get_pixel.

Y otra mas ahora que estamos en caliente: ¿como invierto un bloque for?
porque en una cosa asi: for (a = 0; a<9; a++) me gustaría que hubiera algo que pudiera hacer yo como var_a = -a; vamos, darle un valor negativo para que cuente de 9 a 0, que dudo que haya algo asi, solo estoy especulando y esta respuesta se dá por respondida, ¿no? ( y casi que la anterior, si se pasa alguien que sepa mas que yo por aqui, claro ;))

map_get_pixel no lleva flags...

y lo otro has preguntando sin pensarlo... te voy a dar la solucion y veras que tengo razon... y te haras un auto facepalm... de lo simple que es...


for (a = 9; a >= 0; a--)


esto es de 9 a 0, en el caso que pusiste era de 0 a 8 porque la condicion es < 9... pero como preguntaste de 9 a 0... ahi tienes la respuesta.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

No, no me refería a usar un for distinto,  que es lo que tengo que hacer, hablaba de algo que se invirtiera la operación, que en vez de sumar restará, ya que necesito una resta a la vez que se suma automáticamente en el bloque for

Tu sabes, estaba desvariando, seguro que sacó alguna función que haga esa operación rápidamente

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

parece que sirve, dejame pensar en voz alta:
tengo un par de bloques for para ''escanear'' un grafico y tengo que pintar dos de ellos, uno de los cuales invertidos...

for (a=0; a<30; a++)
    for(b = 0; b<30; b++)
        if (map_get_pixel(0,grafico_a_escanear, a, b ) == rojo)
            map_put_pixel(0,grafico_a_pintar, 100 + a, 100 + b, rgb(0,0,0));    // pinta un grafico en 100,100
            map_put_pixel(0,grafico_a_pintar, 330 - a, 100 + b, rgb(0,0,0));     //pinta un grafico en 100,330 invertido
        end
    end
end


Pues si, parece que cuadra para lo que quiero, como dice Dilley Celso, de primero de parvulitos y cateando la materia, ja ja ^^U
Es lo que tiene aprender por cuenta propia, todavia recuerdo los ejemplos tontos que dimos de basic en un cursillo, hace eones

gracias