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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1230
初心者resizeobjでの多数のオブジェクト移動の際の残像2解決


初心者

リンク

2015/12/30(Wed) 18:51:09|NO.73868

初投稿です。
HSPを学び始めて1か月ほどの者です。

現在、オンラインゲームのダメージ計算シミュレータを制作中なのですが、タイトルの件で困っております。
制作中のシミュレーターの性質上、どうしても設置オブジェクトが多くなってしまうので(多い時で200個程。主にinput,combox,chkbox)
マウスホイールでの画面スクロールを可能にし、ウィンドウサイズをコンパクトにまとめたいのですが、オブジェクトを移動させたときに残像が残ってしまいます。
オブジェクトにカーソルを合わせると正常に表示されるのですが、可能であれば残像が残らないよう移動させたいです。

スクロールのスクリプトはだいたいこのような感じです。
改善策がありましたら是非ご教授頂ければと思います。


#include "obj.as" dim obj_ID,24 ;各オブジェクトのID格納変数 dim obj_pos_x,24 ;各オブジェクトのx座標格納変数 dim obj_pos_y,24 ;各オブジェクトのy座標格納変数 pos_x=100 pos_y=100 repeat 24 ;オブジェクト設置 if cnt\2=0 : { pos pos_x,pos_y input a obj_ID(cnt)=stat obj_pos_x(cnt)=pos_x obj_pos_y(cnt)=pos_y pos_x+=70 } if cnt\2=1 : { pos pos_x,pos_y chkbox "test",a obj_ID(cnt)=stat obj_pos_x(cnt)=pos_x obj_pos_y(cnt)=pos_y pos_x+=70 } if (cnt+1)\4=0 : { pos_x=100 pos_y+=40 } loop repeat ;マウスホイール回転取得 await 10 wheel=mousew if wheel!0 : { gosub *wheeljump } loop *wheeljump ;回転時にオブジェクトの移動 if wheel>0 : { repeat 24 obj_pos_y(cnt)+=50 obj_pos=0,0,obj_pos_x(cnt),obj_pos_y(cnt) resizeobj obj_ID(cnt),obj_pos,2 loop } if wheel<0 : { repeat 24 obj_pos_y(cnt)-=50 obj_pos=0,0,obj_pos_x(cnt),obj_pos_y(cnt) resizeobj obj_ID(cnt),obj_pos,2 loop } return



この記事に返信する


暇人

リンク

2015/12/30(Wed) 19:59:46|NO.73878

#module

#uselib "user32.dll"
#func SetWindowPos "SetWindowPos" int,int,int,int,int,int,int

#deffunc moveobj int v1,array v2

sx=v2(0):sy=v2(1):x=v2(2):y=v2(3)
if v3 {
getobjsize m,v1 ;getobjsizeでm.0からw,h,x,yが代入される
if stat=-1 : return stat
}
SetWindowPos objinfo_hwnd(v1),0,x,y,0,0,$315
return stat
#global
を追加して
> resizeobj obj_ID(cnt),obj_pos,2

> moveobj obj_ID(cnt),obj_pos
に変更



初心者

リンク

2015/12/30(Wed) 20:09:35|NO.73881

暇人さん

非常に助かりました!ありがとうございます!



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