procedure TForm5.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
case Key of
label1.Text := 'Key: ' + Key.ToString;
And here is a sample of the point based collision detection. You could easily convert this function into a re-usable function where you pass in the two objects as variables and the distance that you want to check and then return true of false.
shipPt, targetPt: TPointF;
shipPt := ship.Position.Point;
targetPt := target.Position.Point;
distance := round(shipPt.Distance(targetPt));
label2.Text := 'Dist: ' + round(distance).ToString;
if distance < fMove then
targetX.StartValue := target.Position.X;
targetY.StartValue := target.Position.Y;
targetX.StopValue := Random(round(playArea.width));
targetY.StopValue := Random(round(playArea.height));
label2.Text := 'Hit!';
fScore := fScore + 1;
lblScore.Text := 'Score: ' + fScore.ToString;
Check out the full blog post by Jim about the Ouya app demo and download the full source code.
The direct link to the source code is here. It is packed up with a bunch of other demos but just open the Ouya demo from the archive to get to the code. You have to register to download the file.