Sound abhängig von der Bildposition abspielen
Die Eigenschaft ‚pan‘ eines jeden Waveitems gibt die Balance an. Ein Wert von -10000 bedeutet, dass der Sound nur auf der linken Box ausgegeben wird, 0 auf beiden und 10000 spricht den rechten Lautsprecher an. Um nun einen beliebigen X-Wert auf diese Skala umzurechnen, reicht eine einfache Verhältnisgleichung:
Die Gleichung in Worten:
Der Pan-Wert verhält sich wie die X-Position des Objektes zu der Bildschirmbreite in Pixeln
Die Gleichung mathematisch:
pan = x/Bildschirmbreite
Die Gleichnung im Quelltext:
DxWaveList1.Items[0].Pan:=20000 * x div 640 - 10000;
Die 20000 und die -10000 sind nötig, damit man auch auf negative Ergebnisse kommt, also auch die linke Box ansprechen kann. X ist die Position (Left) des Objektes.
Dasselbe gilt nun auch für die Lautstärke, die eine Entfernung simulieren kann. Dazu braucht man natürlich einen Tiefenwert, z.B. z:
DxWaveList1.Items[0].Volume:=20000 * z div 100 - 10000;
Volume gibt die Lautstärke an.