none
Dar una coordenada de las ya establecidas de manera random a un picurebox RRS feed

  • Pregunta

  • Soy nuevo aquí y en la programación, esta sera mi primera pregunta, en fin mi duda es que como podría hacer que un picturebox aparezca de manera aleatoria al iniciar el formulario yo tengo un código pero aparece donde sea, lo que yo necesito es digamos hacer una lista y establecer coordenadas y después tomar una de esas de manera aleatoria es para un juego donde habrá monedas y las tienes que recoger pero como lo mencione arriba lo que pasa es que me las genera por todos lados y las personaje no las puede tomar... Espero me hayan entendido :))) espero su ayuda :) y otra cosa yo se que ya estoy pidiendo mucho pero si se podría algo que evite que 2 monedas se junten
    miércoles, 2 de noviembre de 2016 13:54

Respuestas

  • hola

    >>lo que yo necesito es digamos hacer una lista

    pero de donde sale esa lista? si es algo en memoria podrias crear un List<> de Point

    List<Point> listPoints = new List<Point>() {
    
       new Point(10, 10),
    
        new Point(20, 20),
    
       //resto
    
    };

    >>después tomar una de esas de manera aleatoria es para un juego

    en este caso usarias el Random

    var rnd = new Random();
    
    int pos = rnd.Next(0, listPoints.Count);
    
    Point p = listPoints[pos];

    tomas la posicion de forma aleatoria de la lista

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de noviembre de 2016 14:52

Todas las respuestas

  • hola

    >>lo que yo necesito es digamos hacer una lista

    pero de donde sale esa lista? si es algo en memoria podrias crear un List<> de Point

    List<Point> listPoints = new List<Point>() {
    
       new Point(10, 10),
    
        new Point(20, 20),
    
       //resto
    
    };

    >>después tomar una de esas de manera aleatoria es para un juego

    en este caso usarias el Random

    var rnd = new Random();
    
    int pos = rnd.Next(0, listPoints.Count);
    
    Point p = listPoints[pos];

    tomas la posicion de forma aleatoria de la lista

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de noviembre de 2016 14:52
  • Y donde agrego el picturebox? Osea para que digamos el pictureBox1 tome la coordenada
    miércoles, 2 de noviembre de 2016 18:06
  • >>donde agrego el picturebox?

    depende, si es un control picturebox que ya existe en el form puedes cambiarle el Location

    sino vas a tener que crear una instancia y agregarla a la coleccion Controls del form

    //resto codigo
    Point p = listPoints[pos];
    
    
    Picturebox pic = new PictureBox();
    pic.Location = p
    
    this.Controls.Add(pic);


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de noviembre de 2016 18:31
  • Ya pude pero como son varias monedas, todas se van al mismo lugar y después hice un código para cada moneda pero también unas aparecen en el mismo lugar 
    Otra cosa, en el código que puso al final crea un picturebox y lo que yo quiero es mover uno que ya existe en pantalla lo que puse fue 

    Moneda1.Location = p;

    miércoles, 2 de noviembre de 2016 18:45
  • List <Point> Localizaciones = new List<Point>

    {

    New Point (10,10),

    New Point (10,20),

    New Point (10,30)

    };

    var rnd = new Random();
    
    int pos = rnd.Next(0, listPoints.Count);
    
    Point p = Localizaciones[pos];

    Moneda1.Location = p;

    var rnd2 = new Random();
    
    int pos2 =rnd2.Next(0, listPoints.Count);
    
    Point p2 = Localizaciones[pos2];

    Moneda2.Location = p2;

    Pero el problema es que a veces aparecen en la misma coordenada ayuda en eso por favor :)


    miércoles, 2 de noviembre de 2016 19:49