ソフト制作記録

HomeSoftwareBlogソフト制作記録AlbumnContactOnline HelpInvestment

HSPプログラミング超初心者・・・未熟な私のプログラミング日誌

気が付いたことや失敗の記録(お恥ずかしいことばかりです、笑って下さい・・・)。

インフォメーション


今日は私が今夢中のd3module(3D制御命令)を使ったサンプルプログラムを紹介します。


※ ここからはHSPの付属のサンプルスクリプトです。
sample_03_basic

sample_05_particle_basic

sample_06_snow_night

sample_09_toge

sample_11_d3texture

sample_12_anitexture

sample_13_d3texture_div

sample_14_d3ribbonto

sample_17_d3setlocal_shadow

sample_17_poly_particle

xsample_amano

xsample_gcube

xsample_gimbal

xsample_shiraho

xsample_verge



変数の扱いにも物凄く悩みました。
例えば、a=10(整数), b=0.5(実数)とします。
u=double(u), v=double(v), w=double(w), x=double(x), y=double(y), z=double(z)として変数の扱いを実数型にします。
でも演算の記述の仕方や順番によって算出結果が異なります。
u=a+b, v=b+a, w=1*(a+b), x=1*(b+a), y=1.0*(a+b), z=1.0*(b+a)とすると・・・
10.5になるのはvとzだけです。
順番によっては演算a+b≠a+bなのです!
      a+b=10で、b+a=10.5になるのです。
また、実数に整数を掛けると結果は整数にまとめられてしまいます。
ですので1*10=1*10.5になってしまいます。
演算結果が違ってしまって変な動きをしたりして物凄く悩みました。

 本来なら型の違う変数は型を統一してから演算すべきなのにそう言う発想がなかったんですね。
つまらないところで、とっても苦労しました。
本当に初歩的で簡単な事なのですが・・・理解するのに時間が掛かりました。
何から何まで要領が悪く、牛歩の如くノロノロとココまで来ました。






 HSPをversion3.21から3.22にバージョンアップしたら、『波括弧が閉じられてません』・・・エラーが続出!!
早速検索で片っ端からチェックしたらやっぱり「}」が抜けていました。
今迄はそんなエラーは全然出なかったのですが・・・。
HSP version3.21までは波括弧が閉じられてなくてもエラーにならず動いていたんですね。
普通ifとかで波括弧を使ったらきちんと閉じるのが常識なんですが・・・(そこからちょっと??ですが・・・)。
私の場合は最近まで殆ど波括弧を使わず「:」を使って並行処理していたのです・・・。
余りにも「:」の乱用が多くて最近になってしばしば ":" 以降が無視されたりするケースが出て来て、
調べたら「:」よりも「{}」を使った方が良いとのことで、
プログラム中の「:」を2つ以上使っている部分を全て「{} 」に書き換えたところでした。

 実はversion4.00は10月頃に殆ど完成していましたが、
急遽根本から見直して作り直すことになって公開が遅れています。
ソフトの開発はメインPC Pentium D 3.2GHz+3.2GHz(Win7 Ultimate 32ビット)で行っていましたが、
大体出来たので、他のPC Celeron 2.8GHz(WinXP Pro 32ビット)、
N270 1.6GHz+1.6GHz(Win7 Ultimate 32ビット)で動かしてみたら、遅い、遅い!!
起動が遅くてメモリー、CPU使用率が半分を超えてしまいました。

 メインPCはオーダーメイドで購入して4~5年経ちます(PC SUCCESSが倒産する1年位前に購入しました。)
当時はその性能の高さに感動しましたが、
昨今のPCの進化からすればこの程度のPCは今では普通だろうと思い何の疑問も持たずに調子に乗って作っていました。
公開を間近に控えて、もー頭は真っ白!!これは根本から作り直すしかないと思い、
先ずファイルサイズを小さくすることにしました。
フルカラーのbmpを使っていましたが、減色してファイルサイズの小さいgifファイルに変えました。
描画命令も画像精度重視のgzoomからより高速なgrotaqteを使うことにしました。
しかし色数が少ないのと画像精度がかなり荒く、ピクセルが伸びたり、欠けたりするため、
大きなサイズには不向きで最大サイズを150pixelまでに変更しました。

 その上普段デスクトップ上にフォルダを作ってそこで起動させていましたが、
いざ \Program Filesへ移動したら、設定ファイルが書き換えられない!!反映されない!
(version3.01での問題点)がそのままで・・・。
これまた頭が真っ白!問題がまだまだ一杯ありました。
UAC対策としてはレジストリを使用してファイルの書き換えは一切行わない様にすることにしました。
これがまたまた大変で・・・レジストリを操作するための設定ダイアログを作らなくちゃならなくなって、
これまた1から勉強!レジストリーとは?から始まって・・・。
トラックバーやコンボボックス、入力ボックス、カレンダーコントロール・・・設定項目が一杯あって、
全て1つの画面に納めなくちゃならないのでこれまた苦戦しました。
しかも、oncmdの競合があって複数のトラックバーとかが正常に表示されない問題にぶつかりました。
そこでoncmdの拡張プラグインを使用することにしました。
設定ダイアログだけで1ケ月以上格闘しました。
・・・続く。

             



Copyright (C) aichan&ayachan. All Rights Reserved.