2023/09/05(火) [n年前の日記]
#1 [hsp] 疑似3D道路その2
_昨日
の続き。HSP 3.6 を使って、疑似3D道路が作れないか試しているところ。
カーブを実装したいのだけど、何をどうしたらいいのやら。とりあえず、セグメントなる概念でデータテーブルを用意しないとカーブにしろ丘にしろ表現しづらい感じがしてきたので、まずはセグメントの形で道路のデータを持てないか試している。
カーブを実装したいのだけど、何をどうしたらいいのやら。とりあえず、セグメントなる概念でデータテーブルを用意しないとカーブにしろ丘にしろ表現しづらい感じがしてきたので、まずはセグメントの形で道路のデータを持てないか試している。
◎ 配列変数の初期化について :
HSP は配列変数の初期化をする際に、カンマ区切りでずらずらと数値を書けないようで…。以下のような書き方になってしまう。
マクロを書いて、多少は見た目を改善する方法はあるっぽい。
_配列変数の連続代入について - HSPTV!掲示板
dim a, 5, 3 a(0, 0) = 20 ; count a(0, 1) = 0 ; curve a(0, 2) = 0 ; pitch a(1, 0) = 30 a(1, 1) = 10 a(1, 2) = 0 a(2, 0) = 20 a(2, 1) = -10 a(2, 2) = 0 a(3, 0) = 20 a(3, 1) = 0 a(3, 2) = 2 a(4, 0) = 20 a(4, 1) = 0 a(4, 2) = -2このへんどうにかならんのか。
マクロを書いて、多少は見た目を改善する方法はあるっぽい。
_配列変数の連続代入について - HSPTV!掲示板
#define set_array(%1, %2, %3, %4, %5) \ %1(%2, 0) = %3 :\ %1(%2, 1) = %4 :\ %1(%2, 2) = %5 : set_array a, 0, 20, 0, 0 set_array a, 1, 30, 10, 0 set_array a, 2, 20, -10, 0 set_array a, 3, 20, 0, 2 set_array a, 4, 20, 0, -2
◎ 配列の中にdoubleを混ぜたい :
配列変数の中に int と double を混在させたいのだけど、エラーが出てしまった。
double だけを列挙するのであれば、ddim を使えるようだけど…。ddim を使うと、int が記述できなくなる。
仕方ないので、double として使いたい数値は、100倍して int として入れておくことにした。取り出す際に、double(a(0, 0)) * 0.01 とでもすれば、double として扱えなくもないだろう…。
考えてみたらアセンブラで書いてた頃は、256倍なり65536倍なりして固定小数点で色々やってたので、そういう書き方をすればいいのかな。でも、この時代ににそんな書き方はしたくない…。
double だけを列挙するのであれば、ddim を使えるようだけど…。ddim を使うと、int が記述できなくなる。
仕方ないので、double として使いたい数値は、100倍して int として入れておくことにした。取り出す際に、double(a(0, 0)) * 0.01 とでもすれば、double として扱えなくもないだろう…。
考えてみたらアセンブラで書いてた頃は、256倍なり65536倍なりして固定小数点で色々やってたので、そういう書き方をすればいいのかな。でも、この時代ににそんな書き方はしたくない…。
[ ツッコむ ]
以上です。