User Tag List

Resultados 1 al 5 de 5

Tema: Ayuda para comprender codigo de ejemplo

  1. #1

    Fecha de ingreso
    Sep 2004
    Ubicación
    Santa Cruz de TENERIFE
    Mensajes
    1,845
    Mencionado
    9 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    91
    Agradecer Thanks Received 
    45
    Thanked in
    Agradecido 37 veces en [ARG:2 UNDEFINED] posts

    Question Ayuda para comprender codigo de ejemplo

    Hola, podriais ayudarme a entender este ejemplo de puntos de control?
    Es q no logro entender las funciones fget....los OFFSET...get_point(dos veces)...

    Program puntos_de_control;
    Global
    punto=1;
    x_punto;
    y_punto;
    Begin
    write(0,70,180,1,"Pulsa Esc para Salir");
    load_fpg("circuito.fpg");
    put_screen(0, 1);
    graph=2;
    Loop
    If(key(_esc )) exit("",0);End

    If (fget_dist(x, y, x_punto, y_punto)<6)//xq menor q 6??
    If (punto++==40) punto=1; End // suma unidad al avance y al llegar al punto 40 vuelve al origen q es el 1
    End
    // Cogemos el punto de control del circuito
    get_point(0,1,punto, OFFSET x_punto, OFFSET y_punto);
    angle=fget_angle(x, y, x_punto, y_punto);//esto es
    //solo para girar el grafico hacia donde vaya la ruta de puntos

    advance(6);??????para q se usa advance aqui?
    Frame;
    // Coge la posici¢n de salida de un punto de control
    //o eso dicen xq no se para q usa esta funcion aki
    get_point(0,1,punto,&x,&y);

    End
    End


    Lo q esta en azul es lo comprensible...lo demas lo q necesito entender....
    En rojo las dudas principales y comentarios propios
    gracias y 1saludo

  2. #2

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,614
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    189
    Agradecer Thanks Received 
    2,616
    Thanked in
    Agradecido 1,629 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Lenguaje fenix:
    If (fget_dist(x, y, x_punto, y_punto)<6)
    If (punto++==40) punto=1; End
    End

    En cristiano:

    Si la distancia entre punto en el que estoy y el punto al que quiero llegar es menor que 6 (al programador le parecio una distancia suficientemente pequeña como para decir que ha llegado) entonces es que estoy lo bastante cerca por lo que debu buscar el punto sigiente; a no ser que sea el punto nº40; en este caso volveré a dirigirme al punto 1.

    En fenix
    get_point(0,1,punto, OFFSET x_punto, OFFSET y_punto);
    angle=fget_angle(x, y, x_punto, y_punto);

    En cristiano:

    Buscame las coordenadas del punto que estoy buscando que esta en el mapa nº 1 del fichero nº 0 y me las das en la variables x_punto e y_punto.
    Luego haces que apunte en un angulo igual al que hay entre mis coordenadas y las que acabo de calcular

    En fenix
    Advance(6);

    En cristiano:

    Avanzo 6 puntos en el angulo que conseguí antes (6 es una buena velocidad además arriba se puso que si la distancia es menor que 6, oséa, menos de lo que avanzo por fotograma, lo tome como que he llegado).

    La funcion despues del frame no la pillo... :P te la miro mañana con mas tiempo.

  3. #3

    Fecha de ingreso
    Sep 2004
    Ubicación
    Santa Cruz de TENERIFE
    Mensajes
    1,845
    Mencionado
    9 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    91
    Agradecer Thanks Received 
    45
    Thanked in
    Agradecido 37 veces en [ARG:2 UNDEFINED] posts
    Y q tendria q variar para q al pulsar un boton avance mas rapido o mas despacio el proceso? xq solo consigo q el proceso este parado y se mueva al pulsar _B. Pero el 6 de advance aunq lo cambio no se ve cambio en la velocidad del movimiento......
    1saludo y gracias

  4. #4

    Fecha de ingreso
    Sep 2004
    Ubicación
    Santa Cruz de TENERIFE
    Mensajes
    1,845
    Mencionado
    9 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    91
    Agradecer Thanks Received 
    45
    Thanked in
    Agradecido 37 veces en [ARG:2 UNDEFINED] posts
    Chipan, el advance(6) aunq lo varie, no cambia la velocidad del objeto....como podria hacer para q vaya mas rapido o lento?
    Si fuera en ese advance, seria muy facil....
    if(key(_B)) vel++;
    advance(vel);
    if(vel>10) vel=10;
    End
    End

    etc....

    Pero es q ya digo q no influye la variable en advance....al menos en este caso, xq en otro ejemplo q hice sin ruta, en el q movia a mi personaje, con advance evidentemente movia el prota y segun la variable se movia mas o menos....pero aqui....

    1saludo

  5. #5

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,614
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    189
    Agradecer Thanks Received 
    2,616
    Thanked in
    Agradecido 1,629 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Debe ser cosa de la ultima linea que hay despues del frame; que sigo sin ver para que sirve... Pero ten por seguro que el parametro que se le pasa a advance son el numero de unidades que debe avanzar.

Permisos de publicación

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