protected void hitTest() { int mw = _map.ChipData.ChipWidth; int mh = _map.ChipData.ChipHeight; PointD pp = convertToViewCoord(_parent.Player.X, _parent.Player.Y); foreach (map.Chip chip in _map.EnumViewChipData()) { if (chip.Hardness <= 0) { continue; } if (_parent.Player.Hit(chip, pp, mw, mh)) { double plog = _minFreqLog + (_maxFreqLog - _minFreqLog) * (Constants.StageViewHeight - _parent.Player.Y) / (double)Constants.StageViewHeight; double pitch = Math.Pow(Math.E, plog); ToneResult tone = ToneAnalyzer.Analyze(pitch, 1.0); ResourceManager.SoundExplosion[tone.ToneIdx.ToString("D2")].Play(); _parent.Player.Y = _map.GetDefaultY(pp.X); _parent.Player.Rad = _parent.Player.MinRadius; break; } } }