「ゲーム共通処理」の編集履歴(バックアップ)一覧はこちら

ゲーム共通処理」(2012/03/06 (火) 09:17:59) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#contents() *kyotsu.hの作成 メモ帳に以下の内容を書き、kyotsu.hという名前でcc65/includeに保存します。 #highlight(c){{{ ///////////////////////////////////////////////////////////////////////////////// // 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:待機処理 --cnt:待機する数
#contents() *kyotsu.hの作成 メモ帳に以下の内容を書き、kyotsu.hという名前でcc65/includeに保存します。 #highlight(c){{{ ///////////////////////////////////////////////////////////////////////////////// // 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:待機処理 --cnt:待機する数

表示オプション

横に並べて表示:
変化行の前後のみ表示: