三角関数。学校では何に使うの?と思っていた(る)方もいると思いますが、実はゲームを作るうえで四則演算の次くらいに重要です。ゲームの種類によりますが、シューティングゲーム等の敵の軌道や、演出効果など色々な場面で高頻度で使います。知っておいたほうが良いですし、断然楽しいです。
今回は、Ichigojam Basicで、三角関数の基本である円を描いてみたいと思います。
ただし、Ichigojam Basicには三角関数はありませんので、自前で用意する必要があります。その方法は、計算で求める方法とあらかじめ用意しておく方法がありますが、処理能力の低い環境の場合、あらかじめ値を用意しておく方法が適しています。今回はこの方法(以下テーブル方式とします)で作ってみます。
このテーブル方式では、SINの0度~90度までの値を配列に用意します(行番号50~58)。SINの90度より上の値、COSの値は、この配列の読み出し方を変えることで求めることができます。またIchigojam Basicが扱える数値は整数のみですので、実際の値を100倍した値(0~100)とします。
110行目が円を描くサブルーチンになっていて、210行目をCALLして得たSIN,COSの値を基に、半径100/11(キャラクタ)の円を”O”で描きます。
200行目がSIN,COSを返すサブルーチンになっています。変数Rに角度0~359を入れてCALLすると、X,YにそれぞれSIN,COSが設定されて戻ってきます。
SIN,COSを11で割る意味ですが、この値をそのまま使用すると半径100(キャラクタ)の円になってしまい、32×24の画面からはみ出てしまうのがその理由です。今回は11で割っていますが、この値を大きくすれば小さい円に、小さくすれば大きい円になります。

![]()
10 CLS
20 ' SIN DATA(0~90)
50 LET [0],0,2,3,5,7,9,10,12,14,16
51 LET [10],17,19,21,22,24,26,28,29,31,33
52 LET [20],34,36,37,39,41,42,44,45,47,48
53 LET [30],50,52,53,54,56,57,59,60,62,63
54 LET [40],64,66,67,68,69,71,72,73,74,75
55 LET [50],77,78,79,80,81,82,83,84,85,86
56 LET [60],87,87,88,89,90,91,91,92,93,93
57 LET [70],94,95,95,96,96,97,97,97,98,98
58 LET [80],98,99,99,99,99,100,100,100,100,100,100
60 GSB 110
70 LC0,0
80 END
100 ' DRAW CIRCLE
110 FOR R=0 TO 359 STEP 5:GSB 210:LC16+X/11,12+Y/11:?"O";:NEXT:RTN
200 ' SIN,COS
210 IFR>270X=-[90-(R-270)]:Y=[R-270]ELSEIFR>180X=-[(R-180)]:Y=-[90-(R-180)]ELSEIFR>90X=[90-(R-90)]:Y=-[R-90]ELSEX=[R]:Y=[90-R]
220 RTN