Una ayudita para un niño pobre xD

Started by BlySntK, March 29, 2017, 10:40:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BlySntK

Buenas bennuseros de mis condolentes amores!!

Necesitaria que me echaraís un cablecillo con el algoritmo para gestar los tiles en pantalla. Por ejemplo, de una balsosa de 30x30 en una resolución de... qué sé yo, 800x 600, mismo.

Por lo que he refrescado, después de tanto tiempo sin tocar el lenguaje, es que con map_put se puede hacer algo así, pero el resultado no es lo que quiero (o no recuerdo cómo se hacía para que una sola baldosa, copiada, abarcara todo el ancho y el alto de la pantalla...). Trato de hacerlo con la función anterior pero no me lo hace bien. Y eso que lo hago como antiguamente, siguiendo el tutorial de Oscar, a ver si me ayudáis a recordar!

Creo recordar que también estaba map_block_copy pero... no sé seguro si pudiera servirme...
Esnucándote contra la pared no sé si conseguiré mucho, mejor lo pruebo y salímos de dudas ^_^
-------------------------------------------------------
Blaisantka Games > (Official developer web site)

Drumpi

A ver ¿qué es lo que quieres hacer exactamente? ¿Poner los tiles sobre el fondo? ¿sobre otro mapa? ¿o hacer un scroll de tiles?

Lo normal es tener dos bucles anidados del tipo:
for (conty = 0; conty < n_tiles_alto; conty++)
    for (contx = 0; contx < n_tiles_ancho; contx++)


Y luego usar, por ejemplo, put para ponerlos en esa posición de pantalla, tipo put(file, graph, contx * 30, conty * 30). Obviamente tienes que tener en cuenta la posición del centro del tile, y que esta función pinta sobre el fondo de pantalla: si quieres pintar sobre otro mapa deber usar map_put, pero tienes la limitación de que tanto el mapa de origen (tu tile) como el de destino (el mapa sobre el que pintas) deben ser del mismo FILE, or eso es muy común usar map_clone con el tile, para crear un mapa igual al tile con el file = 0, igual qe el amap de destino (normalmente creado con map_new).
Pero si no te quieres comer tanto el coco, tienes MAP_XPUTNP, donde ya seleccionas cualquier mapa de origen, de destino, tamaño, rotación, sabor del helado, color de calzoncillos...

Y no, no voy a decir lo que todos estais pensando que voy a decir :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)

BlySntK

#2
Ese Drumpi! Bueno, sí, realmente sería usar put para poner los tiles en un fondo de pantalla, no quiero ponerlo sobre otro map ni nada de eso. Lo "clásico" por así decirlo, vaya. Tener un fondo rellenado por tiles de tamaño 30 o 20 o 10.... Esa opción es la que vería más aceptable. Mañana, con las ideas frescas, trataré de hacerlo así y supongo que será lo que ando buscando. Por cierto, ¿es necesario que haga una matriz unidimensional con el número de cada tile que quiera poner? Algo como bytes tiles [] = 3,4,4,5,4,4,3,3,3,3,4; en que cada número apunta a un gráfico dentro de un fpg o no haría falta. Es decir, put se encargaría de ello si le indico que coja el propio grafico indicado en file y puesto en graph (tal es el segundo parámetro de put) o haría falta?

Mi sentido arácnido me dice que no, pero mis ganas de romperme la cabeza me tienta a hacerlo xD En caso de que sea necesario... ¿En qué punto de la función put debería poner que se vincule con la matriz? Otra duda a la que me llevaría este aspecto sería la siguiente: ¿Cuantos tiles cabrían en una resolucion de 800 x 600 dentro de esa matriz de tiles, teniendo en cuenta el ancho y alto de los mismos respecto a la pantalla?
Esnucándote contra la pared no sé si conseguiré mucho, mejor lo pruebo y salímos de dudas ^_^
-------------------------------------------------------
Blaisantka Games > (Official developer web site)

BlySntK

Weno... después de algunas breves pruebas. Es justo lo que necesitaba: con put, perfectamente me ha valido. También he probado el manejo de las tiles con una matriz y creo saber cómo funciona pero... no me convence hacerlo así. Ademas de que para hacer según que controles con las colisiones es inviable debido a que se incrusta en el background y no sirve. Pero vaya, que para lo que necesitaba, es lo que quería :)

Thanks Drumpi, te daré karma -_^ (giño, giño)
Esnucándote contra la pared no sé si conseguiré mucho, mejor lo pruebo y salímos de dudas ^_^
-------------------------------------------------------
Blaisantka Games > (Official developer web site)

Drumpi

Bueno, no es necesario que metas los datos en una matriz... pero es lo recomendable. Y si usas una matriz bidimensional ya ni te cuento :D ¡Y si usas ficheros ya sería la releche! :D :D :D
Obviamente la matriz te sirve para saber qué gráfico del FPG se pinta en cada posición, pero si me apuras, te puede servir también como "mapa de durezas" reducido 30 veces (según tú, los tiles son de 30x30, por lo que cada tile representan esos pixels en pantalla). Si no, las durezas las puedes tener en un mapa aparte que no se vea (new_map) y así sigues pintando sobre el fondo, ahorrándote un mapa más en memoria y un proceso.
Pero eso depende de cómo te lo quieras plantear.

¿Cuantos tiles de 30x30 caben en una pantalla de 800x600? ¿En serio? Eso es aritmética de primaria :D
800 / 30 = 26'666 a lo ancho --> Como hay que usar valores enteros y no queremos dejar nada de color negro, 27, pero 1/3 de tile no se va a ver... a menos que lo centres todo.
600 / 30 = Adivina :D

Mañana, lecciones de trigonometría para hacer el movimiento de las cabezas de Medusa de Castlevania :D :D :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)

BlySntK

Ofú.... las mates y yo.... xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD Siempre dejandome en mal lugar  :'( Tened piedad de mí, anda...

De todos modos, aunque sé cómo van, para según que cosas sí los voy a usar pero no para todo.
Esnucándote contra la pared no sé si conseguiré mucho, mejor lo pruebo y salímos de dudas ^_^
-------------------------------------------------------
Blaisantka Games > (Official developer web site)

Drumpi

Sabes que los lenguajes de programación se apoyan, básicamente, en las matemáticas ¿no? :D :D :D
vas a aprender de números lo que no has aprendido en el colegio y parte del instituto :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)