20/12/09 11:31
haberdasherv
riguardo il giochino Breakout che sto realizzando vorrei modificare un pò la procedura che mi verifica le collisioni ma apparte questa che sto usando ora non ho altre idee su come potrei impostarla...
In pratica questa procedura io l'ho inserita in un timer che (in teoria) dovrebbe scattare ogni 10 millisecondi e mi verifica uno per uno se la pallina interseca uno dei 92 mattoncini. potete capire quanto questa operazione sia pesante per il computer ma non riesco proprio a pensare modi diversi per controllare l'avvenuta collisione...
vi posto anche il link al progetto inserito sul sito: pierotofy.it/pages/sorgenti/dettagli/18291-Breakout/
In pratica questa procedura io l'ho inserita in un timer che (in teoria) dovrebbe scattare ogni 10 millisecondi e mi verifica uno per uno se la pallina interseca uno dei 92 mattoncini. potete capire quanto questa operazione sia pesante per il computer ma non riesco proprio a pensare modi diversi per controllare l'avvenuta collisione...
procedure TForm1.HitMattone; var i :integer; basta :boolean; begin basta := False; for i := 1 to 92 do if basta = False then if IntersectRect(rettangolo,Mattoncino[i].BoundsRect,Palla.BoundsRect) then begin if Mattoncino[i].Visible = False then exit; velocita.Y := 0 - velocita.Y; try Punteggio.Caption := IntToStr( StrToInt(Punteggio.Caption) + 20 ); except Showmessage('Errore punteggio'); end; Mattoncino[i].Visible := False; basta := True; end; end;
vi posto anche il link al progetto inserito sul sito: pierotofy.it/pages/sorgenti/dettagli/18291-Breakout/
aaa