|
012 奥行き付の描画
これまでに説明した描画関数「G@CHRCOPY」「G@CHRCOPYF」「G@CHRCOPYC」は上書きで描画をするので、以下のように「背景→A→B」の順番に描くと、最も置くに背景、一番手前にBが描かれます。
サンプルプログラム「2d 012」
|
CH = G@SETUP(640, 480, 16, 1)
B1 = G@CHRLOAD("BACK.BMP") //「背景」
B2 = G@CHRLOAD("DATA1.BMP") //「A」
B3 = G@CHRLOAD("DATA2.BMP") //「B」
LOOP
G@CHRCLEAR(CH)
G@CHRRECT(CH, 0, 0)
G@CHRCOPYF(B1, CH)
G@CHRRECT(CH, 192, 112)
G@CHRCOPYF(B2, CH)
G@CHRCOPYF(B3, CH)
G@FLIP()
ENDLOOP |
描画関数をそれぞれ「G@CHRCOPY2」「G@CHRCOPYF2」「G@CHRCOPYC2」で奥行きを指定して描画することができます。この場合、描画の順番にかかわらず指定した奥行きで重ねて描画します。
以下のように「背景(奥行き0.5)→A(奥行き0.3)→B(奥行き0.4)」の順番に描いても、奥行きのしていにより最も置くに背景、一番手前にAが描かれます。奥行きは0.0(一番手前)〜1.0(一番奥)となります。
サンプルプログラム「2d 012-2」
|
CH = G@SETUP(640, 480, 16, 1)
B1 = G@CHRLOAD("BACK.BMP") //「背景」
B2 = G@CHRLOAD("DATA1.BMP") //「A」
B3 = G@CHRLOAD("DATA2.BMP") //「B」
LOOP
G@CHRCLEAR(CH)
G@CHRRECT(CH, 0, 0)
G@CHRCOPYF2(B1, CH, 0.5)
G@CHRRECT(CH, 192, 112)
G@CHRCOPYF2(B2, CH, 0.3)
G@CHRCOPYF2(B3, CH, 0.4)
G@FLIP()
ENDLOOP |
|