User Tag List

Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 20

Tema: "No entender"

  1. #1

    Fecha de ingreso
    Sep 2011
    Mensajes
    73
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts

    "No entender"

    No logro hacer que mi enemigo camine en forma aleatoria, este codigo está bien? me sale error al compilar..


    PROCESS enemigo1()
    BEGIN
    x=100;
    y=100;
    z=10;
    graph=600;


    LOOP
    x = x + rand(-7,7);
    y = y + rand(-7,7);


    FRAME;
    END
    END
    Última edición por vassink; 04/11/2011 a las 05:45

  2. #2

    Fecha de ingreso
    Mar 2006
    Ubicación
    0o0`-_-´0o0
    Mensajes
    22,256
    Mencionado
    45 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5,496
    Agradecer Thanks Received 
    495
    Thanked in
    Agradecido 336 veces en [ARG:2 UNDEFINED] posts
    Empieza por quitar esa hache y luego ya vas depurando cosas menos graves.

    The eagle never lost so much time as when he submitted to learn of the crow.

  3. #3

    Fecha de ingreso
    Sep 2011
    Mensajes
    73
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Rivroner Ver mensaje
    Empieza por quitar esa hache y luego ya vas depurando cosas menos graves.
    Ahora si... cuál es mi error en el código?

  4. #4

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    te falta la semilla

  5. #5

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,337
    Mencionado
    92 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    366
    Agradecer Thanks Received 
    1,791
    Thanked in
    Agradecido 944 veces en [ARG:2 UNDEFINED] posts
    Simplemente por tratar de ayudar, porque nunca programé en Bennu:

    - Ni si quiera nos has dicho con qué lenguaje programas. ¿Fenix? ¿Bennu?
    - Tampoco nos has dicho qué error da al compilar. No somos telépatas.
    - Si programas con bennu... ¿has importado la mod_rand al inicio del código?
    - ¿rand() admite números negativos? Seguramente sí, pero es por estar seguros

    Al contrario de lo que opina GameMaster, no creo que olvidar la semilla sea la causa de un error al compilar.
    Última edición por juanvvc; 04/11/2011 a las 11:12

  6. #6

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    1 - por suerte su codigo funciona tanto en bennu como fenix.

    2 - bueno no me habia fijado que le daba error al compilar, en este caso posiblemente le falte importar la 'mod_rand'

    3 - rand admite numeros negativos, y la semilla es necesaria porque dependiendo del procesador, en este caso como es una wiz/caanoo, la primera ejecución le daria siempre el mismo valor si no pone la semilla.

  7. #7

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,337
    Mencionado
    92 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    366
    Agradecer Thanks Received 
    1,791
    Thanked in
    Agradecido 944 veces en [ARG:2 UNDEFINED] posts
    1 - La diferencia entre fenix y bennu es que si en fenix el código que ha puesto probablemente funcione "as is", en bennu hay que importar la mod_rand o tendrá un error al compilar, que es de lo que hablamos. Si programa en Fenix entonces no es este el error y hay que buscar otras cosas.

    2 - pues eso. Seguimos hablando de que tu mensaje de hace un rato despista porque no va en la dirección adecuada, y olvidarse el seed() nunca dará un error, ni en compilación ni en ejecución ni en nada.

    3 - todos sabemos lo que es una semilla En DIV recuerdo que si no se ponía explícitamente, la semilla era siempre la misma (creo que 0) Así que la secuencia de números "aleatorios" era siempre la misma. Era un comportamiento deseado en DIV y Daniel Navarro lo justificó en su día, pero no sé si en Fenix/Bennu sigue siendo así. En cualquier caso, no poner una semilla no da un error en compilación ni en ejecución, así que sea como sea, es imposible que fuese ése el problema.

    A lo mejor querías volver loco al pobre vassink, no lo sé
    Última edición por juanvvc; 04/11/2011 a las 11:59

  8. #8

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    A ver, no es el caso, pero imaginate que queria poner una imagen random en un menu de 4 posibles, si no pone la semilla, en wiz le saldria siempre la misma, el vendria, y te diria que tenia un error, no de compilación pero en ejecución, te diria que pone rand y que le sale siempre la misma imagen....

    Con lo cual hablar de errores tambien es relativo, le puedes llamar error a algo que realmente no es un error...

  9. #9
    futublog Guest
    lo de la semilla es verdad, si no la pone el 90% (por no decir 99%) empezará con el mismo numero, e incluso al repetir repetirá con el mismo y asi segruirá una combinacion random muy repetida a la anterior...


    en cuanto al codigo, como pones dentro del loop rand(-7,7); cada vez que pinte la imagen la pintará de -7 a 7 desplazada...
    esto supone que el enemigo se pondrá a temblar como un loco segun los frameskip que tengas

    mi consejo, en una variable llamada ''tal'' y le haces un random antes del loop, ya dentro del loop haces un x = x + tal; y/o y = y + cual; y lo que te hace es que al crear el proceso se mueve a una determinada velocidad pero constante; si eso es lo que buscas.
    Si lo que buscas es temblor lo has conseguido

  10. #10

    Fecha de ingreso
    Sep 2011
    Mensajes
    73
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Bueno tienen razón la verdad no expliqué bien. Estoy usando bennu, y como nunca antes había programado, estoy leyendo el manual mas básico (Curso de Trinit). He ido paso a paso, pero al llegar al tema de los numeros aleatorios me he quedado pegado, segun yo, el código estaba bien,
    Incluso despues de escribirlo varias veces, copié el código directo desde el videojuego que trae de muestra.. tampoco pasó nada.

    Esto me sale...



    supongo que hay algo que el manual no dice, y que yo debería saber.
    Por ejemplo, ¿qué es una semilla? en el manual no lo dice, y si es necesario para que funcione el codigo, pues entonces habría que corregir el manual.

    Reitero que es mi primer acercamiento a un lenguaje de programación, espero me tengan paciencia.

  11. #11
    futublog Guest
    vale, eso solo quiere decir que has puesto en la linea 135 un rand sin tener el punto y coma al final o en el renglon anterior, solo eso

    o igual le falta los datos de los parentesis, solo error de sintaxis

  12. #12

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,337
    Mencionado
    92 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    366
    Agradecer Thanks Received 
    1,791
    Thanked in
    Agradecido 944 veces en [ARG:2 UNDEFINED] posts
    Dice que no encuentra la función rand().

    En bennu algunas colecciones de funciones especiales y "poco usadas" tienes que importarlas antes de poder usarlas. Eso se hace con una línea al principio del programa:

    Código:
    import "mod_rand";
    Hay muchos más módulos con muchas funciones especiales. Mira aquí: http://wiki.bennugd.org/index.php?title=Modules

    La "semilla" es literalmente eso. El ordenador es una máquina y como todas las máquinas hace siempre cálculos exactos. "Obtener un número aleatorio" en principio va en contra de lo que hacen las máquinas, porque no saben hacer cosas "aleatorias". Para ayudarle, le das un número aleatorio y a partir de ahí la máquina te saca los demás. Ese número aleatorio inicial se llama "semilla" ("seed" en inglés) Si siempre le das la misma semilla, el ordenador siempre te dará la misma secuencia de números aleatorios.

    En Bennu puedes poner una semilla con el comando rand_seed(): http://wiki.bennugd.org/index.php?title=Rand_seed Como normalmente querrás números realmente aleatorios y que no se repitan cada vez que ejecutas el programa, una semilla muy usada y bastante aleatoria es el reloj del sistema. Para ello, añade una línea así al principio de tu programa (por ejemplo, después de cargar los gráficos):

    Código:
    rand_seed(timer());
    Y así te aseguras de que los números aleatorios cambian cada vez que ejecutas el programa. Si quieres tener números aleatorios, pero siempre los mismos, usa esta línea con una semilla fija (puede ser el número que tú quieras):


    Código:
    rand_seed(16533);
    Última edición por juanvvc; 04/11/2011 a las 21:55

  13. #13

    Fecha de ingreso
    Sep 2011
    Mensajes
    73
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Muchas gracias, al parecer era lo que decía juanvvc , ahora el personaje se mueve , sin embargo me sale el mensaje ABSOLUTELY NO WARRANTY; al compilar.

    Además, ¿por qué en el videojuego que viene de ejemplo del tema 10 no incluyen el comando
    import "mod_rand"; y aún así funciona?

  14. #14
    futublog Guest
    no warranty es lo que trae el software libre, imaginate que se te jode el pc y se lo reclamas al creador del software te lo paga...

    un mundo perfecto

    <->

    en el videojuego del tema 10 vendrá, lo mas seguro, un import dll donde estará importado el modo rand

  15. #15

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,337
    Mencionado
    92 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    366
    Agradecer Thanks Received 
    1,791
    Thanked in
    Agradecido 944 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por vassink Ver mensaje
    Además, ¿por qué en el videojuego que viene de ejemplo del tema 10 no incluyen el comando
    import "mod_rand"; y aún así funciona?
    Sí que lo incluye

    Mira la segunda línea del videojuego del tema 10:

    Código:
    INCLUDE "DLL\import.prg";           		//Incluye las DLL necesarias para que todo funcione
    (el comando "include" incluye un archivo en el código como si estuviese ahí puesto entero. Es muy útil para organizar códigos muy largos en varios archivos y no volverte loco. En este ejemplo concreto el código que incluye es tan corto que probablemente hubiese sido mejor no usarlo para no confundir a la gente)

    Y el contenido del archivo "DLL\import.prg" es este:

    Código:
    import "mod_video";
    import "mod_proc";
    import "mod_map";
    import "mod_key";
    import "mod_rand";
    import "mod_grproc";
    Como ves, no solo importa la mod_rand, además importa muchas otras funciones adicionales.
    Última edición por juanvvc; 06/11/2011 a las 14:59

Página 1 de 2 12 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •