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 - kostra

1261
Preguntas y respuestas / Re:Key device
Noviembre 24, 2015, 04:44:21 AM
elvis, yo he provado los tutos de virtualkeys y me han fallado en todos mis intentos... a mí me va mejor los device functions.

ejemplo similiar a mouse_check_button pero con multitouch claro
[gml]for(device=0;device<=4;device+=1)
{
    if (device_mouse_check_button(device,mb_left))
    and device_mouse_x(device) > x
    and device_mouse_x(device) < x+sprite_width
    and device_mouse_y(device) > y
    and device_mouse_y(device) < y+sprite_height
        {
               //tu codigo
        }
}
[/gml]
Claro que en este caso, el origin del sprite del botón tendría que ser 0,0
1262
Preguntas y respuestas / Re:Puntero personalizado c:
Noviembre 24, 2015, 04:38:54 AM
si falla algo puedes probar, o lo que dijo el Maestro Guacusio o... ponerlo directamente en el evento draw, en vez de draw_gui
1263
bueno, no edito para que te notifique xD
aquí está el ejemplo (offline)
https://mega.nz/#!IQ80GZrL!AhAYGDQN_QPlYfHDWfr1OhL2pxwirZaKoGGOXg0HpLA

para que funciona HAS DE TENER EL ARCHIVO INI, que en esta ocasión, se me antojó llamarlo "quiz.dat", sí, .dat porque me apetecia, pero no deja de ser un ini tal y como dije en mensajes anteriores... xD

El archivo en cuestión con el cuál yo he probado (con 10 preguntas) es el siguiente:
[data]
num=10
p1="Como uno no se complica la vida?"
r10="Atendiendo a Kostra xD"
r11="No escuchar a Kostra"
r12="Siendo chino xD"
p2="Dos mas dos?"
r20="4"
r21="22"
r22="Venticatorce"
p3="De que color es el caballo blanco de Santiago?"
r30="Blanco"
r31="Verde"
r32="Transparente"
p4="Esto es una pregunta?"
r40="Si"
r41="No"
r42="Pizza"
p5="Quien es la maxima autoridad del foro?"
r50="Kostra xD"
r51="Una tortuga"
r52="hitler"
p6="Si tienes tres pelotas y se te pincha una, cuantas pelotas te quedan?"
r60="3"
r61="2"
r62="1"
p7="La raiz cuadrada de 625?"
r70="25"
r71="36"
r72="52"
p8="Cual es la mejor opcion para jugar?"
r80="MHP Labs, sin duda alguna xD"
r81="King"
r82="Una caja"
p9="Que sistema de teclado se usa en Suiza?"
r90="QWERTZ"
r91="QWERTY"
r92="QWENTIN"
p10="Esto es una pregunta"
r100="Esto la respuesta buena"
r101="Esto la respuesta mala 1"
r102="Esto la respuesta mala 2"


PD:El ejemplo quizás parece un infierno, pero el infierno es la aleatoriedad de la posición de las respuestas, confieso que me he echo un poco el lio y seguro que se puede hacer mejor y más fácil xD, lo que te dije que no era sofisticado es la lectura ALEATORIA de infinitas preguntas con sus respuestas en UN SOLO ARCHIVO. Ahí lo tienes, en el principio del create del objeto "oquestion" :B
1264
me aburro, ahora mismito te lo hag y edito este post, se me olvidó el otro día sry... la cerveza.. xD
1265
Preguntas y respuestas / Re:Puntero personalizado c:
Noviembre 24, 2015, 01:24:57 AM
puse gui por eso mismo, por si usa view, tengo entendido, y creo que lo dijiste tu en un post, que el draw gui se basa a partir de las coordenadas de la view :/ pero bueno, si dices tú eso y yo ya confirmo que sabes más xD pues será xD no más que probarlo jejeje
1266
Preguntas y respuestas / Re:Puntero personalizado c:
Noviembre 23, 2015, 08:12:43 PM
en draw_gui:
draw_sprite(spr_cursor,mouse_x,mouse_y);

y si usas draw_sprite_ext lo puedes hasta hacer animado
1267
la verdad, no es tan sofisticado, puede asustarte un poco la parte donde leo con los ids, pero bueno, hoy mismo, luego te haré un ejemplo completo, no es para tanto en serio, almenos no si entiendes las funciones ini básicas...
1268
[hola]
num=4
p1="Como uno no se complica la vida?"
r10="Atendiendo a Kostra xD"
r11="No escuchar a Kostra"
r12="Siendo chino xD"
p2="Dos mas dos?"
r20="4"
r21="22"
r22="Venticatorce"
p3="De que color es el caballo blanco de Santiago?"
r30="Blanco"
r31="Verde"
r32="Transparente"
p4="Esto es una pregunta?"
r40="Si"
r41="No"
r42="Pizza"


num es el numero total de preguntas que hay
p1 es pregunta con id 1
r10,r11,r12 es respuesta "1-0", respuesta "1-1" y respuesta "1-2"
el primer "1" es el id de la pregunta a la que corresponden y el otro numero, 0 será SIEMPRE la correcta y 1,2 serán las incorrectas, espero explicarme bien.
Lo demás a partir de p2 es lo mismo pero las siguientes, 2,3,4...

la respuesta correcta siempre será la 0 (r10,r20,r30,r40,etc), el sistema en el GM es el que ha de poner en pantalla de forma aleatoria las respuestas, así en un mismo objeto puedes poner todo...

obj_pregunta:

create:
ini_open("preguntas.ini"); //abro ini
num = ini_read_real("hola","num",1); //leo numero total de preguntas
pregnum = irandom(num)+1; //asigno un id de pregunta aleatorio, le sumo 1 porque en el ini no hay pregunta "0"
pregunta = ini_read_string("hola","p"+string(pregnum),""); //asigno la pregunta aleatoria que será p1,p2,p3 o p4 en este caso
respuesta = ini_read_string("hola",r"+string(pregnum)+"0",""); //asigno la respuesta BUENA con el mismo id que la pregunta
respuestamala1 = ini_read_string("hola",r"+string(pregnum)+"1",""); //asigno respuesta mala con el mismo id que la pregunta
respuestamala2 = ini_read_string("hola",r"+string(pregnum)+"2",""); //asigno la segunda respuesta mala


al momento de mostrar una pregunta, donde muestras las respuestas has de poner las 3 aleatoriamente entre las 3 posiciones que hay y al seleccionar una respuesta solo has de comparar si es la buena, y la buena ya la tienes en una variable... "respuesta", si no sabes hacer eso, dilo xD

primero haz el sistema evitándote los mil objetos y luego ya busca el hacer ini online... tienes varios posts que hablan sobre eso, so mismo abrí uno preguntando lo mismo, igual abrió niuweb, parece que sepone de moda los ini online xDD
1269
pues si poner eso vuelvo a cometer error, por qué poniendo <=23 en el for y <23 en el while me salta out of range??? T_T

EDITO: POR DIOS MEGA FAIL!!!! xDD había puesto <=23 en un for que no era JAJAJAJSAKJDALKSDJAWKDJ bueno, muchas graciacas a todos uuuuna vez más xD
1270
lee losanteriores posts, ya existe la array lo puse como tu has dicho, ya lo dije jejeje
y en el while.. no se cuenta la 23? entonces pondré también <=23 a ver...

error out of range también...

en el for tiene <= 23 y en el white también

Usar do while, creo que no funcionaría porque antes de sumarle al rune, he de verificar también la numero 0!! plis, lee la explicación que doy sobre lo que trato de hacer, en el primer mensaje :B
1271
a ver a ver... por orden, esto es una horda xD

1.. ++i ??? watafak?? es la primera vez que lo veo así puesto, igual lo pruebo.. xD
2.. pk lo joden todo?? me es bien cómodo así, pues yo declaro todas las variables al inicio del juego, en una room aparte y luego cambio a la siguiente room, así bien ordenadito :3
3.. !hambriento... si, bueno... cierto que es más cómodo pero.. 1-Viene a ser lo mismo xD 2-... pfff la costumbre xD a ver si me acostumbro como tú dices, me gustaría hacerme más  fácil la vida, eso siempre xD, por eso trato de acostumbrarme a bucles y arrays ahora, ya va siendo hora xD
4.. ya sé perfectamente que es lo mismo xDDD, pero yo prefiero <=  ya sabes, cada uno sus manias y la mia y quiero ver un 23 bien bonito, no me cae bien el 24, me liaría en un futuro, bueno yo me entiendo xDD

bueno probando... aunque con lo que me has dicho, viene a ser... ningún cambio xD
bueno, en la parte del while, he cambiado 23 por 22, no sea que ahi salte a 24 que ya no existe.. y ya no me sale el error... pero... no entiendo pk, siempre sale la numero 22 y se le asigna siempre el nombre de "GEBO" en el switch... aunque ponga cualquier id anterior a ella en true, o todas... en el caso de estar todas, debería parar de analizar el while en el mismo 0 no????
1272
hmmm... puse <=23 y me sigue saliendo el mismo error

___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Draw Event
for object ogui:

Push :: Execution Error - Variable Index [0,23] out of range [1,23] - -5.buffact(100027,23)
at gml_Object_ogui_DrawEvent_1 (line 34) - while (global.buffact[rune] == false and rune < 23)
############################################################################################
1273
Como nunca uso bucles ni arrays, pos los uso mal y ya juntándolos ni te digo xDDD

a ver.. primero creo una array de 23 al inicio del juego
for (i=0;i<23;i++)
{
    global.buffact[i] = false;
}

así se hace?? xD

entonces... en el evento draw (me es más cómodo ahora que el step)
rune = 0;
while (global.buffact[rune] == false and rune < 23)
{
    rune++;
};
switch rune
{
    case 0:
        runename = "FEHU";
        break;
    case 1:
        runename = "WUNJO";
        break;
    case 2:
        runename = "TEIWAZ";
        break;
    case 3:
        runename = "URUZ";
        break;
    case 4:
        runename = "THURISAZ";
        break;
    case 5:
        runename = "KENAZ";
        break;
    case 6:
        runename = "BERKANA";
        break;
    case 7:
        runename = "MANNAZ";
        break;
    case 8:
        runename = "ANSUZ";
        break;
    case 9:
        runename = "ISA";
        break;
    case 10:
        runename = "JERA";
        break;
    case 11:
        runename = "INGUZ";
        break;
    case 12:
        runename = "DAGAZ";
        break;
    case 13:
        runename = "ALGIZ";
        break;
    case 14:
        runename = "PERTHRO";
        break;
    case 15:
        runename = "LAGUZ";
        break;
    case 16:
        runename = "RAIDO";
        break;
    case 17:
        runename = "NAUTHIZ";
        break;
    case 18:
        runename = "HAGALAZ";
        break;
    case 19:
        runename = "SOWULO";
        break;
    case 20:
        runename = "EIHWAZ";
        break;
    case 21:
        runename = "EHWAZ";
        break;
    case 22:
        runename = "GEBO";
        break;
    case 23:
        runename = "OTHILA";
        break;
}


draw_set_colour(choose(c_green));
draw_text(8,8+(8*7),"RUNE: "+string(runename));

//ENEMY AND BOSS
////////////////

if room == rplay
or (!instance_exists(oen) and !instance_exists(oboss))
    exit;
if room == renemy
{
    draw_set_halign(fa_right);
    //VIT
    draw_set_colour(c_ltgray);
    if envit > 0
        draw_text(room_width-8,8+(8*1),"HP: "+string(ceil((envit*10)))+"/"+string(ceil(oen.enhpnow*10)));
    else
        draw_text(room_width-8,8+(8*1),"HP: 0/"+string(round(enhpnow*10)));
    //ATK
    draw_text(room_width-8,8+(8*2),"ATK: "+string(ceil(enatk)));
    //DEF
    draw_text(room_width-8,8+(8*3),"DEF: "+string(ceil(endef)));
    //DEX
    draw_text(room_width-8,8+(8*4),"DEX: "+string(ceil(endex)));
    //HP
    draw_text(room_width-8,8+(8*5),"HP: "+string(enhp));
}

Pero pum, me sale el error de array out of range!

Lo que trato de hacer es que analice la array numero por numero hasta toparse con un true y en cuanto encuentra un true, deja la variable rune en el numero que está, y así poder asignar el nombre que le pertoca a la variable runename.

PD: aunque al principio haya puesto todos en false, al ejecutarse ese código sí hay alguna en true, de echo están todas para el testeo, ya lo cambiaré :P en el momento del juego real sin testeo podrá haber UNA SOLA activada (true) o NINGUNA (false), en el caso de ninguna, el runename = "NOTHING";

a ver quien me instruye un poco con esto, he pasado todos estos años rodeado de ifs, podría hacer esto con millones de ifs, pero es lo que quiero evitar, hay que evolucionar xD
1274
no entiendo este post :S tú mismo has dicho cómo se hace O.o
1275
no es async_event, es async_load