waiei -blog-

その日の出来事を簡単に紹介する日記

スポンサーサイト

--------------:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

たまにはただの日記でも

2008-11-11-Tue-02:00
Web拍手レス
すこしお久しぶりです( ´Д`)ノ
いまさっき改名しましたw

ABOUTみて閃いたのですが、A,Cさんの曲のみ
DWIに使わせていただいてもよろしいですか??
楽曲使用の項を画面に穴が開くぐらい熟読しますので。

仮に完成したらまたBBSに連絡しますヽ( ´∀`)人(´∀` )ノ

らのっちぇ(旧 珀威)さん
どうもですー。
えっと、つまり過去に作った曲にDWI譜面をつけるって意味ですよね?
問題ありませんよー。名義は作曲当時の名前(YOSSHI,sin)でも
今の名前(A.C)でもどっちでも良いですのでw
完成しましたらこちらのページにリスト追加いたします~。




今日はマンガないよ(´・ω・`)

どうも、今日こそは12時に寝ると思っていても
結局こんな時間(2時)まで起きてしまい
次の日が大変なA.Cですこんにちは。

ホントに早く寝る癖つけないとなー…。

BDSVの進行状況報告~
(もう開発日記はほぼ機能してないなw)

今回のバージョンで追加予定のフォルダの削除、移動機能ですが、
大まかな流れで言うと、
移動、削除したいフォルダを選択
→上部(現在の予定)に設置されたボタンを押して移動等を選ぶ
てな感じになっていまして、とりあえず選択できるようにしました。
bdsv2200_1.png
こんな感じに右端にチェックボックスが搭載されましたー!

て言うかこの機能、2.00の時にホントはつける予定だったんで
現在公開しているバージョンもアーティスト名が長い場合
このチェックボックスのある範囲は文字が切れるようになっています。

ついでにこの部分も
bdsv2200_2.png
独自の描画方法からWindowsのポップアップを使うように変更。
じゃないと、選択した直後に下に重なってたリストを
選択してしまうことがあるからねー。

今のところほかの修正点は下の通り
・難易度18まで表示できるように(数値はいくらでも問題ない)
・右クリックポップアップメニューにセパレータ追加(かなりどうでもいい)
・右クリックメニューが認識されないバグも修正されているはず
・グループを読み込んでいない場合にソングフォルダのプロパティを
 開こうとするとエラーが出るのも修正できているはず

さーて、あとはフォルダの移動や削除機能だなー(かなり肝心な部分だがw)
スポンサーサイト

ダメだ俺…早く何とかしないと…!

2008-11-04-Tue-20:30
なんかこっちのほうが需要あるみたいなんで記事順番入れ替えしました

この記事の方法では、画面更新時にチラツキが発生します。
チラツキなく描画することに成功したので、
AeroGlassに描画する方法をお探しの方はこちらの記事を参照してください
http://waiei.blog7.fc2.com/blog-entry-627.html





いい加減TALKのコーナーのHSP編もネタ溜まってるんだから
更新しないといけないんですけどねー。

まあ、それはおいておいて。
WindowsVistaから半透明なウインドウを作成できるようになりました。
ただの半透明ではなく、タイトルバーのように
後ろがぼけて見える半透明です。
というか、タイトルバーがそのままクライアント領域まで伸びたような。

Vista以降に存在する、dwmapi.dllを使えば簡単に実現できます。
ちなみに一番短いソースはこんな感じ↓
#uselib "dwmapi"
#func DwmExtendFrameIntoClientArea "DwmExtendFrameIntoClientArea" int,int

    screen 0,240,240,0:title "グラスウインドウ"
    a=-1,0,0,0      //一番最初の値を-1にすると全部透明
    DwmExtendFrameIntoClientArea hwnd,varptr(a)
    cls 4       //cls 4必須(白い部分は通過されない為)
    stop


こいつを実行するとこんな感じ↓
glass_1.png
うん、良い感じに透明です。

しかし!
実は、透明にすると標準命令で図形や文字を描画しても
加算合成されてしまい、後ろが白い場合はほとんど見えなくなってしまいます↓
glass_1_2.png

まあ、とりあえず今はそんなのかんけーねーと思ってほかに出来ることでも。
じつは、ウインドウの中身も透明化できます。
というかもう説明がめんどくさいので実行画面見てくださいな↓
glass_2.png
あんまり需要ないような気がしないでもないですけどねw
ちなみに完全に透明になっている部分は従来のリージョンウインドウと違い、
クリックしても下のウインドウは選択されません。本当に枠だけにすることも可能w

あれだ、Windows7で取り入れられるといわれている
ウインドウを枠だけにしてデスクトップを見えるようにすることも
出来るんじゃないですかねー。

ソースはこんな感じ↓
#uselib "dwmapi"
#cfunc DwmIsCompositionEnabled "DwmIsCompositionEnabled" int
#func DwmExtendFrameIntoClientArea "DwmExtendFrameIntoClientArea" int,int
#func DwmEnableBlurBehindWindow "DwmEnableBlurBehindWindow" int,int

#uselib "gdi32"
#cfunc CreateRectRgn "CreateRectRgn" int,int,int,int
#cfunc CreateEllipticRgn "CreateEllipticRgn" int,int,int,int
#func DeleteObject "DeleteObject" int

#uselib "user32"
#cfunc GetWindowLong "GetWindowLongA" int, int
#func SetWindowLong "SetWindowLongA" int, int, int

    screen 0,240,240,2:title "グラスウインドウ"
    SetWindowLong hwnd, -16, GetWindowLong (hwnd, -16) | $10000 | $40000
    gsel 0,1
    if DwmIsCompositionEnabled()=0:dialog "未対応!":end


//----クライアント領域を小さくする(といっても実際のサイズは変わらないが)

    a=0,0,50,50     //一番最初の値を-1にすると全部透明
    DwmExtendFrameIntoClientArea hwnd,varptr(a)


//----クライアント領域の中身も透明化する(リージョン範囲でなければ完全な透明になる)

    ;rHwnd=CreateRectRgn(0,0,ginfo_winx,ginfo_winy)             //----四角形(リージョンハンドル取得)
    rHwnd=CreateEllipticRgn(50,50,ginfo_winx-51,ginfo_winy-51)  //----楕円形(リージョンハンドル取得)
    b=0x07,1,   rHwnd,1
    //↑p1 ↑p2 ↑p3  ↑p4 と考えて、
    //  p1->p2を使うなら0x01,p3を使うなら0x02,p4を使うなら0x04
    //  p2->通過するか否か
    //  p3->リージョンハンドル
    //  p4->最大化時に通過度合いを変えるか否か
    DwmEnableBlurBehindWindow hwnd,varptr(b)
    DeleteObject rHwnd

    cls 4       //cls 4必須(白い部分は通過されない為)
    color 128,128,128:boxf 0,80,ginfo_winx,ginfo_winy-81
    color 0,0,0:font "meiryo",15,0
    pos 0,110:mes "WindowsVistaで半透明ウインドウ"
    stop






で、先ほどいったように文字が加算合成される現象。
これは何とかならないのかと思いMSDNマガジン(図10あたり)を見てみると
・GDI+を利用する方法
・オーナー描画コントロールを使用する方法
・アルファ チャネルを持つビットマップにレンダリングする方法
これだけ回避方法があるみたいです。
と言ってもサッパリなんで適当に探すこと早半年(笑)
sprocket氏のサイトにて配布されているHSPでGDI+を使えるようにする
Artlet2Dで挑戦してみることに。
しかし、今回の回避方法としては、
透明化したウインドウに直接GDI+を利用して描画する必要があり、
このArtlet2Dは独自のバッファから透明化したウインドウにコピーする為
まったく効果がありません。

しかし!(またか)
このサイトのフリーBBS、2007/06/18の記事に
α版的ポジションのサンプルが当時ありました。
これは直接描画(と言うかバッファとウインドウをリンクさせる)ことが可能で、
ウインドウを透明化してもちゃんと文字が読めました。

さらに、2007/12/04の記事のβ版にも、
存在はするが使えなくされていたので、
α版と見比べながら書き換え成功。

んでもって使ってみたらこんな感じ↓
GDI+を利用したエアログラスウインドウへの描画
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!

結構良い感じに描画されました!
ちなみに某所に上げられていたやつを読み込んでみた↓
GDI+を利用したエアログラスウインドウへの描画2
無駄にかっけぇw

著作権フリーとのことなので書き換え版のDLはこちら
※2013/09/10 リンク切れだったので修正

!注意!
書き換えないと使えないようにしているくらいなので
もしかするとPCが危険な状態になるかもしれないです。
(今のところこっちのPCでは何も問題起こってないが。)
あくまで、使用するなら自己責任で。
書き換え版についての質問はオリジナル作者のsprocketさんに
しないでください、絶対に。
だからと言ってこっちに訊かれてもわからん^^;


ちなみに書き換え版を利用したソースはこちら↓
//  読み込んだ直後は実際のサイズで描画、
//  一度ウインドウ内をクリックするとウインドウサイズに合わせて中央表示
//  左上は現在の時間

#include "ali.hsp"
#uselib "user32"
#cfunc GetWindowLong "GetWindowLongA" int, int
#func SetWindowLong "SetWindowLongA" int, int, int

    screen 0,ginfo_dispx,ginfo_dispy,2
    SetWindowLong hwnd, -16, GetWindowLong (hwnd, -16) | $10000 | $40000
    width 640,480:gsel 0,1
    dialog "bmp;*.jpg;*.jpeg;*.png;*.gif",16
    if stat=0:end
    alCreateImageByFile 1,refstr    //画像用
    w=alGetWidth():h=alGetHeight()  //縦横幅取得
    alCreateImage 0,ginfo_dispx,ginfo_dispy
                                    //空イメージ(この内容がメインウインドウに反映される)
    vistaexframe -1,0,0,0:cls 4     //Vista専用、全範囲グラスウインドウ
    alLinkImageToScreen 0,0         //イメージ0とHSPウインドウID0をリンクさせる
    alColor 0,0,0,255
    alFont "meiryo", 50, 16
    alDrawText "Test",0,0
    pos 0,100
    alCopyImageToImage 1,0,ginfo_cx,ginfo_cy,640,480,0,0
    alRedraw                        //更新!
    onclick gosub *update
    
    repeat
    gosub *timeupdate
    wait 1
    loop
    
    stop

*update
    alEraseRect 0,100,ginfo_dispx,ginfo_dispy
    alStretchImageToImage 1,0,0,0,w,h,(ginfo_winx-w*(ginfo_winy-120)/h)/2,100,w*(ginfo_winy-120)/h,(ginfo_winy-120)
    redraw
    vistaexframe -1,0,0,0:cls 4     //別のソフトがフルスクリーンになる等、Aeroが切れた場合、もう一度呼び出して復活
    alRedraw
    return
    
*timeupdate
    if old_sec!gettime(6):old_sec=gettime(6):redraw 1,0,0,300,100:else:return
    alEraseRect 0,0,300,100
    alDrawText ""+strf("%02d",gettime(4))+":"+strf("%02d",gettime(5))+":"+strf("%02d",gettime(6)),0,0
    alRedraw 0,0,300,100
    return
    
    //画面をクリアするときはredrawとalRedrawを利用する。
    //イメージ0の方もalEraseでクリアすること。
    //ちらつくので更新する時は最低範囲のみにすること





いつもの日記はここから↓





Web拍手レス
6周年おめでとうございます!
HELPシリーズってもう無いんですか?
HELPシリーズはすごく気に入っていますので
6周年記念にぜひ1曲!w
(ずうずうしいこといってごめんなさいw)

ありがとうございますー。
うーん、当時数少ないbpm300越え曲の配布サイトだったんですけど
今やパッケージなどで当たり前のようにそういう曲がありますからねー。
あんまり需要がないというのも作らなくなった理由のひとつではあります。
音源の問題は一応今利用している音源のVSCで
近い音を出すことが出来るので何とかなると思いますが。
企画凍結中のABSOLUTEにて主催者のMr-ty氏によるアレンジが
収録予定だったんですけど凍結してしまってますしねー…。
一応復活しようぜー的な話は出てるんですけどまだしばらくは難しいかな。
オリジナルゲームのBGMなどに利用される可能性とかはありますけど
BMSでの復活はあまり期待しないでくださいな^^;
とりあえず今は蜘蛛神様で許してください><




トランシーバーONIバトル

第43話最初から見たい人はこちら

-これあら-
どうしてここに!?

<画像リンク切れの為消去(メインサイトから閲覧できます)>

むしろ後半が本音




おひさしぶりですー、本当に2週間に1回の割合で
更新しているダメダメなA.Cですこんにちは。

一応ちょくちょく更新はしているんですけどねー…。リンクページとか。
そろそろ就職活動に力を入れないといけないんですよねー…

          l/l//   ,. --- .. __        /
  な  絶       / /         `ヽ、_人/  ご   働
  い  対    //  /         \    ざ   き
  で  に    /_   .′       ヽ、\  \   る  た
  ご  働      / ,,″ / ,ィ | l ll |l l ぃ ヽ <_ ///  く
  ざ  き   ∠ 〃 -/、/ ! | l ll ll | l i   '. / ’’’   な
  る   た    ///  ,.イfr㍉i、| | ll |l |,-H‐  i ′       い
 ///  く   /  l i  //|/`┴1| |/|ィ乏了ト、 ///     で
. ’’’     .′ l|/,小、    _⊥ _   リ,ハ l .' /|  ∧
  /`Vヽ. /\  | | | |八   /ー--‐1`メ、厶ィi |/,.イ|  l  / ∨\
∠__  ∨  ヽ.} | | }川ヽ. ト、  ,ィ}/ //リ l/i/リ | ′
 ゝ   `V , ‐ァ .' メ、トく\/ヽヽ辷ク ,ィ'/‐-/リ,∠..._ l//
  \  // / //  丶 \\ \_/// / / /  `メ、
 ー- ヽ/   / // /〉   \ ヽ.ヽ    /{丁iヽ /  /   \       /〉
  // ー- / // /// ̄ ヾ 、 ヽ}     `l | ィ\ / /   /∧ /   //
./ /   / /ー//,′   }`ヾ i|  L___// | ,.へ,.イ/} // ,レ'  //
  /   / /  //7    /  !`ヽ、 // ,.ィ' / ト、く  /|  〈/
. /‐- / /  ///    /  /   ├く// l     l 丶>'  ノ  〇
.    / ー-///    /   ′  /  |   /     ヽ/ ̄/
        //´    /  /    '   /ー-' .. _         ̄l
.      〈/           '   /  /              `ヽ

セミナーとか行ってると本当にこんな状態w

しかし最近夜はニート状態になっているんで
いい加減ソフト作りとか作曲とかしないといけないですねー。

[日記][トランシーバーONIバトル][HSP]
HOME
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。