Ajudem o noob no C#...é basico para voçês!!!

syter

Membro
Pronto a minha duvida é a seguinte.....tenho um professor muito bom (ou pelo menos ele acha-se), e começou a materia de programação orientada a objectos da seguinte forma:

1-Fazer basicamente uma class que deriva das picturebox
2-Fazer com que a class se mova sozinha no nosso form
3-Não pode sair dos limites da form

Eu tenho algumas noções de como fazer isto....mas sem ajuda alguma sobre sintaxe por parte do professor ta difícil....
Consigo criar a class, agora fazer com que ela se mova sozinha é que está difícil.....Sou capaz de o fazer com MouseHover e MouseLeave, mas garantir que fique dentro da form também é um problema....

Alguém pode ajudar????

Please é urgente!!!!!
 
Boas, podes usar um Timer para animar a PictureBox. Em relação aos limites, basta comparares a posição da PictureBox (properties Left e Top) com os bounds do Form.
 
o maior problema que podes ter é quando o "picturebox" por exemplos bater nas paredes, tens que calcular a rota que ira tomar novamente. de resto é um timer a mover a imagem.
 
desculpa la......e código????

Vou resistir à tentação de te responder.

o maior problema que podes ter é quando o "picturebox" por exemplos bater nas paredes, tens que calcular a rota que ira tomar novamente. de resto é um timer a mover a imagem.

Isso não é um grande problema. Basta mudar o sinal dos componentes da velocidade (x para colisões com targets verticais (=> |), y para horizontais (__)).
 
Última edição:
ok...sorry

não sei se fui bem entendido mas eu não estava a espera que me fizessem código....mas sim só queria uns exemplos....eu tenho aqui algo que fiz....funciona.....digam-me o que acham....Obrigado

public class bolinhas : PictureBox
{
public bolinhas()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.Image = global::bolas.Properties.Resources.f1;
this.SizeMode = PictureBoxSizeMode.StretchImage;
this.Size = new Size(55, 55);
}

private Timer intTimer = new Timer();
public void movimento()
{
intTimer.Interval = 10;
intTimer.Tick += new EventHandler(intTimer_Tick);
intTimer.Start();
}

private int x = 1;
private int y = 1;

void intTimer_Tick(object sender, EventArgs e)
{

if (this.Location.X + this.Width >= this.Parent.Width - 15)
{
x = -x;
}

if (this.Location.X < 0)
{
x = -x;
}
if (this.Location.Y + this.Height >= this.Parent.Height - 37)
{
y = -y;
}

if (this.Location.Y < 0)
{
y = -y;
}



this.Location = new Point(this.Location.X + x, this.Location.Y + y);
}


}
 
Back
Topo