Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: byel en Diciembre 18, 2010, 12:34:03 AM

Título: Necesito consejos o ideas para resolver un asunto en mi juego [SOLUCIONADO]
Publicado por: byel en Diciembre 18, 2010, 12:34:03 AM
Buenas, me presento, soy Byel (que es el diminutivo de Gabriel en catal?n) y estoy muy contento de haber encontrado por fin un foro dedicado a GameMaker.

Resulta que estoy haciendo un juego de gesti?n, empiezas en un planeta que debes colonizar, as? que los primeros edificios son b?sicamente minas y centros de producci?n de material para as? crecer y poder desarrollar o comprar tecnolog?as que te permitir?n convertir a la colonia planetaria en un vergel radiante de vida (y con atm?sfera). Entonces el jugador podr? dedicarse a sus habitantes y entrar?n en juego edificio m?s t?picos de estos juegos como: hospitales, comisarias, supermercados, ocio... ya sab?is royo SimCity (pero m?s light)

Bien, la duda, problema o como sea que pueda llamarse es la siguiente:
?Que sistema puedo utilizar para simular el consumo de energ?a proporcionado por una central?

Deduzco que el comando distance_to_object es clave, pero no se exactamente como puedo seguir.

?Gracias de antemano!
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: Genesis en Diciembre 18, 2010, 01:16:39 AM
Mmmm
No Te Endtiendo, explicate bein y de podre ayudar.
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: byel en Diciembre 18, 2010, 10:15:57 AM
A ver, para que los edificios funcionen deben recibir un suministro de energ?a y este suministro lo proporciona una central.

El problema es que no se como relacionar a la central y a los edificios de manera que en el juego se necesiten, es decir, que los edificios solo funcionen cuando tengan una central cerca y esta les proporcione energ?a (por ejemplo  si est? apagada no funcionar?n aunque dicha central est? lo suficientemente cerca del edificio)
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: DarkKRuleR en Diciembre 18, 2010, 02:42:51 PM
Pues crear?s un objeto, obj_central, que tenga una variable... encendida=1. Y la variable energia=100, por ej.
Entonces, en el evento step de cada edificio que la necesite, pones:
if instance_exists(obj_central) and obj_central.encendida=1 and obj_central.energia>0 {obj_central.energia-=0.1; //Aqui los codigos que pasan al funcionar
}

As?, s?lo si existe un obj central, si est? encendida y si tiene energia, cada edificio consume constantemente. Claro, puedes hacer energia infinita, eso depende de ti. Pero, si hay varios objetos energia, la cosa se complicar?a y habria que hacer alguna cosa mas, pero de momento puedes probar algo as? con una central. Tambien puedes a?adir que solo reciba si la central est? cerca, claro.
Bona sort!
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: byel en Diciembre 18, 2010, 03:48:47 PM
El problema es que si van a haber varias centrales de energ?a, tantas como un hipot?tico jugador quisiese colocar.

Cuando coloco dos centrales, la cercan?a no, pero la variable "energ?a" que toma es siempre la de la primera central colocada aunque la que proporcione energ?a al edificio est? pagada.

TT que complicau es esto

?Y usando la id del objeto central?
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: DarkKRuleR en Diciembre 18, 2010, 03:59:06 PM
Suponiendo qe la central tenga que estar cerca, pues haces que el objeto central sea un c?rculo enorme. Entonces, dibujas el sprite de la central en el centro, pero el objeto real ser? un c?rculo grande, conque, para que una instalaci?n funcione, debe estar colisionando con ella (if place_meeting(x,y,obj_central). Aunque, si hubiera dos centrales colisionando, deber?as hacer a cada edificio una variable, funcionando=0, y que al colisionar con una central, cambie a 1 hasta que ?sta se apague. As?, s?lo funcionar? con esa central, y aunque colisione con otra no contar? porque tendr? funcionando=1
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: Raul_Omega en Diciembre 18, 2010, 07:10:10 PM
No te voy a escribir los c?digos porque me llevar?a rato (y se aprende m?s si lo haces tu :P), pero te cuento lo que yo intentar?a hacer.

Se supone que para cada central y edificio crearas un objeto

PASOS

1) Crear un array "centrales" en la que guardar?s la id de cada central del planeta. Para eso, cada vez que el jugador a?ada una central al planeta, en la primera posicion libre del array se almacenara el id (usando la funcion id)

Este array debera estar creado en algun objeto de control del planeta o algo asi, digamos "control_planeta"

2) Desde el objeto que solicita energia, para cada central calculas la distancia a dicha central. Puedes crear otro array "distancias" y lo recorres de modo que [gml]distancias=distance_to_object(control_planeta.centrales)[/gml]

3) Luego con alg?n m?todo de ordenamiento, creas otro array de id de cada central ordenado por distancias, llamemosles "centrales_ordenadas"

4) Luego recorres el array desde la primera posici?n y vas comprobando si tiene energ?a y si la distancia no es mayor al limite que quieras.
[gml]centrales_ordenadas.energia>0 and distance_to_object(centrales_ordenadas)<limite[/gml]

La primera para la que se cumplan estas condiciones, esa sera la central que abastecer? a tu edificio! te guardas el indice del array "centrales_ordenadas" para el que se haya cumplido y ya puedes operar con el para quitar energ?a a la central

[gml]centrales_ordenadas[indice].energia-=1[/gml]

Bueno aqu? solo te he expuesto una metodolog?a, ahora te tocar?a a ti implementarlo... quiz? haya formas mas f?ciles y/o eficientes de hacerlo pero yo creo que esto deber?a funcionar. Si decides seguir este m?todo y algo no te ha quedado claro, pregunta!
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: byel en Diciembre 19, 2010, 09:51:51 PM
Oks os cuento...

El de colisi?n me mola por su simplicidad, pero no puede desconectarse una central porque quiz?s est? abasteciendo a otros edificios fuera del alcance de la que provoca el "conflicto" ?sapsss?. De todas formas me lo guardo porque no conoc?a esa funci?n y seguro que me vendr? muy bien en alg?n momento ?gracias!

El tema de los arrays no lo domino, alg?n tutorial o una explicaci?n r?pida de como se hacen y como se a?aden posteriormente valores?

Me interesa el tema porque va a ser que me van a hacer las cosas mucho m?s f?ciles  ;)

Os dejo una muestra de lo que tengo hecho hasta ahora. Como ver?is est? muy verde a?n y podr?an cambiar muchas cosas todav?a.
http://www.megaupload.com/?d=YLZCBDFJ (http://www.megaupload.com/?d=YLZCBDFJ)



Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: Hackware en Diciembre 19, 2010, 10:10:53 PM
Rapituto sobre arrays

Crear:
[gml]mi_array[0]=3;[/gml]

A?adir/modificar valores:
[gml]mi_array[1]=5;
mi_array[5]=7;
mi_array[3]=1;
mi_array[0]=4;
//...[/gml]

Fin.
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: byel en Diciembre 19, 2010, 10:39:16 PM
Comprendido. A ver si encuentro un hueco entre las cosas de clase y las fiestas y aplico todo esto a mi juego.

?SALUDOS A TODOS Y FELICES FIESTAS!
[/color][/size][/size]
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: Texic en Diciembre 20, 2010, 02:16:42 AM
Yo tengo una solucion mas simple, pero igualmente necesito saber una cosa. Si hay una central suministrando a muchas casas y hay otra en el mismo lugar, supuestamente todas las casas agarran energia de la primera construida, pero si se le termina agarran de la otra?
Bueno, te dejo el ejemplo q hice a ver si sirve, con click izq creas centrales y con el der creas casitas
Título: Re: Necesito consejos o ideas para resolver un asunto en mi juego
Publicado por: byel en Diciembre 20, 2010, 01:12:07 PM
efectivamente compa?ero, un edificio consume energ?a de donde pueda mientras est? a su alcance.

Ayer no podia dormir e hice algunos adelantos, as? que, si consigo implementar un poco m?s el juego con todo este material y sugerencias que hab?is aportado lo subir?. Buscadme en "juegos en desarrollo"  ;)

Edito: Bueno, decir que la propuesta de Texic funciona de categor?a ?te apunto para los cr?ditos! y gracias a todos los dem?s.