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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0729
MSX68000実行時にウインドウ出現位置安定方法5未解決


MSX68000

リンク

2021/7/29(Thu) 15:32:08|NO.93357

 作り始めて一年半たちますが、まだチマチマとゲーム完成を進めていますw

 でタイトル通りの質問ですが、作ったHSPプログラムをF5で実行すると、
(マウスポインタの位置によって?)実行ウインドウの出る位置が毎回違います。
この位置を毎回固定(画面中央とか、左上とか)する方法は、ないものでしょうか?

 確かあったような…



この記事に返信する


沢渡

リンク

2021/7/29(Thu) 15:52:42|NO.93358

たとえば、初期状態で画面の中央にウィンドウを表示したいのなら、

#packopt hide 1 //初期ウィンドウが見えない状態にしておく screen 0,800,600,2 //非表示状態でウィンドウ初期化 width ,,(ginfo_dispx-ginfo_sizex)/2,(ginfo_dispy-ginfo_sizey)/2 gsel 0,1
こんな感じでしょうか。



メルクーフ

リンク

2021/7/29(Thu) 18:53:57|NO.93360

 widthを使う以外にも、screenとbgscrなら第5、6パラメータを-1以外にすれば好きな位置に表示できます。例えばscreen 0,800,600,0,100,50とすれば800×600のフルカラーの普通のウインドウをディスプレイの左上から(100,50)の位置に表示できます。省略した場合、-1が代入され、-1だとランダムな場所に表示されます。
 ちなみに-2以下なら指定した位置に表示してくれます。あまりマイナスは指定しない方がいいとは思いますが。

 それでも一瞬、想定外の場所に640×480のウインドウが表示されます。#packopt hide 1は実行ファイルにした時にそれを表示しないようにしてくれる物で、F5では無効だと思うんですが・・・3.6ではできるんですか?
 3.51だと沢渡さんのスクリプトを実行した場合、やっぱりF5では一瞬表示されますが。



沢渡

リンク

2021/7/29(Thu) 21:12:30|NO.93363

#packopt hide 1
はあくまでも実行ファイル化したした時に備えてのものですが、
言葉が足りませんでした。申し訳ありません。



Crystal

リンク

2021/7/30(Fri) 08:44:32|NO.93372

画面中央にするなら、C:\hsp(3.x)\sample\demo\demo.hspにあるソースコードから抜粋した
ものがあります。

x=(ginfo_dispx-600)/2:y=(ginfo_dispy-400)/2 screen 0,600,400,0,x,y
この場合、600と400という数字が通常のスクリーン命令で、縦と横の長さを変更します。



MSX68000

リンク

2021/7/31(Sat) 19:45:20|NO.93404

 ありがとうございます。早速実装します。
以前どっかで見た、かなり簡単な方法だという事は思い出していたが、簡単でしたねw



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