Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - esbxp

16
Personalmente creo que la mejor dimension es 320x240, claro que es un verdadero arte hacer los sprites, pa hacerlos encajar en ese tamano, per una imgen mas grande te dara mas trabajo crearla, ademas con este tamano te aseguras que pueda verse en dipositivos menores como un celular.
Otro factor a considerar es que algunos disenos los puedes hacer y multiplicar x2 en la ejecusion, es decir, si tu dispositivo es 1024x600, puedes disenar tu juego en 512x300, y al expandirlo en la ejecusion no perdera calidad,, mas de eso notarás las pixelasiones.

Saludos espero te sirva!!!!
17
Grafismo & Composición / Fondo en Tira Ciclica
Octubre 26, 2014, 05:54:16 PM
Hola :

Algun grafista que pueda pintar esta tira ciclica para este fondo  esta dividida en 3 partes ... a ver que tal se le da .... dimensiones finales ... 2048 x 224 !!!



18
Hola: Tengo este código:


/*
  Fijar el Path desde el Principio
  arg0 = lista de path a elejir
  arg1 = velocidad
  arg2 = 0 hacia el final
         1 hacia el Final Continuo
         2 continua desde la actual posicion
         3 hacia el principio Continuo
  arg3 = false: desde el Primer Punto
         true : ir hacia el primer punto del Path
         
  Llamada  Ejemplo:
           Enemy_PathFixer( choose(path00, path01, path02),
                            choose(4,5,6),
                            choose(1,3)
                            true )
                                   
*/

if(not bPath){
   bPath  = true
   myPath = argument0
   mx = path_get_point_x(myPath, 0)
   my = path_get_point_y(myPath, 0)
   px = mx + view_xview
   py = my + view_yview
   path_shift(myPath, px, py)
   
   
} else {
   //. Ir Hacia el 1er Punto del Path
   if(argument3 > 0){
      if(not bBase){
        move_towards_point(px, py, argument1)
        if(point_distance(x,y, px,py) < 0.50) {
          show_debug_message("Iniciar Path Caso(2)")
          x = px; y = py;    bBase = true
          path_start(myPath, argument1, argument2, false)
        }
      }
   //. Empezar desde el 1er Punto del Path   
   } else {
      if(not bBase) {
        show_debug_message("Iniciar Path Caso(1)")
        x = px; y = py;   bBase = true
        path_start(myPath, argument1, argument2, false)
      }
   }
}

/*
  Si esta en el Punto del Path se Inicia
  un Scroll del Path para desplazarlo junto
  al view_yview -= 1
*/
if(bBase){
  var i, _x, _y;
  for(var i = 0; i < path_get_number(myPath); i++)  {
      _x = path_get_point_x(myPath, i) + 0;
      _y = path_get_point_y(myPath, i) - 1;
      path_change_point(myPath, i, _x, _y, 100);
      //show_debug_message("Path("+string(i)+"):("+string(_x)+","+string(_y)+")")
  }
  //show_debug_message("----------------------------")
}


Si tienen un objeto view, que lo van deslizando, vertical mente, hacia arriba, luego cuando la instancia entre en el view, este script, le asigna una path, previamente definido, el problema es que el view, sigue avanzando, pero el path , una vez que entra en ejecución para ese objeto, no logra seguir el deslizamiento del view, a pesar de que los puntos del path, se van modificando, a la misma velocidad que el view se sigue deslizando, alguna sugerencia, o corrección, que no logro ver,,, XD,  please help !!!!



19
Hola:

Una una consulta, como se hace para que en la aplicación un vez desarrollada y exportada a Android, entregue un mensaje que diga, nueva actualización pendiente, y al pinchar el Botón, descargue de algún sitio, en nuevo APK, digo APK, porque en Windows se le puede agregar una DLL que haga la Tarea, pero en Android, no se que paquete es el que necesita para que haga esta operación !!!

O si mas bien trae implícito los comandos que hacen descargas de archivos, en la librería de GMS... ????
alguien sabe !!!

Saludos !!!
20
Se hace con un secuenciador, te doy la idea y la programas

CREATE EVENT
Secuence_init()

iResult = Play_Next(9,14)        //. Ejecuta los Frames del 9 al 14,, retorna FALSE, y TRUE cuando alcanza el  frame 14.
iResult = Play_Previous(9,14)   //. Ejecuta los Frames del 14 al 9,, retorna FALSE, y TRUE cuando al canza el frame 9.
iResult = Play_Pong(9,14)       //. Ejecuta los Frames 9 al 14, y luego del 14 al 9, retorna FALSE,  TRUE en el 9 y TRUE en el 14

Con estas combinaciones puedes manejar los Frames a tu antojo, alterando image_index internamente,,, esa es la idea !!!

Saludos !!!


21
Hola :

Si estuve viendo la modificación, del código, en realidad funciona como debiera, sin perder el centro del path, (le agradezco, por el tiempo dedicado), ahora lo puedo usar en una especie de BOSS.

De todas maneras, voy a dejar la forma con los 2 Path que se intercambian ,,, ahí lo analizamos !!!

Gracias !!!
22
Hola:
Mira a ver si puedes echarme una mano, le introduje una modificación ...
la variable "last=2", indica la cantidad de puntos, de la cola del Path, que luego son transferidos, a la posición 0, y desde alli debe dibujar un nuevo path, todo este cambio ocurre cuando el objeto a recorrido, un 74% de la ruta del path, osea el Path se reconfigura antes de alcanzar la ultima curva, hecha por la incidencia de "last", numero de puntos ...


//. reguta el Estado del Path
if(path_position > 0.74) {
   show_debug_message('position: ' + string(path_position))
   last = 2
 
   for(n=0; n < last; n++){
       vx = path_get_point_x(myPath, (PathTotal -last) +n)
       vy = path_get_point_y(myPath, (PathTotal -last) +n)
       path_change_point(myPath, n, vx, vy, 100)
       show_debug_message('Path('+string(n)+'): ' + string(vx) + ','+ string(vy) )
   }
   
   for(n=last; n < PathTotal; n++) {
     dist = 0
     do {
         px = random(600)
         py = random(600)
         for(k=0; k < PathTotal; k++){
            mx = path_get_point_x(myPath, k)
            my = path_get_point_y(myPath, k)
            dist = point_distance(px, py, mx, my)
            if(dist < radio*2) { break }
         }
     } until(dist > radio*2)
     
     show_debug_message('Coord('+string(n)+'): ' +string(px)+' , '+string(py)
     +' Dist: '+ string(dist)  )
     
     
     path_change_point(myPath, n, px, py, 100)
   }
   path_position = 0.00
   path_start(myPath, 8, 1, true)
   
}



Lo que estoy viendo la posibilidad es de crear un Segundo Path, que se inicia a partir de ultimo punto del primero, asi cuando alcanza el final del primer, Path, el objeto puede cantinuar el el Segundo, en el Mismo Punto en donde Terminó el Primero, cuando Termine el Segundo Path, comienze nuevamente el Primer Path, pero ahora generado a partir del ultimo punto del Segundo y Así sucesivamente, se van intercalando uno a uno ... no se si realmente resulte, es una idea, algún comentario u ocurrencia, se agradece !!!

Saludos !!!

23
Hola :
Tengo un problema con el Centralizado de los Path en el View, me explico.
1) Al Crear el Objeto este crea un path de 6 puntos, elije las posiciones al azar dentro del View. El Path no esta Cerrado


EVENTO CREATE

//. Crear Path Random

myPath = path_add()
path_set_kind(myPath, true)    //. Smooth Curves
path_set_closed(myPath, false)  //. Path Cerrado
path_set_precision(myPath, 4)

PathTotal = 8

repeat PathTotal {
    px = random(600)
    py = random(600)
   
    path_add_point(myPath, px, py, 100)
}

path_start(myPath, 8, 1, true)





2) Cuando el Objeto ha Alcanzado en recorrido del Path en un 0.49%, entonces
    a) Toma los 3 últimos puntos del path, y los pone en la posición 0
    b) Genera nuevos puntos, a partir de los 3 anteriores, para conservar la forma de la curva.
    c) Se asegura que cada punto generado, no debe estar mas cerca en distancia, del valor situado en la variable radio=50
        (para evitar curvas muy pronunciadas, valores mas grandes, el ciclo se quedara pegado, al no encontrar espacios suficientemente amplios para situar los puntos del path)

EVENTO DRAW


//. Path Draw Debug
min_x = 0
min_y = 0
max_x = 0
max_y = 0

path_width  = 0
path_height = 0

radio = 50

for(n=0; n < PathTotal; n++){
    px = path_get_point_x(myPath, n)
    py = path_get_point_y(myPath, n)
   
    //. Calcula el Ancho y Alto General del Path
    min_x = min(px, min_x)
    min_y = min(py, min_y)
    max_x = max(px, max_x)
    max_y = max(py, max_y)
   
    path_width  = max_x - min_x
    path_height = max_y - min_y
   
    //. Dibuja los Puntos del Path
    draw_ellipse_color((px-4), (py-4), (px+4), (py+4),
    c_blue, c_blue, c_black)
   
   
    //draw_text((px -4), (py -20), string(n))
   
    //. Radio entre los puntos
    if(n < 3)then draw_set_color(c_purple)   //. Los 3 Memorizados
             else draw_set_color(c_yellow)     //. Los 3 Nuevos
    draw_circle(px, py, radio, true)
   

}

//. Dibuja los Limites del Ancho y Alto del Path
MargenX = (view_wview - path_width)  / 2
MargenY = (view_hview - path_height) / 2
draw_rectangle(MargenX, MargenY, MargenX + path_width, MargenY + path_height, c_blue)
draw_path(myPath, 0,  0, true)

//. Chequea el Estado de avance en el Path  (path de 6 puntos)
//. Se activa cuando el objeto ha avanzado casi un 50% del recorrido
if(path_position > 0.495) {
   show_debug_message('position: ' + string(path_position))
 
   //. Mueve en las posiciones  0,1,2 los valores de, 3,4,5
   for(n=0; n < 3; n++){
       vx = path_get_point_x(myPath, n+3)
       vy = path_get_point_y(myPath, n+3)
       path_change_point(myPath, n, vx, vy, 100)
       show_debug_message('Path('+string(n)+'): ' + string(vx) + ','+ string(vy) )
   }
   
   //. Genera nuevas puntos a partir de la posición 3
   for(n=3; n < PathTotal; n++) {
     dist = 0
     do {
         px = random(600)
         py = random(600)

         //. Comprueba que los Radios de Cada punto no queden muy cerca  "radio*2"
         for(k=0; k < PathTotal; k++){
            mx = path_get_point_x(myPath, k)
            my = path_get_point_y(myPath, k)
            dist = point_distance(px, py, mx, my)
            if(dist < radio*2) { break }
         }
     } until(dist > radio*2)
     
     show_debug_message('Coord('+string(n)+'): ' +string(px)+' , '+string(py) +' Dist: '+ string(dist)  )
     
     path_change_point(myPath, n, px, py, 100)
   }
   path_position = 0.00
   path_start(myPath, 8, 1, true)
 
}


Pues bien si analizan el algoritmo, trabaja perfectamente, solo que el Path al momento de ser dibujado parece perder el Centro, por lo que la figura que lo sigue, da como un salto desde una posición a otra, y en realidad debiera continuar, un ciclo infinito, ya que se va creando un nuevo path, a partir de los últimos 3 puntos, que siempre se van conservando, hay alguna manera de centrar el path, en el view, hay alguien que analiza algoritmos ?


Gracias !!!
Saludos

???





24
 Tengo esto :

myPath = path_add()
path_set_closed(myPath, true)
path_set_precision(myPath, 4)

index = 0
do {
  xp = CRND( 800 )   //. Random entre 1 y 800
  yp = CRND( 600 )   //. Random entre 1 y 600
  path_add_point(myPath, xp, yp, 100);

  show_debug_message("Path: " + string(xp) +","+ string(yp))

  index += 1
} until (index >= 10)

path_assign(object_index, myPath)

path_start(myPath, 4, 2, false)   //. Error en la Ejecucion


Pero da error en la Ejecución,  alguien sabe como se enlaza al objeto el PATH ...
25
No se olviden después de bajar el archivo, click derecho desbloquear, para leer el contenido !!!
26
Hola:

Yo te hago la traducción como en 20 días ... estos algunos de mis trabajos ...
lo demás es pura boca, y cosas de noobs ,,, recuerdan ,,, jaja !!!

a estas alturas ya tengo un diccionario y traductor, adaptado, a los términos léxicos de programación !!!

vean si es algo como esto,  lo que quieres, o lo que quieren todos en general ... otras cosas se pueden adaptar tambien  !!!


https://dl.dropboxusercontent.com/u/58620027/Lua50.chm
https://dl.dropboxusercontent.com/u/58620027/Lua51.chm

No tengo resentimiento contra "Lua.org",  solo que ni por cortesía, me nombraron, en la traducción,

Saludos !!!

27
Hola:

Una consulta alguien sabe si existe alguna utilidad, para poder cargar niveles de una manera externa en GM, digo por los Sprites y Objetos, que siendo Globales podrían estar en el Editor, pero la distribución de estos mas los fondos, podrian estar escritos en algún archivo, y entonces se ejecuta la misma sala, pero carga los niveles que están grabados, en el Disco !!!

Alguien sabe algo de esto, o existe alguna utilidad que lo haga !!!

Saludos !!!
28
Hola:

Tengo una duda, resulta que en la imagen adjunta tengo un sprite, de 12 cuadros para un salto, con su respectiva Mask, que tuve que hacerla en otra imagen, pues solo quiero que colisionen los pies y las manos, tengo los 12 frames del salto, y sus respectivos 12 Frames del Mask, entonces la pregunta, es la función colisión, desde código, seria,  place_meeting(x,y,  obj_Personaje),   

colisiona con una sola imagen del mask, o, con cada imagen mask que sigue a la animacion del sprite ????
en el caso  "sprite_caminar", y "sprite_caminar_mask",  como cambio la "imagen_mask" desde código???

alguien tiene algún ejemplo de "colision mask frames"



gracias
29
Yo lo había hecho parecido, pero con algo llamado checkpoint,,, puede ser un objeto al final de cada etapa,,, si reune los requisitos de la misión y pasa por ese objeto se graba la partida,,, sino todo denuevo,,, no permito grabar al medio del juego es la misión jugada de una vez  o nada  !!!

!!!

30
Preguntas y respuestas / Re:3D
Julio 26, 2012, 02:11:16 AM
Pero en 3D la Z esta al Revez ,,,

x: va a la derecha
y: va hacia el fondo
z: mira hacia arriba