HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0406
リョウデスクトップマスコットについて質問です4解決


リョウ

リンク

2009/4/6(Mon) 17:44:55|NO.24492

今、デスクトップマスコットを作っているのですが、そのマスコットキャラが、タスクバー
の上を歩くようにするには、どうすればよいのでしょうか?

スクリプトはこれです。



////////////////////////////////////////////////////// //色々なデスクトップマスコットを作ろう!!!!! // //まず、このスクリプトは、棒人間VSアニメーターの // //そんなにひどくないやつ版。見たいなやつ。 // //棒人間の動きは自分で編集できる。 // ////////////////////////////////////////////////////// #uselib "kernel32.dll" // マシン語実行用メモリ確保 #func global VirtualProtect "VirtualProtect" var, int, int, var #define global mdim(%1,%2)dim %1,%2 :VirtualProtect %1,(%2)*4,$40,AZSD #module "Region" #deffunc SetRgn // [フルカラー専用Ver1.0] 左上の色が透過色になります。 stat : 失敗0 成功0以外 #uselib "user32" ; 使用するWin32API関数 #cfunc global SetWindowRgn "SetWindowRgn" int, int, int #uselib "gdi32" #func global DeleteObject "DeleteObject" int #func global ExtCreateRegion "ExtCreateRegion" int, int, int #func global CombineRgn "CombineRgn" int, int, int, int pget 0,0 : c= (ginfo_b<<16) | (ginfo_g<<8) | ginfo_r : if rgn=0 { mdim rgn,77 pf=varptr.rgn, varptr.ExtCreateRegion, varptr.CombineRgn, varptr.DeleteObject rgn. 0= $81EC8B55,$000FCCEC,$57565300,$8B087D8B,$778B0447,$40048D08,$8303488D rgn. 7= $DB33FCE1,$D02BD18B,$F1AF0F4E,$21147703,$FFF03C9D,$F85D89FF,$89FC5D89 rgn.14= $85C7F455,$FFFFF034,$00000020,$F03885C7,$0001FFFF,$BD810000,$FFFFF03C rgn.21= $000000FA,$5F3B0573,$8D3A7C08,$FFF03485,$C06850FF,$6A00000F,$1055FF00 rgn.28= $75FF026A,$084589F8,$55FF5050,$F875FF14,$8B1855FF,$A5830845,$FFFFF03C rgn.35= $085F3B00,$0FF84589,$0000928D,$4EB60F00,$8AC03302,$01468A26,$0B08E0C1 rgn.42= $0C453BC1,$858B5374,$FFFFF03C,$C1FC4D8B,$85FF04E0,$FFFFF03C,$5405848D rgn.49= $89FFFFF0,$01538D08,$04588941,$890C5089,$1EEBFC4D,$0556B60F,$C683C933 rgn.56= $8A2E8A03,$E1C1014E,$3BCA0B08,$0B740C4D,$8BFC45FF,$4F3BFC4D,$8BDD7504 rgn.63= $4889FC4D,$04478B08,$FF03C683,$4539FC45,$3B8C0FFC,$8BFFFFFF,$6583F44D rgn.70= $048D00FC,$F7E0D140,$03C82BD9,$23E943F1,$5FFFFFFF,$C2C95B5E,$00000014} mref bm,67 ;: c= $FFFFFF ;色を指定 prm=varptr.bm,c,pf.1,pf.2,pf.3:return SetWindowRgn(hwnd,callfunc(prm,pf,5),1) #global /************************************************************************/ onclick *move p=0 ; 0=フルカラー:1=パレットモード screen 0,1,1,1,dispx :gsel 0,-1 buffer 1,,,p picload "C:\\Documents and Settings\\ゲーム製作&改造部屋\\デスクトップ\\デスクトップマスコット\\cara1.bmp" sx=ginfo_sx : sy=ginfo_sy bgscr 2,sx*3, sy*3, p&1|2 gzoom sx*1,sy*1,1,0,0,sx,sy,p^1 SetRgn // 透化ウィンドウ exist "C:\\Documents and Settings\\ユーザー名\\デスクトップ\\フォルダ名\\HSP31.txt" if strsize = -1 : goto *next2 bcopy "C:\\Documents and Settings\\ユーザー名\\デスクトップ\\フォルダ名\\HSP31.txt","C:\\Documents and Settings\\ユーザー名\\デスクトップ\\HSP31.txt" delete "C:\\Documents and Settings\\ユーザー名\\デスクトップ\\フォルダ名\\HSP31.txt" //↑の2行で、「フォルダ名」にある、「HSP31.txt」を「デスクトップ」に移動する。 goto *next2 *next2 gsel 2,2 stop *move if iparam=3 : wait 20 :end ;右クリックで終了 sendmsg hwnd ,$a1,2,z stop



この記事に返信する


inovia

リンク

2009/4/6(Mon) 18:30:40|NO.24493

ウィンドウを移動させつつグラフィックを書き換えればOKでは?
移動はMoveWindowを使う

#uselib "user32" #func MoveWindow "MoveWindow" int,int,int,int,int,int MoveWindow ウィンドウハンドル(hwnd),左上x,左上y,右下x,右下y,1
詳しい使い方とかは
http://yokohama.cool.ne.jp/chokuto/urawaza/api/MoveWindow.html

user32.asをインクルードしたほうが楽かもしれません



リョウ

リンク

2009/4/12(Sun) 16:34:35|NO.24599

すみません。もうすこし詳しく教えてください。



inovia

リンク

2009/4/12(Sun) 17:18:04|NO.24602

例えばこんな感じ

以下のスクリプトの一番上に
#global /************************************************************************/
から上のも追加してください。でないと以下のスクリプトは実行できません。


#uselib "user32" #func MoveWindow "MoveWindow" int,int,int,int,int,int //棒人間もどき buffer 1,128,280 circle 0,0,128,128,1:boxf 62,128,66,240 line 62,180,5,100:line 66,180,128,100 line 62,240,5,280:line 66,240,128,280 buffer 2,128,280 circle 0,0,128,128,1:boxf 62,128,66,240 line 62,180,45,100:line 66,180,128,60 line 62,240,30,280:line 66,240,128,240 bgscr 3,128,280,2,0,0 gsel 3,2 onclick gosub *move repeat 64 MoveWindow hwnd,cnt*8,ginfo(5),128,280,1 gcopy 1,0,0,128,280 SetRgn redraw 1 wait 12 redraw 0 MoveWindow hwnd,cnt*8,ginfo(5),128,280,1 gcopy 2,0,0,128,280 SetRgn redraw 1 wait 12 redraw 0 loop stop *move if iparam=3 : wait 20 :end ;右クリックで終了 sendmsg hwnd ,$a1,2,z return



リョウ

リンク

2009/4/17(Fri) 18:38:12|NO.24652

ありがとうございます。



ONION software Copyright 1997-2023(c) All rights reserved.