private void ruchBloczka(int xy, int d) { if (hak.idBloczka != -1) { Bloczek bloczek = bloki[hak.idBloczka]; if (d == 1) { bloczek.x += xy; int kolizja = kolizjeBlokBlok(bloczek); if (kolizja != -1) { bloczek.x -= xy; hak.x -= xy; } } else { bloczek.y += xy; int kolizja = kolizjeBlokBlok(bloczek); if (kolizja != -1) { bloczek.y -= xy; hak.y -= xy; } if (bloczekRozmiar + bloczek.y > panel1.Height) { bloczek.y = panel1.Height - bloczekRozmiar; hak.y -= xy; } } bloki[hak.idBloczka] = bloczek; } }
private int kolizjeBlokBlok(Bloczek bloczek) { label2.Text = " "; for (int i = 0; i < bloki.Count; i++) { if (hak.idBloczka == i) { i++; } if (i != bloki.Count && bloczek.x + bloczekRozmiar > bloki[i].x && bloczek.x <bloki[i].x + bloczekRozmiar && bloczek.y + bloczekRozmiar> bloki[i].y && bloczek.y < bloki[i].y + bloczekRozmiar) { return(i); } } return(-1); }
public Form1() { InitializeComponent(); hak.x = 72; hak.y = 210; hak.idBloczka = -1; hak.maxWaga = 30; label1.Text = "Maksymalna waga: " + hak.maxWaga.ToString(); int[] wagi = { 10, 50, 20, 30, 100, 15, 40, 40, 10 }; for (int i = 0; i < 9; i++) { Bloczek bloczek = new Bloczek(); bloczek.x = 70 + i * bloczekRozmiar + i * 10; bloczek.y = panel1.Height - bloczekRozmiar; bloczek.waga = wagi[i]; bloki.Add(bloczek); } panel1.Refresh(); }
private void button5_Click(object sender, EventArgs e) { if (button5.Text == "Chwyc") { hak.idBloczka = kolizjeHakBlok(); if (hak.idBloczka != -1) { if (bloki[hak.idBloczka].waga > hak.maxWaga) { label2.Text = "Ten bloczek jest za ciezki. (" + bloki[hak.idBloczka].waga.ToString() + ") Sprobuj inny bloczek."; hak.idBloczka = -1; } else { button5.Text = "Odloz"; } } } else { int dol = spadanieBloczka(); if (dol != -1) { Bloczek bloczek = bloki[hak.idBloczka]; bloczek.y = spadanieBloczka() - bloczekRozmiar; bloki[hak.idBloczka] = bloczek; hak.idBloczka = -1; button5.Text = "Chwyc"; } else { Bloczek bloczek = bloki[hak.idBloczka]; bloczek.y = panel1.Height - bloczekRozmiar; bloki[hak.idBloczka] = bloczek; hak.idBloczka = -1; button5.Text = "Chwyc"; } } panel1.Refresh(); }