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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0402
whoさんDirectX7未解決


whoさん

リンク

2010/4/2(Fri) 18:05:05|NO.31749


#include "hmm.as" DDINIT ddscreen 640,480,1,2 ddgsel 0 ddcolor 0,0,0 ddboxf 0,0,640,480 ddcolor ,255, ddpos 0,0 ddprint "文字" ddredraw

が、「文字」と表示される時としない時があります。
なぜでしょうか?



この記事に返信する


KA

リンク

2010/4/3(Sat) 22:05:18|NO.31769

>>#include "hmm.as"
 →"hmm.as"は、何でしょうか?
  捜せば有るのでしょうが、少なくとも出所は明示して下さい。

>>「文字」と表示される時としない時があります。
 →ちらつく意味でしょうか?
  起動した回数でしょうか?
  又は別の文字が表示されるのでしょうか?

※質問は具体的に書きましょう。



くりこ

リンク

2010/4/4(Sun) 00:34:55|NO.31772

えと…KAさんの言う事ももっともなのですが、
このスクリプトをそのままスクリプトエディタにコピーしてコンパイルしたら実行できました。
テストプレイもせずに文句をつけるのは少し可愛そうかと思います。
質問者さんはわからない事があるから質問しているのであって、
質問に必要以上の質を求める必要はないと思います。

ちなみにhmmは多分HSPに同梱されているDirectXのプラグインだったと思います。
(自分も偶然インストールしてあっただけかもしれないけど、
 少なくともHSP公式サイトの「プラグイン」コーナーで紹介されていたと思います)

本題ですが、私の環境では毎回「文字」と表示されます。
おそらく表示されない場合があるというのは、画面の更新を定期的に行っていないので、
何らかの原因で画面が上書きされた場合、「文字」が消えてしまうということだと思います。
(これだけ短いスクリプトだとそれ以外考えられない)
試しに「文字」とちゃんと表示されたときに、他のプログラム(適当にスクリプトエディタとか)
を、標準サイズにして、「文字」が表示されたウィンドウに重ねてみると、
重ねた部分が真っ白(環境によって色は違うかも)になると思います。

何だかんだ言いましたけど、
原因→画面を定期的に更新していないこと。
対策→適切な部分をループする。
例↓

#include "hmm.as" DDINIT ddscreen 640,480,1,2 *main;メインラベル ddgsel 0 ddcolor 0,0,0 ddboxf 0,0,640,480 ddcolor ,255, ddpos 0,0 ddprint "文字" ddredraw await 1 goto *main;メインに飛ぶ

という事です。



GENKI

リンク

2010/4/4(Sun) 11:04:42|NO.31779

> (自分も偶然インストールしてあっただけかもしれないけど、
>  少なくともHSP公式サイトの「プラグイン」コーナーで紹介されていたと思います)

HSP MULTIMEDIA( hmm.dll )
http://hsp.tv/make/tool3.html
これですよね。別途インストールが必要です。(私は入れてませんでした。)

自分が普段使ってるプラグインは標準でついていたものなのか、後からいれたものなのか忘れてしまうってよくありますよね。
さらにバージョン違いだと確認もしにくいので、しさらにわからなくなる…。

使用したプラグイン名とバージョンを書いておいたほうが回答者に対して親切です。


> 重ねた部分が真っ白(環境によって色は違うかも)になると思います。

確かDirectX系の命令で描画した内容は、他のウィンドウを重ねたりするとその場所はHSPの標準命令の画像で再描画されてしまったと思います。
あらかじめmesなど標準命令で描画しておくと、ウィンドウを重ねたりした後はmes等の命令で描画した画面が出るようになると思います。(Easy3DやZGPだとそんな動作でした。)
ちなみに、ウィンドウを重ねる以外にもタイトルバーつかんで、ウィンドウをモニターの外に出しても確認できます。



KA

リンク

2010/4/4(Sun) 11:08:29|NO.31780

くりこさんの言う事も分かりますが

>>テストプレイもせずに文句をつけるのは少し可愛そうかと思います。
 →テストしたら”無い”と出てきたので、書いたまでです。
>>ちなみにhmmは多分HSPに同梱されているDirectXのプラグインだったと思います。
 →少なくとも、私のバージョン(3.2)には入っていません。

本題に戻りますが、HMM.AS/HMM.DLL を(不本意ながら)探して組み込みました。
が、くりこさんと同様に、いくらやっても不具合は出てきません。
(他の現象は同じです。)

既出の回答以外では
 1:使ったバージョンが古い(OS含む)
 2:ディスプレイドライバー(及びGPU)関係
 3:他のプラグインと干渉
等等。

HSPを別の場所に、まっさらな状態でインストールしてみるのも良いかと。



backdrop

リンク

2010/4/18(Sun) 15:07:23|NO.32046

わざわざHGIMGとかDMMを使わなくてもそれだけなら標準命令だけでできます

使うならDirectXを無駄にしないようにできるだけグラフィックを多く表示させましょう



AudioVisual

リンク

2010/4/18(Sun) 18:42:20|NO.32071

>わざわざHGIMGとかDMMを使わなくてもそれだけなら標準命令だけでできます

HGIMGはDirectXだけではなく独自描画機能もあります。
少し古いパソコンでは標準命令ではパフォーマンスがでないので
DirectXを使用している可能性もあります。


>使うならDirectXを無駄にしないようにできるだけグラフィックを多く表示させましょう
これは悪い考えですね。
DirectXの長所は綺麗なグラフィックをたくさん表示させれることだけではありません。
GDI描画の5倍近いパフォーマンス(Win95くらいの時代)を出すことにもあります。



M

リンク

2010/4/20(Tue) 04:55:04|NO.32112

ぼくの環境(hmm ver.1.20 / xp / directx9.0c)では、毎回きちんと表示されます。
もしかしたら、ddscreen の四番目の引数に問題があるのではないでしょうか。
hmmのドキュメントを読むと、四番目の引数に2を指定すると、「作成先をSYSTEMMEMORYに強制的に作成しようとし、空きが無い場合は失敗となる」と書いてあります。
なんらかのタイミングよってシステムメモリへの作成が失敗扱いとなり、それが原因で、表示されたり、しなかったりしてしまうのではないでしょうか?

解決案A:

DDINIT wait 50 ;初期化後、しばらく待ち時間を入れてみる ddscreen 640,480,1,2

解決案B:

DDINIT ddscreen 640,480,1,0 ;ビデオメモリを優先し、空いていなければシステムメモリを使うようにする



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