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.

Temas - Alfonsos1

1
Preguntas y respuestas / Cambiar sprite del cursor
Agosto 01, 2010, 12:41:53 AM
quiero que en unaslas rooms se vea  la flecha que todos conocemos, a esepcion de una room, en la cual quiero que se vea un sprite en lugar del cursor
2
quiero un funcion que me divuje el sprite de abajo para arriba, osea invertido
3
supongamos que tengo un objeto con un sprite A y una mask B, ambas (A y B) tienen varias subimagenes, por ejemplo A tiene 5 subimagenes y B tiene 3 subimagenes.

el image_index: ademas de determinar la subimagen del sprite que el objeto dibuja, determina la subimagen que utiliza la mask en las coliciones?

El image_angle: ademas de determinar el angulo con el que el objeto dibuja el sprite, determina al agnulo que utiliza la mask en las coliciones?
4
Uso tiles de 8*8 y la room mide 1984*1984
a medida de que pongo tiles veo que bajan los fps
A este ritmo para cuando complete de poner los tiles en el room, los fps ban a haber bajado de lo deseado (60 fps)

se puede?

La view mide 400*400
5
Que hacen las funciones instance_deactivate_... ?
6
Preguntas y respuestas / Ayuda con surface
Junio 21, 2010, 07:32:03 PM
lo que quiero es:

a cada evento draw crear una surface toda transparente, y dibujarle algunas cosas dentro, luego dibujar esa surfase en pantalla.

pero se ve como borroso y orrible!

el codigo es este:

create:
global.sur = surface_create(500,500);


draw:
surface_set_target(global.sur);
FUNCIONES DE DIBUJO
surface_reset_target();
draw_surface(global.sur,x-250,y-250);
7
Nombre del creador: Alfonsos1

Breve descripci?n de su funci?n: dibuja un poligono de hasta 8 lados

Versi?n GM utilizada:  :GM8:

Argumentos:
Citar
x1
y1
x2
y2
x3
y3
x4
y4
x5
y5
x6
y6
x7
y7
x8
y8
en caso de querer dibujar un poligono de menos de 8 lados dejar los ultimos argumentos con un valor de -1

Codigo de script:
verx[0] = argument0;
verx[1] = argument2;
verx[2] = argument4;
verx[3] = argument6;
verx[4] = argument8;
verx[5] = argument10;
verx[6] = argument12;
verx[7] = argument14;
very[0] = argument1;
very[1] = argument3;
very[2] = argument5;
very[3] = argument7;
very[4] = argument9;
very[5] = argument11;
very[6] = argument13;
very[7] = argument15;

if(verx[0] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 0;
if(verx[1] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 1;
if(verx[2] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 2;
if(verx[3] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 3;
if(verx[4] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 4;
if(verx[5] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 5;
if(verx[6] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 6;
if(verx[7] = max(verx[0],verx[1],verx[2],verx[3],verx[4],verx[5],verx[6],verx[7])) A = 7;

puntos = 8;
if(verx[7] = -1) puntos -= 1;
if(verx[6] = -1) puntos -= 1;
if(verx[5] = -1) puntos -= 1;
if(verx[4] = -1) puntos -= 1;
if(verx[3] = -1) puntos -= 1;

vasio = 0;
while(!vasio)
{
m1 = (very[(A-1+puntos) mod puntos]-very[(A+puntos) mod puntos])/(verx[(A-1+puntos) mod puntos]-verx[(A+puntos) mod puntos]+0.0000000001);
n1 = very[(A-1+puntos) mod puntos]-m1*verx[(A-1+puntos) mod puntos];
if( verx[(A+1+puntos) mod puntos]*m1+n1>very[(A+1+puntos) mod puntos]) h1 = 1;
else h1 = -1;

m2 = (very[(A-1+puntos) mod puntos]-very[(A+1+puntos) mod puntos])/(verx[(A-1+puntos) mod puntos]-verx[(A+1+puntos) mod puntos]+0.0000000001);
n2 = very[(A-1+puntos) mod puntos]-m2*verx[(A-1+puntos) mod puntos];
if(verx[(A+puntos) mod puntos]*m2+n2>very[(A+puntos) mod puntos]) h2 = 1;
else h2 = -1;

m3 = (very[(A+puntos) mod puntos]-very[(A+1+puntos) mod puntos])/(verx[(A+puntos) mod puntos]-verx[(A+1+puntos) mod puntos]+0.0000000001);
n3 = very[(A+puntos) mod puntos]-m3*verx[(A+puntos) mod puntos];
if(verx[(A-1+puntos) mod puntos]*m3+n3>very[(A-1+puntos) mod puntos]) h3 = 1;
else h3 = -1;

vasio = 1;
for(pnt=0;pnt<puntos;pnt+=1)
{
 if(pnt != (A-1+puntos) mod puntos && pnt != (A+puntos) mod puntos && pnt != (A+1+puntos) mod puntos)
 {
  if((verx[pnt]*m1+n1)*h1>=very[pnt]*h1+0.0000001 && (verx[pnt]*m2+n2)*h2>=very[pnt]*h2+0.0000001 && (verx[pnt]*m3+n3)*h3>=very[pnt]*h3+0.0000001)
  {
   vasio = 0;
  }
 }
}
if(!vasio) A = (A+1+puntos) mod puntos;
}

draw_triangle(verx[(A-1+puntos) mod puntos],very[(A-1+puntos) mod puntos],verx[(A+puntos) mod puntos],very[(A+puntos) mod puntos],verx[(A+1+puntos) mod puntos],very[(A+1+puntos) mod puntos],0);

for(ind=A;ind<puntos;ind+=1)
{
verx[ind] = verx[(ind+1) mod puntos];
very[ind] = very[(ind+1) mod puntos];
}
verx[puntos-1]=-1;
very[puntos-1]=-1;

if(puntos>3) poligono(verx[0],very[0],verx[1],very[1],verx[2],very[2],verx[3],very[3],verx[4],very[4],verx[5],very[5],verx[6],very[6],verx[7],very[7])


Ejemplos de uso:

Poligono de 8 lados:
poligono(250,250,200,300,200,275,150,275,150,200,175,225,200,225,225,200);

Poligono de 5 lados:
poligono(200,200,250,250,300,200,300,300,200,300,-1,-1,-1,-1,-1,-1);


IMPORTANTE: devido a que el script hace uso de la recurci?n, el nombre del script deve ser si o si "poligono".
8
Texic me habia dado este script:

/*
argument0: x1
argument1: y1
argument2: x2
argument3: y2
argument4: x3
argument5: y3
argument6: x4
argument7: y4
argument8: outline (true or false)
*/

if argument8 = true then
{
draw_line(argument0,argument1,argument2,argument3);
draw_line(argument2,argument3,argument4,argument5);
draw_line(argument4,argument5,argument6,argument7);
draw_line(argument6,argument7,argument0,argument1);
}
else
{
draw_triangle(argument0,argument1,argument2,argument3,argument4,argument5,false);
draw_triangle(argument4,argument5,argument6,argument7,argument0,argument1,false);
}


pero es solo para cuadrilateros, pense que seria fasil modificarlo para que funcione para poligonos de mas lados, pero no he sabido como.

Alguien tiene o me hace un script para drawear poligonos desde 3 hasta 8 lados pintado en en interior (que no sea solo la linia)

quiero algo asi:
draw_poligone(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8)

si se quiere representar un poligono de menos de 8 lados, los ultimos argumentos se dejan en -1

por ejemplo: un poligono de 7 lados:
draw_poligone(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,-1,-1)

por ejemplo: un poligono de 3 lados:
draw_poligone(x1,y1,x2,y2,x3,y3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)
9
observen la imagen,

en la imagen la sona negra es la que el personaje no alcanza a ver devido al muro.

Quiero hacer eso en mi juego, que la sona no visible quede negra.

mas info:
juego 2D
uso solo un objeto muro que es cuadrado
juego de vista cenital (mirado desde arriba)
la view sigue al personage siempre en el centro
10
No estoy seguro pero creo que cada tile tiene su propio indice.

Hay alguna funcion o manera que te devuelva el indice de un tile que hay en una cierta posicion X,Y?
11
Para el juego que estoy haciendo presiso utilizar una funcion (matematica) pero no logro encontrarla.

Por funcion me refiero por ejemplo a:

f(x) = 2*x+3

otro ejemplo:

f(x) = 2*x^2+0.5*x+23

--------

La funcion que presiso requiere de las siguientes caracteristicas:
la funcion siempre deve ser cresiente
f(0) = 0
f(180) = 180
f(90) = 105 0 aproximado
La pendiente en el punto x=0 tiene que ser 0
La pendiente en el punto x=180 tiene que ser 0
La pendiente en el punto x=90 tiene que ser de 2 o 3 aproximadamente
La concabidad desde x=0 asta x=90 tiene que ser positiva
La concabidad desde 90 asta 180 tiene que ser negativa

LES DEJO UNA IMAGEN ADJUNTA PARA QUE LES QUEDE MAS CLARO
12
Preguntas y respuestas / Como empezar con el 3D
Mayo 02, 2010, 01:18:10 AM
Teniendo GM8 pro, no tengo idea de como empezar.

hay qe descargar algo?

me descargue unos ejemplos de la seccion de descargas y hay cosas que me aparesen como "Unknown Action", a que se deve esto  ???
13
quisiera hacer un juego tipo Worm Wordl Party, pero no se me ocurre ninguna idea para hacer que cuando esplote algo, parte del mapa se destrulla.

creo que en el WWP los mapas serian una imagen, la cual es negra en las partes donde hay tierra, y blanca donde no hay nada, para destruir una parte del mapa solo seria modificar la imagen remplazando una parte blanca por una negra, pero el GM no puede modificar imagenes (creo).

------------------

miren esta imagen:

http://foro.elhacker.net/juegos_y_consolas/pidanme_juegos-t274171.0.html%3Bmsg1126368

como veran: el gusano "Zeus" esta en un citio donde al comienzo de la partida habia tierra, pero alguna explocion hizo que desapareciera esa parte de tierra
14
Preguntas y respuestas / sprites rotados
Abril 21, 2010, 01:52:27 AM
cuando se rotan los sprites estos se ven peor

si tenemos un sprite amarillo y verde, cuando lo rotamos todos sus pixeles seguiran siendo amarillos y verdes, aunque, en realidad, algunos pixeles deverian ser de colores intermedios como verde limon.

creo que vi algo sobre esto ahace tiempo pero ya no lo encuentro
15
Desarrollo de Scripts / redondear_azar
Abril 10, 2010, 02:45:59 AM
Nombre del creador: Alfonsos1

Breve descripci?n de su funci?n: Redondea el n?mero que se le de por argumento hacia arriba o hacia abajo. El porcentaje posibilidades de que el n?mero se redondee hacia arriba, es igual a los decimales del numero multiplicados por 100.

Ejemplo:
redondear_azar(3,574);
Tiene 57,4% de prob. de devolver 4 y 42,6% de prob. de devolver 3.

Versi?n GM utilizada: :GM8:

C?digo del Script:
if(argument0-floor(argument0)>random(1)) return ceil(argument0);
else return floor(argument0);


La ventaja de este tipo de redondeo:

floor(1.00) es lo mismo que floor(1.99)
ceil(0.01) es lo mismo que ceil(1.00)
round(0.51) es lo mismo que round(1.49)
redondear_azar(1) no es lo mismo que redondear_azar(1.01)

si se hace un promedio de varios redondear_azar(X), el numero obtenido tendera a X
16
quiero obtener el valor de la ultima tecla presionada para guardarla en una variable y luego checar si esa tecla es presionada

se q es una pregunta fasil pero no la encontre en el vuscador, y el manual que suelo usar de internet parese tener virus  :-X
17
prove con:

global.Cancion = file_text_open_write(global.CancionT);
file_text_write_string(global.Cancion,string(global.PuntajeN));

global.Cancion seria un txt

pero me remplaza todo el contenido del txt, yo solo quiero remplazar la primer linia con el valor de global.PuntajeN
18
quiero mostrar en pantalla una lista de los nombres de los archivos .txt que halla en una carpeta. En la carpeta puede variar la cantidad de archivos .txt al igual que los nombres de estos.

lo que quiero seria mostrar una lista asi:

nombre del primer txt en la carpeta
nombre del segundo txt en la carpeta
nombre del tercer txt en la carpeta
...

SI NO SE PUEDE ACCEDER AL NOMBRE DEL .txt ME BASTARIA CON PODER ACCEDER AL CONTENIDO, YA QUE PUEDO HACER QUE EL .txt TAMBIEN CONTENGA EL NOMBRE
19
Preguntas y respuestas / Como usar archivos .txt
Marzo 15, 2010, 08:14:53 PM
puse:

file_text_open_read("AA.txt");
global.ASD = file_text_read_string("AA.txt");
file_text_close("AA.txt");

pero me sale error, me dice: File is not opened for reading.

estaba intentando usar las funciones de aqui: http://www.comunidadgm.org/manual_GM/Archivos_GML.htm

supuestamente la primer funcion que use abre el archivo para ser leido...

el archivo txt se llama AA.txt y se encuentra en la carpeta del juego, ademas diganme si se puede y como habrir el txt si este estubiera en una subcarpeta dentro de la carpeta donde esta el juego, ya que las funciones q encontre solo tienen un argumento y creo que es el nombre del archivo
20
tengo que cargar un sonido wav, el cual va a estar en la carpeta del juego, pero esa carpeta podria estar en cualquier sitio.

si el nombre del sonido es 00001.wav, es posible obtener la direccion de la ubicaccion del wav?

nesesito la ubicaccion (creo que se le dice directorio) para usarla en un script