kyotsu.hの作成
メモ帳に以下の内容を書き、kyotsu.hという名前でcc65/includeに保存します。
/////////////////////////////////////////////////////////////////////////////////
// 2010.11.30 ver 0.02
// 煮るなり焼くなりお好きにどうぞ。
// -----------------------------------------------------------------------------
// cc65@wiki
// http://www34.atwiki.jp/cc65/
/////////////////////////////////////////////////////////////////////////////////
//アタリ判定(長方形)
char HitBox(unsigned char ax1,unsigned char ay1,unsigned char ax2,unsigned char ay2,
unsigned char bx1,unsigned char by1,unsigned char bx2,unsigned char by2)
{
if (ax1 < bx2 && bx1 < ax2 && ay1 < by2 && by1 < ay2) {
return 1;
} else {
return 0;
}
}
//アタリ判定(円形)
char HitCircle(unsigned char ax,unsigned char ay,unsigned char adiameter,
unsigned char bx,unsigned char by,unsigned char bdiameter)
{
unsigned char w,x,y,z;
x = ax + adiameter / 2;
w = bx + bdiameter / 2;
if (x > w) {
x -= w;
} else {
x = w - x;
}
y = ay + adiameter / 2;
w = by + bdiameter / 2;
if (y > w) {
y -= w;
} else {
y = w - y;
}
z = (adiameter + bdiameter) / 2;
if (x * x + y * y < z * z) {
return 1;
} else {
return 0;
}
}
//配列比較
char memcmp(char *a, char *b,char len)
{
unsigned char i;
for (i = 0; i < len; i++)
{
if (*(a + i) != *(b + i)) {
return 0;
}
}
return 1;
}
//配列複写
void memcpy(char *a, char *b,char len)
{
unsigned char i;
for (i = 0; i < len; i++)
{
*(a + i) = *(b + i);
}
}
//配列複写(開始アドレス指定)
void memcpyfr(char *a, int afr, char *b, int bfr, char len)
{
unsigned char i;
for (i = 0; i < len; i++)
{
*(a + afr + i) = *(b + bfr + i);
}
}
//待機処理
void Wait(int cnt)
{
unsigned int i;
for (i = 0; i < cnt; i++) {}
}
kyotsu.hの解説
- HitBox:アタリ判定(長方形) 1=衝突 0=なし
- ax1,ay1:キャラ1の左上座標
- ax2,ay2:キャラ1の右下座標
- bx1,by1:キャラ2の左上座標
- bx2,by2:キャラ2の右下座標
- HitBox:アタリ判定(円形) 1=衝突 0=なし
- ax,ay:キャラ1の左上座標
- adiameter:キャラ1の直径
- bx,by:キャラ2の左上座標
- bdiameter:キャラ2の直径
- memcmp:配列比較 1=一致 0=不一致
- *a,*b:比較する配列のポインタ
- len:比較するバイト数
- memcpy:配列複写
- *a,*b:複写する配列のポインタ
- len:複写するバイト数
- memcpyfr:配列複写(開始アドレス指定)
- *a,*b:複写する配列のポインタ
- afr,bfr:複写する配列の開始アドレス
- len:複写するバイト数
- Wait:待機処理
最終更新:2012年03月06日 09:17