PDA

Ver la versión completa : ayuda con graficos, angulos, y paletas.



n_kortex
07/02/2005, 18:12
Hola, estoy programando el clasico puzzle bobble (bust-a-move) en fenix, basandome en la version de neogeo (de ahi he sacado todos los graficos y sonidos). se que existe otro juego de bolitas, pero este ya lo tenia empezado y me apetece terminarlo. El problema es cuando voy a colocar los dragones sobre el fondo, me sale el grafico en colores diferentes (cuando cargo el grafico solo en un nuevo proyecto se ve bien), y no tengo ni idea como hacer para que los colores se vean correctamente.
Otra cosa, es que quiero poner como transparente el color blanco para los dragones (en la foto que agrego se ve negro el blanco ¿????), para que muestre el fondo, tampoco tengo idea como hacerlo :D, a ver si me podeis echar una mano.
Y por ultimo a ver si me podeis echar una mano con el tema de los angulos y como debe rebotar las bolitas, le he puesto que cuando pulses el stick izq, me baje los angulos 10 (al principio pongo de angle=90, ahh y lo mismo para el stick dcho), ahora a partir de ahi estoy perdido :loco:


Venga muchas gracias de antemano.
Saludos

PD: una imagen del problema esta aqui: http://usuarios.lycos.es/atomicforo/fenix_bobble.jpg

gbajose
07/02/2005, 18:26
:arriba: q est juego ta muu xulo :D

chipan
07/02/2005, 19:04
Para empezar, TODOS los gráficos han de tener la misma paleta; luego te recomiendo que pongas de color transparente el negro, porque a veces da problema la transparencia con colores claros y finalmente y no es por desanimarte; el fenix no hace muy bien las operaciones con angulos; no obstante intentalo.

por ejemplo; para que una bola que va con una inclinacion de 10º (angle=10000) lo que hay que hacer es que cuando llegue a la pared de la derecha su angulo se convierta en 180º-10º=170º; y cuando llegue a la pared de la izquierda se convierta en 180º-170º=10º. ¿Entendido?

n_kortex
07/02/2005, 19:43
OK, gracias, aun un unico problema, como le mete de color transparente el negro?

gbajose
07/02/2005, 19:54
pos simplement tiens q pintar toos tis sprites con el color de negro cmo fondo

n_kortex
08/02/2005, 01:05
Ok, os lo agradezco mucho, ya he hecho las modificaciones y funciona todo perfecto, la flecha se mueve, el dragon de la derecha va dandole a la rueda, y la intro va sincronizada con la musica, y el juego ya tiene musica. Ahora a por lo chungo, los angulos y el rebote de las pelotas (jajaja una frase con doble sentido :D). Ahh una ultima pregunta (perdonad si soy algo plasta pero cuando uno no tiene zorra de algo en algun sitio tiene que mirar no? es que ya estoy harto de mirar la ayuda del flamebird - la busqueda es una caca y no va :D -), a ver me pasa que para poder poner mas graficos tengo que establecerlos como imagenes de fondo (put(imagen,nº,x,y)) y los quiero poner como los graph (graph=nº), pero como cargo varios archivos de graficos, graph corresponde solo al primer archivo, he probado poniendo archivo.graph=3 por ejemplo y no funciona, por favor decidme como llamar a los graficos sin ponerlos como imagenes de fondo, ya que si los pongo como graficos de fondo al poner otro sprite quedan pixeles sueltos (mirar la ultima imagen que os pongo). muchas gracias

PD: os dejo unas imagenes para que veais como llevo el juego
http://usuarios.lycos.es/atomicforo/ktx_bobble.jpg
http://usuarios.lycos.es/atomicforo/ktx_bobble2.jpg
http://usuarios.lycos.es/atomicforo/ktx_bobble3.jpg
http://usuarios.lycos.es/atomicforo/ktx_bobble4.jpg

chipan
08/02/2005, 02:07
muy facil

declaras una variable global para cada archivo de graficos que cargas
fichero1;
fichero2;
fichero3;
etc
al cargar el fichero lo haces de la siguiente manera
fichero1=load_fpg("saltanueces.fpg") //lo de saltanueces lo sustituyes por el nombre del fichero que quieras cargar
y así con cada fichero que cargues;
luego, cuando quieras usar graficos de distintos ficheros lo que tienes que hacer es igualar la variable local file al fichero correspondiente;
file=fichero1;
¿ves que facil?

n_kortex
11/02/2005, 00:43
Hola, vuelvo a tener unas cuantas dudas y he preferido seguir con este hilo, y seguire con el con las dudas que me vayan surgiendo a la vez que voy realizando el juego. Bien os cuento, mi problema ahora es con las regiones, ya que defino una region con la x y la y los pixeles del area donde las bolitas se deben quedar y que cuando lleguen a los bordes reboten, bien pues cuando le doy a que me lance las bolas se queda como pillado el juego, y si en lugar de asignarle una region le pongo que cuando llegue a tal x o a tal y haga esto, el juego pasa y las bolas salen de la pantalla (no se paran). alguna opinion? gracias

chipan
11/02/2005, 01:02
pega aqui el código que usas para que reboten (algo tendrá mal), y te lo corrijo.
:saltando: HAY QUE LEERSE UN POCO DE METODOLOGÍA DE PROGRAMACIÓN,

n_kortex
13/02/2005, 15:23
Hola, perdonad pero es que he estado en el pueblo y no he podido conectarme antes.
El codigo en cuestion es este:
-----

if (posx>215 || posx<102 || posy==30)
anguloaux=(180-anguloaux);
lanza(posx,posy,anguloaux,pelota);
frame;
break;
end

----

Esto lo que hace es que el proceso lanza sea recursivo, pero el problema cuando la bolita llega a y=30, sigue subiendo y no se quedan arriba, el tema de lanzar las bolitas lo calcule usando el teorema de los senos de trigonometria (sip aun me acuerdo despues de 3 o mas años :D)- A/sen A= B/sen B= C/sen C...) donde obtengo la x y la y que debe pintar la bola, falla un poquito para angulos muyy grandes (a partir de 150 grados) pero para el resto va divino. venga saludos

Licantropo
13/02/2005, 18:26
no pongas possy==30, pon <30, creo que eso solucionaria parte. Aunque no entiendo porque calculas un agulo cuando llega arriba, la bola rebota con el techo??

n_kortex
13/02/2005, 19:35
Hola, poco a poco voy solucionando todos los problemas, ehh que aprendi a programar solo hace 3 meses y c++ basico. Las bolas seguian rebotando cuando llegaban arriba, he quitado lo de posy, y lo he puesto en otro if, lo que le digo en este if es que cuando la y sea menor de 30, pare de rebotar y me dibuje la bolita arriba con otro proceso. Ahora estoy con el tema de que cuando una bola colisione con otra, no la pinte reemplazandola, sino que la pinte cuando colisiona, pero me sale algo mal ya que no funciona muy bien (con la practica se vera :D) , el codigo es este:
---
if (collision(Type dibujarbola))
posy+=13;
If (anguloaux>90)
posx+=7;
end
if (anguloaux<90)
posx-=7;
end
end
dibujarbola(posx,posy,pelota);
frame;
disparo=1;
break;
end
---
Lo que hace es que si encuentra colision, pinte la bola debajo (y+13) y si el angulo es mayor que 90 pues al a derecha, o si es menor que 90 a la izq, pero tiene muchos fallos, ya vere como mejorarlo, ahh gracias a todos por ayudarme ;) tengo ya ganas de acabar el juego :D saludos

oankali
14/02/2005, 10:10
ahh gracias a todos por ayudarme ;) tengo ya ganas de acabar el juego :D saludos

Anda, y yo! que llevo ya desde el mes de marzo del año pasado con el Pyramids y me gustaría empezar otros proyectos!!!!!

chipan
14/02/2005, 15:53
Es una idea; despues de que la bola lanzada colisione con la bola parada haz que la que lanzaste iguale posx y posy a la x y la y de la bola con la que colisionó. y luego que se recoloque de la manera que tienes ya hecha.

LTK666
14/02/2005, 16:25
Kortex eso tiene una pinta cojonuda :arriba: animo, y dicho sea de paso es uno de mis juegos favoritos :)

gbajose
14/02/2005, 17:01
q weeena pinta!!!! :D a ver si lo terminas pronto :D

PD: todos keremos acabar nuestros proyectos.... yo mas aun pa el concurso :D

n_kortex
14/02/2005, 18:04
Hola, sigo solucionando los problemas, ya se quedan las bolas debajo unas de otras, un poco juntas, otras veces separadas pero se van quedando, ya mejorare esa parte, ahora otra duda es como puedo saber si hay colision y hacer que exploten (hay colision cuando 3 bolas o mas del mismo color estan juntas, pero ni idea como escribir eso), que debo de almacenar el color de cada bola en una variable o... a ver si me podeis dar una idea como hacerlo, porque tras eso, seria ponerle que cuanda haya colison, sumo 30 a los puntos y ya tendria el juego casi acabado ;) (me quedaria hacer una a una las pantallas)
aqui os quedo una imagen: http://usuarios.lycos.es/atomicforo/ktx_puzzlebobble14.02.05.jpg
Ya tengo ripeados todos los sonidos y graficos, el juego espero que quede al final como el de la version de neogeo ;) saludos

EDITO: gbajose que concurso? es que al no disponer de conexion a internet me es bastante dificil de enterarme de las cosas (tengo una conexion gratuita, con la que es como una llamada metropolitana, estoy a la espera de que auna me de de alta en la adsl)

Licantropo
14/02/2005, 20:48
Yo haria algo asi como dividir toda la pantalla como en cuadritos y en cada cuadro entra una bola. (division imaginaria). Luego tienes una matriz que se corresponda a esa division y la matriz de enteros mismo. Cada numero que represente un color. Y de esa forma con unos pocos calculos puedes saber si hay tres bolas del mismo color alineadas. Es una idea, es lo que se me ocurre a mi, seguro que se puede hacer de alguna otra forma pero ahora mismo no caigo. Ta luego.

chipan
14/02/2005, 21:02
Ya intente eso que dices, pero recuerda que no es una matriz cuadrada; hay filas que tienen una bola más.

n_kortex
15/02/2005, 00:11
Hola, gracias a todos por responder, ya pense en eso, pero le problema es el que dice chipan, que hay veces en que la bola de otra fila queda entre 2 bolas de la fila superior y eso con una matriz no se puede hacer, he pensado que mire el graph y si corresponde el mismo numero, pues hago pop :D ahora lo malo que he tocado parte del codigo bueno y los lanzamientos vuelven a ser imprecisos, toca reescribir el codigo.
PD: cuando termine el juego, alguien se apunta ha hacer un juego en comun? no se, un samba de amigo para gp32?

chipan
15/02/2005, 00:33
He estado pensando que se podría hacer con 2 matrices
una para las filas con 8 bolas y otra par las filas con 9 bolas. El caso es que es posible... Aunque personalmente me parecería mas facil hacer un magical drop.

oankali
15/02/2005, 10:11
Tienes el mismo problema que tenía yo al programar el Pyramids.

Tal como han dicho los otros, tienes que transponer tu tablero de juego a una matriz.
En tu caso, una matriz rectangular te irá perfectamente. Solo hay que tener en cuenta que unas celdas no se utilizaran y punto.
Te he puesto un ejemplo de lo que yo haría. Una matriz de 6x6. He puesto el origen 0,0, arriba a la izquierda porque me parecía más idoneo para este juego aunque también lo podrías poner abajo a la izquierda.
En mi ejemplo, las celdas en gris no se utilizan, de hecho son todas las últimas celdas de las filas impares. Pero eso no tiene que ser así si el ancho de tu tablero es igual a (n + 1/2) bolas.

Luego, para comprobar las bolas vecinas de una bola en concreto hay que proceder de la manera siguiente:

- Si la bola de coordenadas (x,y) se encuentra en una fila par, sus bolas vecinas son (siguiendo las agujas de un reloj):
x,y-1; x+1,y; x,y+1; x-1,y+1; x-1,y; x-1,y-1

- Si la bola de coordenadas (x,y) se encuentra en una fila impar, sus bolas vecinas son (siguiendo las agujas de un reloj):
x+1,y-1; x+1,y; x+1,y+1; x,y+1; x-1,y; x,y-1

A partir de aquí, el algoritmo que yo seguiría para compobar si hay 3 bolas juntas es el siguiente.
Es un algoritmo con una rutina de inicialización que llama a otra recursiva.



BolasJuntas(x, y) devuelve un booleano (SI/NO)

nbBolas = 0 ' Contador de bolas encontradas
bolas(3,2) ' Es un array de 3 coordenas con la lista de las bolas encontradas

Devolver ComprobarVecinos(x, y, bolas(), nbBolas)

Fin

ComprobarVecinos(x, y, bolas(), nbBolas) devuelve un booleano (SI/NO)

i ' Una variable

' Comprobar si la bola en curso está en la lista de bolas guardadas
Para i = 0 hasta (nbBolas - 1)
Si (bolas(i, 0) = x) i (bolas(i, 1) = y)
' La bola ya está guardada, o sea que ya se han testeado o se estan testeando sus vecinos
' no hace falte seguir con ella y salimos
Devolver NO
Fin
Siguiente

' Guardar la bola
bolas(nbBolas, 0) = x
bolas(nbBolas, 1) = y
nbBolas = nbBolas + 1

' Si ya tenemos las 3 bolas, salimos
Si nbBolas >= 3
Devolver SI
Fin

' Compruebo las bolas vecinas
Si y es par
Si matriz(x, y-1) = matriz(x, y)
Si ComprobarVecinos(x, y-1, bolas(), nbBolas) = SI
Devolver SI
Fin
Fin
Si matriz(x+1, y) = matriz(x, y)
Si ComprobarVecinos(x+1, y, bolas(), nbBolas) = SI
Devolver SI
Fin
Fin
... lo mismo con todas las bolas vecinas
Sino
Si matriz(x+1, y-1) = matriz(x, y)
Si ComprobarVecinos(x+1, y-1, bolas(), nbBolas) = SI
Devolver SI
Fin
Fin
Si matriz(x+1, y) = matriz(x, y)
Si ComprobarVecinos(x+1, y, bolas(), nbBolas) = SI
Devolver SI
Fin
Fin
... lo mismo con todas las bolas vecinas
Fin

Devolver NO
Fin


Este algoritmo te puede servir de base para crear el algoritmo que necesitarás luego para encontrar todas las bolas, no solo 3, que tendrás que destruir. Aunque con unos retoques, se podría hacer todo con la misma rutina.

Hay que tener en cuenta de no pasarse de los límites de la matriz, pero esto se soluciona facilmente haciendo que la matriz sea más grande que el tablero, con un borde a su alrededor en el que nunca habrá bolas.
O sea que si mi tablero es de 6x6, lo que haré es crear una matriz de 8x8 en donde no podran haber bolas en las columnas 0 y 7, ni en las filas 0 y 7, si olvidar las celdas prohibidas si las hay.

Pero aquí no se te acaba tu problema, yo veo otro y es: ¿cómo saber en que celda ha llegado mi bola en función de las coordenas de la pantalla? o dicho de otra manera: ¿cómo convertir las coordenadas de la pantalla a coordenas de la matriz?
Si ya tienes la solución, pues nada, adelante :), sino pues ya veremos como lo hacemos :p

Todo esto me ha dado ganas de programar mi propia versión del juego :D:D, pero no, tengo otros planes ;)

Oankali.

LTK666
15/02/2005, 11:14
clases magistrales!!

n_kortex
15/02/2005, 11:44
Ohh muchas gracias!! ya pense todo eso anoche cuando estuve viendo como colocaba las bolas el puzzle bobble original, y por lo menos tengo algo de experiencia con matrices ya que en navidad nos mandaron un proyecto en la universidad de hacer el juego jumpingcube ;) vamos a por ello, ya os contare como me ha ido, y de nuevo a todos muchas gracias :D

n_kortex
15/02/2005, 13:16
A ver, ya tengo pensado y escrito en gran parte el codigo, el problema que no tengo ni idea como declarar la matriz,en c++ haria esto:
-------
enum tipobola{
vacia=0, amarilla=1,...};

typedef tipobola matriz [8][12];

--------
ahora bien, como hago lo mismo pero en fenix?

Lo de como paso las coordenadas del tablero a la matriz, pues he calculado que cada casilla de la matriz tiene una dimension de 14*14 pixeles,siendo la primera casilla (la 0,0) x=103 hasta la x=117, luego seria la 1,0... y las filas impares empezarian con +7, ya que van entre dos casillas de las filas pares, a ver si me podeis decir como defino la matriz y el tipobola. saludos

oankali
15/02/2005, 14:53
Aquí no te puedo ayudar que de Fenix no tengo ni idea.
Lo que sí te puedo decir es que no te hace falta crear un nuevo tipo, solo con números ya hay suficiente, aunque seguro que esto ya lo sabías.

chipan
15/02/2005, 16:49
Crear un array bidimensional es muy facil

int bolas[7][9];

hala un array de 8x10=80 enteros; ¿¿¿ves que facil???

P.D.: creo que esto no se puede hacer en DIV
P.P.D.: el DIV es el "papá" de fenix; y si no fuera porque el DIV no rula en XP lo seguiría usando para programar, aunque la compilación final la hiciese en fenix.

n_kortex
15/02/2005, 17:40
ok, ya lo entendi, debo declararlo donde las variables globales, no? venga gracias, os mantendre informados ;)

EDITO: si pongo int matriz [8][12], fenix no trata al array (8columnas) desde 0 a 7 para las columnas y del 0 al 11 para las filas (12filas) como interpreta c++? o tengo que ponerle [7][11] para que coja del 0 al 7 y del 0 al 11, uff me estoy liando yo solo probare a ver, que me muestre el contenido del ultimo y asi ya me entero. gracias

n_kortex
20/02/2005, 16:46
Muy buenas de nuevo, sigo con el juego, y como siempre los problemas estan presentes :D estoy implementando todo usando la matriz, ahora lo que quiero es hacer un proceso que me este todo el rato dibujando lo que hay dentro de la matriz, de esta manera hacer cada pantalla es bastante facil ya que inicializo la matriz con las bolas del color que sea en las casillas que sean, bien vamos alla, el proceso lo estoy haciendo asi:

---
Process dibujarbolas()
private
impar; // esta es una variable booleana -0 ó 1- dependiendo si la fila es par o impar
Begin //tambien nos podemos ahorrar esta variable y poner b%2==0 que indica si es par.
file=bola;
Loop
for (a=0;a<=7;a++) //a y b son variables globales - a es la x de la matriz
for (b=0;b<=11;b++) // y b es la y -
if (b==0)
posy=47
impar=0;
end
if (b==1)
posy=61;
impar=1;
end
// asi para todas las y, la y para cada fila es la mitad de las 2y de cada fila
// por ejemplo si la primera fila va desde y=40 hasta y=61, pues la y=47 para que
// pinte el grafico en la mitad.
if (a==0 && impar==0)
posx=110;
end
if (a==0 && impar=1)// las bolas de las filas impares van desplazadas medio puesto.
posx=117;
end
// asi para todas las x...
x=posx;
y=posy;
graph=matriz[a][b];
end
end
frame;
end
End

---
Bueno pues, este proceso aun no lo he probado, pero seguro que tiene mas de un fallo :D, asi que dudo directamente de su fiabilidad.
a ver si me podeis echar una mano con este proceso, no se si habeis entendido lo que quiero que haga, lo que tiene que hacer el proces es recorrer la matriz e ir pintando las bolas.
Bueno, el juego NO lo pienso presentar al concurso, no seria muy etico despues de toda la ayuda que me estais dando, con lo que si alguien quiere ayudarme y hacer el juego entre varios pues que me mande un mp o lo que sea, ya que voy a tener bastante falta de tiempo (clases en la universidad y sus respectivas practicas todas las tardes (menos jueves y viernes), ademas del carnet de conducir) y no me gustaria no terminar el juego.
Venga un saludo.

chipan
20/02/2005, 16:58
O el proceso en sí es la bola o sólamente calculas las posiciones y no dibujas nada.

n_kortex
20/02/2005, 17:03
a ver, dentro del bucle tengo 2 for que recorren la matriz y ahora le digo que para la a tal y tal b, x es esta y la y es esta, no ves que abajo pongo x=posx ... graph=matriz[a][b], lo he escrito del tiron con lo que seguro q esta mal. Entonces como podria hacerlo?

Licantropo
20/02/2005, 17:11
graph=matriz[a][b];

esto de aki te lo haria mal, deberias usar un procedimiento put(), para poner la imagen.

Otra cosa que seria mejor es no poner
if(b==0)
posy=47
impar=0;
end
.
.
.

pon algo del tipo
posy=47+b*diametrodelabola(que supongo que sera 14)
impar=b mod 2

con la a igual

de esta forma sera mucho mas rapido.

Ta luego.

chipan
20/02/2005, 17:14
a ver, dentro del bucle tengo 2 for que recorren la matriz y ahora le digo que para la a tal y tal b, x es esta y la y es esta, no ves que abajo pongo x=posx ... graph=matriz[a][b], lo he escrito del tiron con lo que seguro q esta mal. Entonces como podria hacerlo?

Lo que ha dicho licantropo, tienes que usar una funcion que dibuje el gráfico.

n_kortex
21/02/2005, 00:28
bueno ya tengo implementado lo de los graficos y el calculo de bolas aleatorias mirando las bolas iniciales de la matriz (para que no aparezcan bolas de otros colores que no tengan que ver con la pantalla), mas abajo os dejo el link a una imagen que he tomado y cada vez pinta mejor, gracias Licantropo y Chipan por vuestra ayuda. Basicamente me quede lo mas complicado, cuando lanzas la bola que vaya mirando la matriz y cuando vea que la casilla este llena se pare y pinte la bola en la casilla correspondiente segun la ultima posx y posy; buscar las 3 bolas, codigo que ya casi tengo gracias a Oankali y parte que ya tenia escrita de antes; y poner puntuaciones y escribir mas pantallas (solo tengo 6, tocara pasarse un poquito el juego de neogeo :D). venga un saludo y muchisimas gracias por toda vuestra ayuda.
el link: http://usuarios.lycos.es/atomicforo/ktx_fenixbobble20.02.05.jpg

LTK666
21/02/2005, 16:54
Kortex te esta quedando GENIAL!! luego una musiquilla que le haga justicia a la calidad que le estas dando. :) :musico:

n_kortex
21/02/2005, 17:36
Las musicas y sonidos son las del juego original :D asi que el sonido esta quedando bastante bien. Ahh hoy ya se me quedan pegadas las bolas unas debajo de otras, pero esto tiene errores, lo que voy hacer es que cuando lance las bolas, vaya pintandolas en las casillas de la matriz en lugar de tirarlas, y luego colocarlas, de esta manera espero que no me falle como me esta fallando ya que hay a veces que me coloca la bola fuera de la pantalla (por lo de las filas que tienen una bola menos), y otras veces que las pinta encima de otras bolas, o encima si hay espacio en blanco... en fin un caos,os seguire manteniendo informados ;)

PD: tras lanzar 2 o 3 bolas, la velocidad en el juego baja considerablemente, a que se debe? le tengo puesto en todos los procesos que ponga 30 frames por segundo y que salte 0 (el 0 si mal no recuerdo que salte los frames necesarios para que no se relentice)... alguna idea?

Licantropo
21/02/2005, 22:56
De nada. No se como haras lo de lanzar bola. Yo lo que haria seria algo parecido a esto:

Tener un procedimiento que dibuje la bola que lanzo y calcule su movimiento (rebotes y demas). Este procedimiento lo mataria cuando la bola se tubiese que parar (quedarse pegada con otra) y a la vez que lo mato modifico la matriz para que guarde la bola en la casilla de la matriz que corresponda, de esta forma aunque se te mueva lijeramente de su posicion, al colocarla en la matriz encajaria correctamente. No se si me he explicado bien.
Lo de la bajada de velocidad puede ser porque no mates los procesos de la bola lanzada cada vez que se para. Entonces seguramente tendras varios procesos bola lanzada que lo unico que hace es dibujar la bolita y que chupan bastante. Aunque por dos o tres procedimientos mas no creo que sea el problema.

De momento lo veo muy bien, a ver si lo acabas pronto y podemos disfrutarlo todos. :)

chipan
21/02/2005, 23:23
como bien ha dicho licantropo puede ser que no mates los procesos, y animo, a ver si te sale un buen juego. No es que me gusten mucho los puzzles, pero lo que me gusta es ayudar a programar y dar mis clases "majistrales y ferpectas" a gente que le interese aprender a programar juegos, aunque se me adelante licantropo siempre :canon2:

n_kortex
22/02/2005, 00:06
Hola, ya solucione el problema de la velocidad, ahora le he tenido que bajar los frames porque el dragon de la rueda iba demasiado rapido :D el problema estaba en el proceso que dibuja las bolas de la matriz, que lo tenia en el proceso principal en el bucle y el proceso que dibuja tambien tenia bucle, con lo que doble retardo, he quitado el proceso que dibuja, y su contenido lo he puesto en el proceso principal (ya que hace lo mismo) y velocidad a tope!
Licantropo, como has descripto es como tengo implementado la forma de pintar las bolas, pero tiene problemas, a ver si os paso una premegabeta para que lo comprobeis vosotros mismos ya que los problemas son bastantes, y no se ya pensare en clase de algebra :sobando: :sobando: como hacer para que funcione perfecto :arriba:
La razon por la que elegi el puzzle bobble (ya que a mi tampoco me gustan los juegos de puzzle, mas bien odio los tetris, mr driller y todos los que sean parecidos) es porque ademas de ser un juego atractivo (graficamente), cualquier principiante con ganas aprende mucho y su complejidad no es imposible (con tranquilidad y mientras meas se te ocurren muchas cosas :D:D), asi que espero llegar a manejar fenix de una forma correcta y a contribuir con la gp32 en lo que pueda :D El siguiente proyecto, umm pos ese para semana santa y algun juego tambien bonico :D

PD: no veais lo guapo que queda este juego en la gp32, hoy lo he probado por primera vez y moooolaaaa!

chipan
22/02/2005, 00:12
Yo le he sacado el maximo provecho posible al fenix, lo he aprovechado pa emborracharme con los colegas, he hecho una recopilacion de minijuegos en fenix con el fin de mandar chupitos o beber chupitos (dependiendo si ganas o pierdes). Lo melo es que estan a demasiada resolucion y usan demasiados procesos para que rulen bien en la GP.
Mis favorítos son, kirby's resaka land, pc-durete y los fantasmas borrachos.

n_kortex
24/02/2005, 23:52
Sigo dando guerra al juego ;) he implementado correctamente un par de cosas mas, que es la colocacion de las bolas a 90º (lanzamiento vertical, ya que antes tenia puesto que se colocaran unas debajo de otras, pero estaba mal ya que el problema siempre reside en las filas que tienen una bola menos...), y la colocacion de las bolas cuando el angulo es mayor de 90 (lanzamiento hacia la izq) aunque todavia aparece algun que otro error (me pinta las casillas de las filas que tienen una bola menos, a ver si consigo solucionarlo) y por ultimo he conseguido que funcione una eleccion aleatoria de la bola proxima mirando las bolas de la matriz; trambien tengo escrito el codigo que mira cuando 3 bolas o mas son iguales, pero aun no lo he probado. A ver si este fin de semana casi lo tengo terminado porque a lo mejor voy a la Madrid Sx y lo enseño alli :D venga un saludo a todos

chipan
25/02/2005, 01:18
Venga animo, hay mucha gente babeando por el bust a move, si lo consigues hacer serías un "champion".

oankali
25/02/2005, 08:14
[...]
trambien tengo escrito el codigo que mira cuando 3 bolas o mas son iguales, pero aun no lo he probado.
[...]

Recuerda que la detección de 3 bolas solo te servirá para saber si hay que destruir el grupo, pero un vez detectado tendrás que detectar cual es el grupo entero que realmente hay que destruir y que puede contener más de 3 bolas.

n_kortex
04/03/2005, 17:44
Buenas, sigo dandole caña ;) he modificado bastante el juego y cada vez pinta mejor, pero ahora se me han descontrolao el tema de colocar la bola cuando encuentra que hay bolas ya puestas. Finalmente he tenido que hacer una estructura que me almacene el color de las bolas, y si explotan o no, de esta manera es muy facil averiguar cuando 3 bolas o mas deben explotar, ya que tras poner la ultima bola mira las de al lado y si son iguales pone matriz[a][b].explotar=1; y en un contador almaceno el numero de bolas, cuando el numero sea igual o mayor a 3 recorra la matriz y elimine las bolas (poniendo una secuencia de sprites que exploten) en aquellas casillas donde explotar sea igual a 1. A ver si me pongo con lo de colocar las bolas ya que me falla muchiisimo (repinta las bolas encimas, las coloca mal...), si pudiera usar el comando xadvance y despues el collision con las bolas ya dibujadas esto estaria tirao, pero el problema que las bolas estan dibujadas con Put() y no puedo usar collision con ellas, la forma que de momento tengo echa es que me vaya pintando la bola segun una x y una y, y a la vez me vaya pasando la x y la y esas a las coordenadas de la matriz, y que si es distinta de 0 pues que me ponga la bola abajo o como sea, pero como he dicho falla un monton.venga un saludo