Jump to content

Whiter

Registrados
  • Content Count

    6
  • Joined

  • Last visited

Community Reputation

2 Neutral

About Whiter

  • Rank
    Recién Llegado

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

234 profile views
  1. He probado a hacerlo, pero no funciona del todo bien. El código es el siguiente: Primero meto en un array todos los bloques de la escena: allTiles = GameObject.FindGameObjectsWithTag("A"); Luego, con un for los clasifico en 4 listas comparando sus posiciones x e y con el selector. for (int t = 0; t < allTiles.Length; t++) { if (allTiles[t].transform.position.x > transform.position.x) { rightTiles.Add(allTiles[t]); } if (allTiles[t].transform.position.x < transform.position.x) { leftTiles.Add(allTiles[t]); } if (allTiles[t].transform.position.y > transform.position.y) { upTiles.Add(allTiles[t]); } if (allTiles[t].transform.position.y < transform.position.y) { downTiles.Add(allTiles[t]); } } Por ultimo, busco el tile mas cercano de cada una de las listas para meterlo en una variable. for (int i = 0; i < rightTiles.Count; i++) if (rightTiles[i].transform.position.x < minval) { if (rightTiles[i].transform.position.y < transform.position.y + 1 && rightTiles[i].transform.position.y > transform.position.y - 1) { minval = rightTiles[i].transform.position.x; lowestIndex = i; } } if(lowestIndex == -1) { minval = 1000000; //Más a la izquierda de todas. (Menor valor y de la lista izquierda) for (int i = 0; i < leftTiles.Count; i++) if (leftTiles[i].transform.position.x < minval) { if (leftTiles[i].transform.position.y < transform.position.y + 1 && leftTiles[i].transform.position.y > transform.position.y - 1) { minval = leftTiles[i].transform.position.x; lowestIndex = i; } } rightTile = leftTiles[lowestIndex]; } else rightTile = rightTiles[lowestIndex]; minval = 1000000; lowestIndex = -1; for (int i = 0; i < leftTiles.Count; i++) if (leftTiles[i].transform.position.x < minval) { if (leftTiles[i].transform.position.y < transform.position.y + 1 && leftTiles[i].transform.position.y > transform.position.y - 1) { minval = leftTiles[i].transform.position.x; lowestIndex = i; } } if (lowestIndex == -1) { minval = -1000000; //Más a la derecha de todas. (Mayor valor y de la lista derecha) for (int i = 0; i < rightTiles.Count; i++) if (rightTiles[i].transform.position.x > minval) { if (rightTiles[i].transform.position.y < transform.position.y + 1 && rightTiles[i].transform.position.y > transform.position.y - 1) { minval = rightTiles[i].transform.position.x; lowestIndex = i; } } leftTile = rightTiles[lowestIndex]; } else leftTile = leftTiles[lowestIndex]; minval = 1000000; lowestIndex = -1; for (int i = 0; i < upTiles.Count; i++) if (upTiles[i].transform.position.y < minval) { if (upTiles[i].transform.position.x < transform.position.x + 1 && upTiles[i].transform.position.x > transform.position.x - 1) { minval = upTiles[i].transform.position.y; lowestIndex = i; } } if (lowestIndex == -1) { minval = 1000000; //Más a la derecha de todas. (Mayor valor y de la lista derecha) for (int i = 0; i < downTiles.Count; i++) if (downTiles[i].transform.position.y < minval) { if (downTiles[i].transform.position.x < transform.position.x + 1 && downTiles[i].transform.position.x > transform.position.x - 1) { minval = downTiles[i].transform.position.y; lowestIndex = i; } } upTile = downTiles[lowestIndex]; } else upTile = upTiles[lowestIndex]; #endregion #region DownTiles minval = 1000000; lowestIndex = -1; for (int i = 0; i < downTiles.Count; i++) if (downTiles[i].transform.position.y < minval) { if (downTiles[i].transform.position.x < transform.position.x + 1 && downTiles[i].transform.position.x > transform.position.x - 1) { minval = downTiles[i].transform.position.y; lowestIndex = i; } } if (lowestIndex == -1) { minval = -1000000; for (int i = 0; i < upTiles.Count; i++) if (upTiles[i].transform.position.y > minval) { if (upTiles[i].transform.position.x < transform.position.x + 1 && upTiles[i].transform.position.x > transform.position.x - 1) { minval = upTiles[i].transform.position.y; lowestIndex = i; } } downTile = upTiles[lowestIndex]; } else downTile = downTiles[lowestIndex]; Lo que hago es primero ver cual dentro de la lista tiene el valor mas pequeño en caso de arriba y derecha y el mas grande en caso de abajo e izquierda. Luego, para que no coja un bloque que esta a la derecha pero muy arriba, le pongo que este como máximo una unidad por arriba o por abajo del eje contrario. Y por ultimo, al pulsar WASD la posición se cambiara por la posición del bloque. if (Input.GetKeyDown(KeyCode.W)) { transform.position = upTile.transform.position; ClasifyTiles(); } else if (Input.GetKeyDown(KeyCode.S)) { transform.position = downTile.transform.position; ClasifyTiles(); } else if (Input.GetKeyDown(KeyCode.D)) { transform.position = rightTile.transform.position; ClasifyTiles(); } else if (Input.GetKeyDown(KeyCode.A)) { transform.position = leftTile.transform.position; ClasifyTiles(); } Al iniciar, y hacer el primer calculo, parece ir sin problemas. Pero según vas moviéndote, empieza a dar errores de out of range, saltar a bloques que no debería saltar, o en vez de saltar al mas cercano, saltar al mas lejano. He estado dándole muchas vueltas al código pero no he conseguido arreglarlo, agradecería la ayuda.
  2. La idea es usarlo para un tower defense, por lo que dependiendo del mapa habrá más o menos columnas y filas, y colocadas de forma diferente. El juego es en 2D, por lo que todos estarían a la misma altura.
  3. Buenas tardes, mi problema es el siguiente. Estoy intentando encontrar la forma de mover un selector utilizando teclas (WASD) entre bloques colocados de forma irregular. La idea es que si pulsas W, vaya al más cercano hacia arriba, al pulsar D al mas cercano hacia la derecha y así con el resto de teclas. He mirado que se pueden crear grids, pero no he visto como utilizarlas con bloques separados. Gracias de antemano.
  4. Gran actualización con mucha nueva información.
  5. Proyecto "Anharad" - Unity 2.5D RPG La leyenda del sangre mestiza. Estamos buscando gente para el proyecto -Vacantes:·Spriter·Animador Digital (De sprites y/o cinemáticas)·Diseñador de Interfaz·MusicoEstas son las vacantes principales, pero no vendría si alguien quiere ayudar como: ·Guionista·Programador (C#)·Experiencia con UnityNo hay experiencia requerida. Si por ejemplo no eres muy buen spriter pero te interesa el proyecto y quieres colaborar puedes aprender y practicar sobre la marcha. Interesados, comenten este post o contáctenme por Discord: White#6326 o DM. Información Sobre el Proyecto: Tiempos oscuros se ciernen sobre la región de Anharad.Desde que los 7 primigenios terminaron la lucha, ninguna raza había siquiera intentado retomar la batalla.Pero algo ha nacido en la región, algo que podría significar la destrucción total de Anharad o su completa salvación.Esta es tu leyenda, la leyenda del sangre mestiza. En Anharad existen 7 razas, cada una de ellas domina una habilidad única que la diferencia del resto. (Artes místicas, Fuerza, Discreción, Comunicación, Fabricación, Exploración, Artes Oscuras)Se dice que al principio de los tiempos sólo existía una única raza, no se conocen sus orígenes reales y dependiendo de a quien le preguntes te contará una leyenda u otra.Lo que si se sabe es que en Anharad sólo habitaban 7 individuos de esta raza, todos y cada uno de ellos querían el poder, querían sobresalir sobre sus hermanos.Cada uno de ellos eligió un camino diferente para intentar sobrepasar a sus hermanos.Pero, aunque llegaron a dominar a la perfección su habilidad, ninguno salió vencedor.Porque las habilidades, aunque son muy diferentes, ninguna es superior a otra.Por ello dejaron momentáneamente la lucha hasta que alguno de ellos consiguiese dominar más de una habilidad y consiguiendo así ser el vencedor. -Daedalus se retiró a las cuevas, donde podía extraer todo el material que quisiera y trabajar en sus máquinas sin ser molestado. Creando así a la raza enana. -Ázar busco el lugar más alto de la región, donde sus poderes mágicos se verían potenciados. Por ello se instaló en la montaña Nombre. Creando así la raza de los elfos. -Drusus busco un lugar donde entrenar su fuerza, así que fue a la llanura de Nullarbor. Donde con sus propias manos construyó un coliseo para poder practicar y luchar contra cualquiera que se atreviese. Dio lugar a la raza de los orcos. -Cato fue rápidamente a buscar el lugar con más recursos donde le sería más fácil prosperar, encontró una ciénaga donde nació la raza de los goblins. -Nymphadora se refugió en el bosque, donde junto con la ayuda de los animales y la naturaleza, próspero la raza de los arboreos. -Rajani se dirigió hacia un antiguo valle que había sido destruido tras su batalla, donde pudo practicar sus artes místicas de la necromancia junto con su nueva raza, los sombras. -Ask fue el único que no busco ningún lugar, creó una raza nómada, los humanos. Las 7 razas: -Enanos: Son seres capaces de crear cualquier objeto con los materiales adecuados, expertos constructores y amantes de la tecnología y las armas de fuego. Aunque de baja estatura, no hay que subestimar su fuerza. Habitan en las cuevas oscuras de Anharad, donde pueden encontrar todos los materiales que necesitan para sus creaciones. -Elfos: Gracias a su sabiduría y gran capacidad de aprendizaje, los elfos son capaces de dominar las artes místicas. Esta raza vive en los castillos de cristal de las montañas heladas, donde pueden practicar sus técnicas mágicas de los 4 elementos. -Orcos: Los orcos son posiblemente la raza más temida de la región, gracias a su fuerza y su brutalidad se vuelven unos luchadores implacables en el campo de batalla. Los orcos viven y entrenan en el antiguo coliseo de Drusus. -Goblins: Pequeños, rápidos y astutos. Son las cualidades que hacen a esta raza perfecta para robar y engañar con sigilo y precisión. En la ciénaga oscura pueden practicar su ocultismo mientras molestan a otros trasgos. -Arbóreos: Se dice que las arbóreos son parte del bosque, tienen una relación directa con la naturaleza y los animales que la habitan, además pueden comunicarse con cada ser vivo, incluso con las plantas. Son unos excelentes arqueros, aunque a veces prefieren utilizar la naturaleza a su favor. Viven en el bosque Elah, aunque puede que te encuentres uno en cualquier arbol de la región. -Sombras: Los sombras son tal vez la raza más misteriosa de Anharad. Habitan en el valle de la muerte donde practican su nigromancia y artes oscuras. Son capaces de revivir a los muertos, controlarlos e invocar a demonios. -Seekers: Los humanos son una raza nómada, expertos comerciantes y cazadores. Además, tienen una gran habilidad para crear trampas. Se dice que el motivo por el cual se desplazan es porque son exploradores natos, son incapaces de mantenerse en un mismo sitio sin que su pasión por el descubrimiento les obligue a moverse. Porque elegir una raza: Arbóreo T: Aunque no sea la raza más resistente ni la más fuerte físicamente; es capaz de asestar golpes poderosos que producirán efectos en el enemigo como confusión. ¿Pero por qué elegirlo a él si el orco es más fuerte y puede producir este tipo de golpes? Bueno, pues el arbóreo T tiene mayor protección contra la magia que el orco y además puede realizar ataques a distancia media, curarse con la ayuda de la naturaleza, pasar desapercibido ante los animales y no solo es un buen alquimista sino que además puede crear sus propios mangos para las armas. Arbóreo N: Al contrario que su contraparte el arbóreo T, este arbóreo se centra más en obtener ayuda de la naturaleza en vez de centrarse en su fuerza. Es mucho más débil en cuanto a resistencia y ataque físico que su contraparte, pero es superior en cuanto a ataque y resistencia mágica. Comparte algunas características con su contraparte como pasar desapercibido ante los animales y obtener curación de la naturaleza, pero este arbóreo va más allá en cuanto a su relación con el entorno, siendo capaz de llamar a animales que le ayuden en la batalla, obtener bonus y producir estados negativos en el enemigo. También son buenos alquimistas y arqueros. Elfo: Los elfos dominan las artes místicas, son capaces de controlar los elementos y aprovechan este control en la batalla. Con el fuego son capaces de causar gran cantidad de daño mágico en el enemigo, con el agua pueden obtener bonus temporales y con el aire crear mantos que le protejan de los ataques y hacer retroceder a sus enemigos entre otros usos. Pero los elfos son bastante débiles resistiendo golpes por el lado físico por lo que procuran atacar desde la distancia. Pero aunque no tienen mucha fuerza física algunos elfos optan por usar espadas para cubrir el lado físico y aprovechar su poder de encantamiento. Son buenos con los encantamientos y la alquimia. Enano: Los enanos son habilidosos constructores, resistentes y fuertes. Pueden atacar con martillos a distancia corta y con armas de fuego a media y larga y son expertos herreros. Pero…¿entonces son la raza perfecta? Aunque tengan esas características, los enanos flaquean demasiado por el lado mágico, nunca verás a un enano lanzar un hechizo, encantar un arma o crear una poción. Y por último decir que su movilidad es reducida. Goblin: Los goblins son unos maestros del sigilo y el engaño, aunque son muy poco resistentes por los dos lados y nada fuertes, aprovechan su sigilo para atacar a sus víctimas sin ser vistos. Pero si en algún momento un goblin tuviese que meterse en una batalla no está todo perdido, debido a su alta movilidad pueden esquivar muy bien los golpes o huir si la situación lo requiere. Son expertos alquimistas, herreros aficionados pero pésimos con los encantamientos. Orco: Los orcos viven para la batalla, su fuerza y resistencia física es muy elevada, no son del todo lentos pero tampoco tienen mucha movilidad. Pueden asestar potentes golpes y resistirlos. Aunque por el lado mágico no son tan resistentes y son pésimos con la magia. No son del todo buenos en la herrería pero lo suficiente para mejorar sus propias armas, por otro lado no saben nada de alquimia y encantamiento. Seeker: Los seekers son expertos exploradores y debido a que son nómadas también son expertos cazadores. Los seekers suelen adiestrar animales voladores que pueden ayudarle en la exploración, llegando a sitios que él no puede llegar, para averiguar la posición de los enemigos o para encontrar objetos ocultos. Aunque son medianamente fuertes prefieren usar su cerbatana como arma, con la cuál pueden producir múltiples estados en el enemigo. Y de esta forma se compensa su baja resistencia y ataque, ya que no son muy buenos cuerpo a cuerpo. Son buenos herreros, capaces de crear trampas y no flaquean al crear pociones o encantar. Sombra: Los sombras tienen una conexión con el inframundo, lo que les permite conjurar demonios y otros entes, además pueden revivir muertos para que luchen por ellos. Esto les ayuda a no recibir golpes ya que es una de las razas más débiles. Además son capaces de lanzar hechizos oscuros y robar vida del enemigo y usar armas cuerpo a cuerpo. Hacen los mejores encantamientos de Anharad y pociones decentes, pero son pésimos herreros. Historia: La historia se dividirá en 3 grandes partes, por ahora unicamente mostrare la primera. En la cuál nuestro personaje descubre que es un sangre mestiza, un hombre a quien llaman el maestro, le encuentra para explicarle que debe completar 7 pruebas para dominar su poder y de está forma poder ser el guardián de Anharad. (Cada una de las razas tendra un comienzo distinto.) Mapa Conceptual: https://i.imgur.com/PbdayHc.png?1 Imágenes: Los recursos gráficos utilizados en estas imágenes son de uso publico y NO son los gráficos que se utilizaran en el juego final. He utilizado estos para mostrar el avance hasta que dispongamos de nuestros propios graficos 1.Barra de Vida 2.Barra de Maná 3.Barra de Estamina 4.Nombre del Mapa Actual 5.Minimapa 6.Reputacion 7.Objetos y artes de combate 8.Misiones Videos: https://youtu.be/UG9W7IJX3L0 Ahora todo se ve un poco...feo. Porque estamos centrándonos en la programación. Sistemas y Mecanicas: -Sistema de reputacion: Resumen: Existen dos tipos de reputación, la local y la global. La reputación influye principalmente en las misiones, dependiendo de tu reputación se te ofrecerán o no misiones y/o habrá diferentes formas de hacerlas. (Local 70% - Global 30%) Si tu reputación es alta recibirás misiones de los habitantes de la ciudad y su jefe. Si es baja recibirás misiones de los ladrones, estafadores y criminales. Ventajas y desventajas: Si tienes una reputación alta, recibirás misiones de los ciudadanos, dependiendo de como de alta sea, obtendrás mayor cantidad de misiones por su parte y con mayores recompensas. También variarán los precios y los objetos ofrecidos de los mercaderes. Además influirá en las casas a las que puedes entrar, ya que si tu reputacion es baja no confiaran en ti y no te permitirán pasar, pero si es alta incluso puede que te obsequien con un regalo o una comida. Además, si tu reputación es alta, algunos bandidos pequeños no te atacaran, mientras que si lo harán los mas fuertes. Por último, cuando te encuentres en la segunda parte de la historia si tu reputación es muy alta, algunas personas te regalarán objetos para ayudarte en tu misión y algunos caballeros te seguirán momentáneamente. Si tienes una reputación baja, recibirás misiones de los bandidos y ladrones. Al igual que con la reputación alta, dependiendo de como de baja sea obtendrás mayor cantidad y recompensas. Los precios de los mercaderes se verán aumentados y si es muy baja se negaran a atenderte, pero podrás comerciar con los bandidos que lleven contrabando. Los ciudadanos no te permitirán entrar en sus casas, pero podrás ir a los gremios de ladrones. Donde algunos ladrones puede que decidan acompañarte momentáneamente. En algunas ciudades al entrar, la guardia te parará. A veces a acerté sólo preguntas, pero otras te registrarán y si has robado algo podrán detenerte. Y por último, si es muy baja, no te atacaran los bandidos. Funcionamiento: La reputación se divide en local y global, la local influye en un 70% y la global un 30%. Al realizar una misión se sumará o restará tu reputación, el 70% de los puntos irán para la local y el resto para la global. Otras acciones como atacar ganado o ciudadanos, entrar en casas sin permiso, atacar bandidos o impedir robos también hará que tu reputación varíe. La reputación se muestra en dos barras debajo del minimapa. Género: RPG, 3º Persona, 2.5D. Público Objetivo: 13+ Controles: Ratón y Teclado o (Mando o Táctil) Entorno Temático: Fantasía medieval - magia, armas, monstruos. Inspiración: Sacred, Pokémon, Black Desert Online y Skyrim. Programas para el desarrollo: Unity y Aseprite. (Programa de creación y edición de audio) Plataforma(s): PC (Moviles y Consolas). Progreso: Menú de inicio simple, barra de vida funcional, prototipo del HUD, menú de pausa, movimiento del personaje, warps, minimapa alpha y nombre del mapa actual. Resumen del Juego: Un mundo habitado por 7 razas, cada una de las cuales tiene una habilidad única que la diferencia del resto. Pero ninguna de ellas es capaz de dominar más de una habilidad, si alguna vez lo consigue, tendrá el máximo poder. Mas información e imagenes próximamente. Creditos: -Unity
  6. Hola a todos. Acabo de registrarme en esta comunidad para postear mi nuevo proyecto de Unity. Anteriormente he estado en foros como Whack a Hack donde he trabajado en proyectos de RPG Maker XP y Pokémon Essentials. Pero hace poco tuve una idea para un rpg y en vez de hacer un nuevo proyecto en RMXP como solía acostumbrar, he decidido crearlo en Unity, donde pienso que hay mas posibilidades y podre obtener un mejor resultado. Nada mas que decir. White~
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...