ブロック崩しゲーム



void main( void )
{
// とりあえず待つ
delay_ms( 100 );
// 入出力ポートの設定
setup_adc_ports( RA0_ANALOG );
setup_adc( ADC_CLOCK_DIV_32 );
set_tris_a( 0b00000001 ); // in:RA0 out:RA1-4
set_tris_b( 0b00000000 ); // out:RB0-7
set_tris_c( 0b00000000 ); // out:RC0-7
// 初期化処理
Init();
// 無限ループ
while( 1 )
{
Loop();
}
}
Loopの処理は、まず、パッドの位置をスライダのAD変換からPad()で定め、次にCollision()で
衝突判定をします。衝突は、壁、ボール、ブロック、床、などを個別に判定します。床に衝突したら、終了です。void Loop( void )
{
// パッド移動
Pad();
// 衝突判定と向き調整
Collision();
// ボール移動
Move( &x, &y, vx, vy );
// 表示
//Showには時間遅延なし、したがってshow1回程度の時間余裕
//ただし、縦方向のバイト合成をしたためで、縦横のドライブ方向を変えれば、
//時間余裕が出る
Show();
Show();
}