Aprendiendo y debatiendo sobre bgt

623 Nachrichten, 21 Seiten:  1; 10 1112 13 14; 21 ↖ Zurück zur Themenliste

~msgScore~: +4

331. sol-dorado,

Colega, la única manera que conozco es leyendo la documentación de la dll que necesitas usar, luego vienen las funciones ddl de bgt en lo que dalison puede aportar mucho más que yo ya que nunca trabajé con ddls y solo
he visto el ejemplo de la bass.dll de EVM.

~msgScore~: +0

332. CoachJos,

Hola a todos, aprendí bgt hace un par de años y tengo un par de proyectos solo para depurar y ajustar algunos sonidos, sin embargo los dejé de trabajar porque me ocupé en otras cosas.
Tengo una pregunta saben como hacer para decir mensajes con voces distintas, por ejemplo si quiero que el usuario escuche el mensaje Hola, ¿cómo estás?
pero Hola sea con una voz femenína y ¿cómo estás?con una voz másculina.
Si se puede hacer desde código diciendo con que voz se va a pronunciar, o hacer unas opciones donde el usuario elija voces según personajes.
Haber si logré explicarme.
De antemano gracias a quien pueda responderme.

~msgScore~: +0

333. Morat ,

pero qué quieres hacer? con sapi? sam había hecho un menú donde podía controlar sapi, mira que pasa y si lo puedes descargar. Aprende ese código y mira en las voces predeterminadas del usuario. Es que el problema es que muchos tendrán windows7 y te llenará el código de ifs según qué windows utilice el que juega.

~msgScore~: +0

334. CoachJos,

Es un juego de boxeo, donde el o la presentadora usará una voz, el arvitro una voz diferente, y el entrenador otra, es más por la novedad de hacerlo pero no sé si es posible.
De donde descargo ese código que me comentas.
Aaaah y muchas gracias por tu respuesta.

~msgScore~: +0

335. sol-dorado,

No hay código específico, tienes que escribir código y grabar voces reales. Debes formularte primero que tipo de mensajes quieres transmitir según que momento de las batallas, y luego grabar todo lo que haga falta

~msgScore~: +0

336. Harry_Potter,

Como poder se puede, jugando con los parámetros de tts_voice y demás para lograr eso. El problema es que quizás muchos no tengan tantas voces o esas voces específicas, por lo que se complicaría el asunto.
Yo te recomiendo gravar distintas voces en archivos .ogg y/o .wav para aorrarte tiempo y problemas, que es mucho más fácil, rápido y no trae tanto lío.

~msgScore~: +0

337. Morat ,

si, preferiblemente grabar esas voces en archivos de audio separados. Cuesta lo suyo de trabajo y al final te llenarás el código de condicionales si no haces clases para los árbitros, el entrenador y demás, pero se puede. Preferiblemente haz clases o tendrás el main y el game llenito de ifs y... no, así no se programa.

~msgScore~: +0

338. CoachJos,

Bueno gracias, si lo de grabar voces fue mi primera opción pero no te deja tanta livertad en el tipo de mensajes que quieres enviar al usuario, también podría modificar parámetros de tono y velocidad para tener voces distintas XD aunque no sé que tan apreciable sería eso.

~msgScore~: +0

339. Morat ,

no es muy apreciable, no con bgt. Si bien controla el audio no es un editor de audio ni una DAW, así que mejor no lo hagas. Pero lo que sí puedes hacer es grabar no sé, 5, 10 audios con el parámetro que quieras decir, y tras hacer un condicional meter un random.

~msgScore~: +0

340. sol-dorado,

Pero nadie asegura que las personas tengas las voces instaladas, resulta un poco mejor grabarlas, además que se le da un toque de realismo. Modificar el tono, eso funciona,
y tu única alternativa en ese caso es solicitar al jugador que tenga ciertas cosas instaladas para poder jugar.

~msgScore~: +0

341. alex_el_pato ,

hola chicos, hice en español el manual Game Programming in Practice Part I. trataré de seguir con el segundo. hasta poder completar esas páginas. luego aré el de lenguaje tutorial. si quieren, cuando lo termine se los paso con mucho gusto,a esas personas interesadas que le gustaría aprender bgt, y no entienden un pomo de inglés. saludos.

~msgScore~: +0

342. El-principe-de-Lupita ,

yo quisiera el codigo d fd

~msgScore~: +0

343. Morat ,

mejor usa el coso nuevo de EVM cuando termine de ser codificado, vas a tener mejores resultados.

~msgScore~: +0

344. El-principe-de-Lupita ,

siendo oonesto, me gustaría mas probar con el código de fd. alguien lo tendrá por allí?

~msgScore~: +0

345. BOFH ,

¿Sabes que fd y EVM es exactamente lo mismo?

~msgScore~: +0

346. alex_el_pato ,

seguramente sabe, pero cuesta hacer entender a las personas que no tienen muy en claro que un clon se basa en el código fuente de otro juego. al igual que mapas, o otras cosas. Si, el mapa puede ser reutilizado, claro, pero no por ello va a dejar de ser un mapa muy conocido en otro juego. saludos.

~msgScore~: +0

347. BOFH ,

De hecho estoy comparando versiones y no tienen nada modificado. Salvo que EVM está indentado y semi-documentado.

~msgScore~: +0

348. alex_el_pato ,

jaja. una pregunta BOFH, no me podrías dar una mano con esto de bgt, estoy tratando de hacer un scrip de un juego muy sencillo, pero aún así, a mi no me sale. sigo el manual de bgt, y no logro ver donde tengo el error. te molestaría darme una mano? gracias

~msgScore~: +0

349. BOFH ,

Pasa código?

~msgScore~: +0

350. alex_el_pato ,

se lo pasé a dali, el me lo pasó correjido, pero, al poner el link que lo contenía en google, lo que estaba en inglés ahora está en español. es mucho trabajo y no recuerdo mucho como era. si quieres, aquí debajo lo dejo igual para que lo chequees.

include "dynamic_menu.bgt"

// Objetos sonoros.
música sonora;
sonido error_sonido;
sonido [] tono (5); // Los cuatro tonos utilizados para las secuencias.

void main()
{
// Carga los cuatro tonos.
tone [1] .load ("uno.ogg");
tone [1] .volumen = -10;
tone [2] .load ("dos.ogg");
tone [2] .volumen = -10;
tone [3] .load ("tres.ogg");
tone [3] .volumen = -10;
tone [4] .load ("cuatro.ogg");
tone [4] .volumen = -10;

// Carga el sonido de error.
error_sound.load ("error.wav");
error_sound.volume = -10;

// Carga la música.
music.load ("music.wav");
volumen de música = -10;

// Configurar voz.
tts_voice voice;

// Menú de configuración.
menú dinámico_menú;
menu.allow_escape = true;
menu.wrap = true;
menu.add_item_tts ("Iniciar juego");
menu.add_item_tts ("Práctica del teclado");
menu.add_item_tts ("Salir del juego");

// Muestra la ventana del juego y pronuncia un mensaje de bienvenida.
show_game_window ("Tren de memoria");
voice.speak_wait ("¡Bienvenido a Memory Train!");

// Reproduce la música en segundo plano antes de ejecutar el menú.
music.play_looped ();

int elección; // Esto almacena las selecciones de menú del usuario.

hacer
{
choice = menu.run ("Elija un elemento del menú con las teclas de flecha, luego presione enter para activarlo.", verdadero);
si (opción == 1)
{
music.stop ();
play_round (); // Definiremos esta función más tarde.
music.play_looped ();
}
si no (opción == 2)
{
music.stop ();
keyboard_practice (); // Definiremos esta función más tarde.
music.play_looped ();
}
}
while (opción! = 0 y opción! = 3);

// El usuario presionó escape o eligió salir.
voice.speak_wait ("Gracias por jugar");
}

void play_round ()
{
// Inicializa el estado del juego.
bool game_over = false; // El juego continuará mientras sea falso.
secuencia int []; // La secuencia de ejecución.
int secuencia_length = 0;
flotante time_between_tones = 500; // La velocidad inicial a la que se reproducen los tonos, en milisegundos.
flotante time_between_inputs = 2000; // Tiempo máximo para ingresar la siguiente clave antes de que el jugador sea rebotado.
hacer
{
// Agrega otro tono a la secuencia.
longitud_secuencia ++;
secuencia.resize (secuencia_length);
secuencia [secuencia_length-1] = aleatorio (0,3);
// Reproduce la secuencia de principio a fin.
output_sequence (@sequence, time_between_tones);
// Permítales repetirlo si pueden.
game_over = input_sequence (@sequence, time_between_inputs);
// Cada vez que se dominan otros cinco tonos:
// aumenta la velocidad muy ligeramente.
if ((secuencia_longitud% 5) == 0)
{
time_between_tones = time_between_tones * 0.9;
// Asegúrese de que no caiga por debajo de 150.
if (time_between_tones <150)
{
time_between_tones = 150;
}
}
}
while (! game_over);
int score = secuencia_length-1; // menos 1 porque fallaron en el último.
tts_voice voice;
voice.speak_wait ("Tu puntaje final fue" + puntaje);
}

void keyboard_practice ()
{
tts_voice voice;
voice.speak_wait ("Presione las teclas de flecha para averiguar qué tecla genera qué tono");
voice.speak_wait ("Presiona escape para dejar de practicar");
while (! key_pressed (KEY_ESCAPE))
{
if (clave_presionada (KEY_LEFT))
{
tono [0] .play ();
}
de lo contrario if (key_pressed (KEY_DOWN))
{
tono [1] .play ();
}
de lo contrario if (key_pressed (KEY_RIGHT))
{
tono [2] .play ();
}
de lo contrario if (key_pressed (KEY_UP))
{
tono [3] .play ();
}
espera (5);
}
}

bool input_sequence (int [] @sequence, float time_between_inputs)
{
reloj temporizador;
para (uint i = 0; i <secuencia.length (); i ++)
{
// Haz lo siguiente para cada tono de la secuencia:
clock.restart ();
int input = -1; // Establecerlo en algo no válido.
while (clock.elapsed <time_between_inputs)
{
if (clave_presionada (KEY_LEFT))
{
entrada = 0;
}
de lo contrario if (key_pressed (KEY_DOWN))
{
entrada = 1;
}
de lo contrario if (key_pressed (KEY_RIGHT))
{
entrada = 2;
}
de lo contrario if (key_pressed (KEY_UP))
{
entrada = 3;
}
if (entrada> = 0)
{
rotura; // Deja de esperar porque algo fue escrito.
}
espera (5);
}
// El juego termina si se agotó el tiempo de espera o la clave es incorrecta.
if (entrada! = secuencia [i])
{
error_sound.play_wait ();
volver verdadero;
}
// Reproduce tonos exitosos como feedback
tono [entrada] .play ();
}
// El jugador logró reproducir toda la secuencia.
// Espera un segundo para dejarlos recuperar el aliento.
clock.restart ();
while (clock.elapsed <1000)
{
espera (5);
}
falso retorno;
}

secuencia_de_salida nula (int [] @ secuencia, flotante time_between_tones)
{
reloj temporizador;
int actual;
para (uint i = 0; i <secuencia.length (); i ++)
{
// Para cada tono menos el primero, espera antes de tocar.
si (i> 0)
{
clock.restart ();
while (clock.elapsed <time_between_tones)
{
espera (5);
}
}
actual = secuencia [i];
tono [actual] .play ();
}
// Finalmente, espera a que disminuya el último sonido.
while (tono [actual] .playing)
{
espera (5);
}
}

espero le encuentre la buelta por que no pude yo jaja. gracias

~msgScore~: +0

351. sol-dorado,

Es normal que esto falle. ya lo tengo y tube que corregir de entrada tres errores, también tiene variables nombradas con acentos, cosas como dinámico_menú.
Cuando descargues algo solo ponle al final del enlace del dropbox, donde dice dl=0, un 1 y tedescarga
directo sin intervención del sistema de traducción automática de google.

~msgScore~: +0

352. alex_el_pato ,

ya por pv te comenté que no traía dicho dl=0. el link terminaba en bgt, y no seguía más.

~msgScore~: +0

353. El-principe-de-Lupita ,

hola jente. probablemente fd y EVM es lo mismo, pero este código, (e v m), tiene un error que no he podido corregir.

~msgScore~: +0

354. trueno_blanco,

@el-principe-de-alia
resulta que tienes diferentes errores en ese código, casi al último tiene la palabra espera(5); bueno esa palabra no se usa, la que se usa es wait(5);
el otro error que alcancé a distinguir fue: que usaste reloj temporizador; o algo así, bueno la palabra correcta es timer reloj;
lo podría revisar con más detalle. solo dime si te respondieron sobre los errores que tenía el código. Hasta pronto!

~msgScore~: +0

355. El_Observador ,

@el-principe-de-alia al final del link agrégale esto:
?dl=1
Así tal cual, con el signo de cerrar interrogación primero.
También puedes usar otro navegador o desactivar la traducción automática para páginas en inglés de Chrome, que se ve que la activaste y por eso se ha puesto así el código, pues cuando es un txt a veces se muestra directamente en el navegador y pues Google Translate ahí hace lo suyo XD.

~msgScore~: +0

356. trueno_blanco,

Por cierto, yo ando traduciendo el manual de BGT, tengo el lenguaje del tutorial traducida y las 3 practicas. Las practicas las tengo que mejorar y seguir traduciendo lo demás.

~msgScore~: +0

357. Harry_Potter,

Si no nos dices cual es el supuesto error no podemos hacer nada.

~msgScore~: +0

358. alex_el_pato ,

repito, por que parece que mi mensaje se les pasó de largo. no, diiice, naaada, dee, dl=0, tan soolo, termina, een, bgt, y se coorta, ahíihi. okeeeey? repiiito, se lo pasé a daaali, el creo que lo arregló, al ponerlo en google, se tradujo, y así quedó.

~msgScore~: +0

359. Harry_Potter,

Creo que el que no capta eres tu. Te estamos diciendo que se lo añadas tu para evitar ese tipo de problemas con las variables, funciones y casi todo el código ese.

~msgScore~: +0

360. sol-dorado,

El problema es que ya no tiene el enlace, pero yo tengo el code. En realidad, el code original, tampoco funciona, hay algo ahí que da problema he interfiere con otra cosa.
@ElAmigoInformatico creo que se pierde de algo, y es que EVM ya no da errores, yo tengo ese code aquí, actualizado a la última, el error de includes ya no está más.

~msgScore~: +0

Zuletzt geändert von sol-dorado, Aug 8 2019 05:21:31

623 Nachrichten, 21 Seiten:  1; 10 1112 13 14; 21 ↖ Zurück zur Themenliste

Auf das Thema antworten

Sie müssen angemeldet sein, um posten zu können

Passwort vergessen? Benutzerkonto erstellen