以前の
2003 : 5 6 7 8 9 10 11 12
2004 : 1 2 3
久々のHSPスクリプト。C言語っぽいforループです。nextあるけど、それはHSPなので仕方が無いということで。
#define global cfor(%1=logmode, %2=1, %3=logmode) %1 : %tAzfor *%i %s2 %s3 %tAzbreak %i0 %tAzcontinue %i0
#define global ccontinue %tAzcontinue goto *%p0
#define global cbreak %tAzbreak goto *%p0
#define global cnext %tAzcontinue *%o : %tAzfor %o : if %o { goto *%o } : %tAzbreak *%o
何がいいたいかというと負の方向にもループできますよ、と。標準nのforは加算しか考慮して無いですから。激しくHSPっぽくない構文になりますけど個人的にはこちらのほうが自由度が高くて好きですね。
cfor i=0, i<5, i++
// 標準
mes i
cnext
cfor i=5, i>0, i--
// 負の方向
mes i
cnext
何がβ?確かInetelは製品出してなかった?とか考えてると64bitWindowsでした。もう少し分かり安い文を書けるようにしないと。
です。トップ絵に激しく不満がありますが、まぁ遠めには分からないでしょう。うん。今回もペインター+写真屋の手抜き仕様です。色合いは前々から言っていた淡い色調で言ってみましたがイマイチ。足元の水がいい感じ、フィルタで作ったものですが。
よく考えたらくり〜むパンの人なのにくり〜むパン持ってませんね。後謎生物もいなかったり。設定では後ろに廃墟が広がってるのですが書く暇無くて。どちらにせよ1周年記念な絵では無いですね。
去年散々ネタに使ったわりにストーリーを全く知らなかったので買ってきましたが、駄目。以上。そんな感じです。
/*
WindowsXP で Manifest ファイルを使用したアプリケーションで Common Control バージョン 6 を使用した場合、Edit コントロールへの EM_LIMITTEXT メッセージによる入力量制限を設定する際の単位が、バイト数単位ではなく文字数単位に変更されました。この動作は仕様です。
、、、激しく問題でそうですね。迂闊にLUNA適用しないようにしましょう。
突入です。おそらく明日は更新しません。hsGdiplus.hpiのマニュアルは現在執筆中なので、もーしばらくお待ちを〜。
ペン、ブラシの拡張で悩んでみたり、排他にして新しいペンが作られると以前のペンは削除にするか、常に保持しておき変更関数を用意するかですね。
とりあえず最優先事項な某はもーすこしで終わるので、そのあとでみら〜じゅですね。hsGdiplus.hpiはみら〜じゅの描画テスト用(動作確認はCで組むよりHSPの方が手軽なため)に組んでるのでもう少し弄って終わりにする予定です。殆どラップし終えましたし、現在でも大体のことはできるでしょう。問題はマニュアルが薄いと言うことですかね。
あ、HSP3.0になると現在の実装では使えないことが激しく予想されますのでそこは修正する予定です。
Rev.3リリースです。隔日リリースになってますがラッパなのでたいしたこと無いです。殆どコピペ→メソッド→関数名書き換えで終わりですし。マニュアルが激しくいい加減ですがそのうちHTMLヘルプ辺りにしようと思ってるので気長にお待ちください。
今回は色々追加しました。で、次回はペン、ブラシを強化、互換性を破棄します。テクスチャブラシを使ってる人は注意です〜。まぁ何かと言うと.NET Frameworkドキュメントを見ているとSystem.Drawing.Drawing2D名前空間にまだブラシがあったということです。というか、GDI+のSDKドキュメントって読みづらくですか?色々とパカパカ開いてアクセシビィティが最悪な気がするのですけど。
でした。いやーPC無事でよかったです。
テキスト品質とレタリング品質、実装したのはよいけれど、定数(列挙)が長い、長すぎです。ていうか本来の目的の「簡単に」からかけ離れていってますね。まぁ習作ライブラリなのでよいですけど。
というより関数が殆どコピペで構成されてるのが何とかしたいところ。Grapics部分はラッパなので仕方ないと言えば仕方ないのですけど、引数取得周りは普通は解決できるところだけに残念です。HSPEXINFOの欠点ですね。
Pen, Brush を静的に作成することによる高速化を図っています。後はPenのスタイル、TextuerBrushのサポート、 BrushDrawLines, DrawCurve, DrawBezier, DrawBeziersのラッパ関数を用意したことくらいでしょうか。ラッパ関数はもう少し増やそうかと思ったのですが、サンプルが面倒なのでこの辺で打ち止め。Rev.3に続きます。
それにしてもサイズが無駄に大きいですね、、、Win98への最適化をOFFにし、サイズ重視で最適化すれば25K程小さくはなるのですが、グラフィックライブラリは速度だろうと言うことでそのままにしてます。考えてみれば処理はGDI+ライブラリが行ってるので余り関係ない気もしますけど。
最近はバイナリのサイズよりもコードの可読性だ、と言うことでC++でもCモドキではなくクラスを使って例外処理しているのですがコレを行うと飛躍的にバイナリサイズが大きくなってしまいます。何とかならないものでしょうかね。うちだとれがしぃ程度ならCでも余裕ですが、みら〜じゅクラスになるとC++でクラスですね。というかみら〜じゅPhase3(復活)では無意味にクラスでラップしていたりします。
しかし継承のメリットがいまだ理解できません。他人のクラスを弄くるということであれば納得は出来るのですが一から自分で作る場合クラスを複数に分離したほうがよいような気がするのですが、、、大体再利用できると言ったってよほど末端部分で無いと無理で多くは書き直しに決まってますし。商用の大規模なコードになると話は変わってくるのかなー。こーいうのはトライ&エラーで行かないと進めないですね。
ヘルプを眺めていると TextuerBrush という面白いものを発見。Fill系などBrushクラスを使用するメソッドで使用できるみたいです。これは壁紙描画が簡単、ということでhsGdiplus.hpiのほうに実装してみました。そのうち公開します。
修羅場を脱したので今後の予定。いや、2,3週間くらいでまた修羅場になるのですけど。
1週間以上前ですが7/5にVS.NET 2003買いました。インストーラの「インストール後のサイズ」って「後」ではなく「前」では?
というわけで1ヶ月更新していないのもアレで即興でhsGdiplus.hpiを製作。何かと言うと単にGDI+の描画をHSPから行えるようにするものです。習作なのでたいした機能は持っていませんしC++なのでサイズが無駄に大きいなど問題が山積みです。(ぉ)
雑記まで手が回らない今日この頃なのでしばらく不定期更新とさせていただきます。2週間くらいで復帰できるとは思いますが、その後も微妙なので予定は未定です。
IntelとAMDの64bitプロセッサって互換性が無いのですよね。現在は共にβレベルでサーバー向けだからよいのかもしれませんけど、コレが一般に降りてきた場合どーなるのでしょ?やはり.NET使えってこと?どちらにせよ問題でそう、、、。
Copyright(C)方位記号