ゲームを作りたい人のための ソースコード集

私がその日作った短めのソースを簡単な解説とともに載せていきます
ゲーム制作初心者にとって参考になるかもしれないソースが多いです


<< トロコイド曲線 | main | 視界フィルター >>



スピログラフ

スピログラフを描写するプログラムです

 

 

#const wid 600    ;画面の横幅
#const hei 600    ;画面の縦幅

#include "gdi32.as"
#const SRCINVERT $00660046

screen 0,wid,hei,0
buffer 1,wid,hei,0    ;裏画面

gsel 0
color 255,255,255: boxf
hdc0=hdc
gsel 1
hdc1=hdc
gsel 0

fcenx=int(wid/2) : fceny=int(hei/2)
d=0
rad=deg2rad(d)
rcw=100.0    ;定円の半径
rch=100.0
rm=44.0        ;動円の半径
rd=110.0    ;描画点の半径
sx=(rcw-rm)*cos(rad)+rd*cos((rcw-rm)/rm*rad)+fcenx
sy=(rch-rm)*sin(rad)-rd*sin((rch-rm)/rm*rad)+fceny
tx=sx:ty=sy
randomize
redraw 0
repeat
    d++
    rad=deg2rad(d)
    gsel 1        ;裏画面に描画する
    color:boxf    ;裏画面を真っ黒にクリア
    color 255,255,255
    nx=(rcw-rm)*cos(rad)+rd*cos((rcw-rm)/rm*rad)+fcenx
    ny=(rch-rm)*sin(rad)-rd*sin((rch-rm)/rm*rad)+fceny
    x=fcenx,fcenx,0+tx,0+nx
    y=fceny,fceny,0+ty,0+ny
    gsquare -1,x,y
    gosub *xor_copy
    tx=nx:ty=ny
    if absf(sx-tx)+absf(sy-ty)<1{
        break
    }
    gsel 0
    redraw:await 1:redraw 0
loop
gsel 0
redraw 1
stop

*xor_copy
    ;裏画面の内容をメイン画面にxorコピー
    BitBlt hdc0,0,0,wid,hei,hdc1,0,0,SRCINVERT
    return

0
    posted by higashijugem 07:31comments(0)|-|


    この記事に対するコメント