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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0714
N.S.HSP3 から HSP2 への互換14解決


N.S.

リンク

2019/7/14(Sun) 11:28:36|NO.87863

私は今、家ではHSP3,部活ではHSP2と、別々バージョンを使用しています。
同じスクリプトをそれぞれ同じように実行させたいのですが、
どうしたらいいのでしょうか?



この記事に返信する


N.S.

リンク

2019/7/14(Sun) 11:29:57|NO.87864

補足です。
主にHSP3からHSP2に互換したいのですが...



ソラ

リンク

2019/7/14(Sun) 16:54:18|NO.87865

無理です。
HSP2とHSP3で仕様の違う命令や関数を1つでも使用している以上、同じスクリプトで同じ結果を得ることはできません。
(仮にコンパイラとか作り直したらそれもうHSP2じゃないですしお寿司・・・)
HSP2の仕様に沿ってHSP3の関数や命令を再現したプログラムを組んで、それをスクリプトの先頭に加えればできるかもしれません。
一番簡単なのはHSP3にアップデートすることですね。



科学太郎

リンク

2019/7/14(Sun) 19:58:13|NO.87866

> 同じスクリプトをそれぞれ同じように実行させたいのですが、
> どうしたらいいのでしょうか?
HSP2 から HSP3 として実行するには「hsp261cmp.as」というファイルを
インクルードすると実行できるようになりますよね。

これと同じように HSP3 から HSP2 として実行できる「hsp351cmp.as」というファイルを
自分で用意すれば全部ではありませんが、HSP2 でも実行できると思います。

しかし、HSP3 で標準になった
・ユーザ定義命令
・ユーザ定義関数
・実数型
などなどは簡単には HSP2 では実行できませんね。

> 私は今、家ではHSP3,部活ではHSP2と、別々バージョンを使用しています。
基本的に学校などの部活で HSP2 から HSP3 にバージョンアップする方向で
話し合いをする必要があると思います。

顧問の先生がきっと古い方なのでしょうかね。
だとしたら顧問の先生に時代遅れだから一緒に HSP3 を楽しく学びましょう。
という感じで説得する方が良いと思います。



GENKI

リンク

2019/7/15(Mon) 00:18:17|NO.87870

HSP3側のスクリプトを工夫すればいいと思います。
HSP3で書くときに、HSP2では使えない機能を使わないように書けばいいだけです。もちろんHSP3用のモジュールやプラグインは使えません。いっそ家でも部活用スクリプトはHSP2を使ったほうが楽だと思います。HSP2とHSP3は両方インストールして使えますしね。
部活の開発環境をHSP3に変えるのが当然ベストですが、おそらくそれがどうしても出来ないのだと思います。変えられない方を変えるより、自分の方で折れてあげたほうが解決は早いです。
部活はHSP2で適当に力抜いて対処して、家ではHSP3で全力プログラムしましょう。



N.S.

リンク

2019/7/17(Wed) 16:50:41|NO.87878

いろいろまご意見ありがとうございます。
ちなみに、問題の発生しているスクリプトは

title"ゆか、かべtest"
buffer 1 picload "デバッグ用map.jpg";問題あり screen 0 ;自分の座標 ten=0 fall=0 wallhitl=0 wallhitr=0 ←=0 →=0 ↑=0 rval=0 bval=0 gval=0 charasize=32 x=10 y=300 mx=2 my=2 hantex=0 hantey=0 repeat cls pos 0,0 gcopy 1,0,0,600,600 title""+ten+","+fall+","+wallhitl+","+wallhitr pos x,y color 0,0,0 font "MSゴシック",charasize mes "●" getkey ←,37 getkey →,39 getkey ↑,38 ;同時入力防止 if →=1 and ←=1{→=0:←=0} ;判定処理 if ten=1{↑=0};ここはあとで変える if wallhitl=1{←=0} if wallhitr=1{→=0} if →=1{x=x+mx} if ←=1{x=x-mx} if ↑=1{y=y-my:fall=0} if fall=1{y=y+my} ;判定初期化 →=0 ←=0 ↑=0 ten=0 fall=1 wallhitl=0 wallhitr=0 ;ここから床、壁判定(wallhitは壁、tenは天井の、fallは1で空中) ;黒 hantex=x+charasize hantey=y+charasize;した hantey0=y hantex0=x;判定用座標 repeat 2 hantey0=hantey0+cnt-1 repeat charasize-4 pget x+cnt+2,hantey0 if (rval=0)&(bval=0)&(gval=0):ten=1 loop loop repeat 2 hantey=hantey-cnt+1 repeat charasize-4 pget x+cnt+2,hantey if (rval=0)&(bval=0)&(gval=0):fall=0 loop loop hantex=x+charasize hantey=y+charasize;した hantey0=y hantex0=x;判定用座標 repeat 2 hantex0=hantex0+cnt-1 repeat charasize-4 pget hantex0,y+cnt+2 if (rval=0)&(bval=0)&(gval=0):wallhitl=1 loop loop hantex=x+charasize hantey=y+charasize;した repeat 2 hantex=hantex-cnt+1 repeat charasize-4 pget hantex,y+cnt-2 if (rval=0)&(bval=0)&(gval=0):wallhitr=1 loop loop ;判定位置確認用 color 255,1,0 line x-1,0,x-1,600 color 1,255,0 line hantex-1,0,hantex-1,600 color 1,0,255 line 0,y+1,700,y+1 color 150,1,0 line 0,hantey+1,700,hantey+1 await 5 loop

です。
HSP2では、ちゃんと十字キーを押したら移動できますが、
HSP3では、常に壁に当たって、天井にも当たっているうえ、落下もできない状況です。
(キャラクターの座標の周りが黒色なら当たっているという判定を使用しています。)
もしこの中にHSPのバージョンによって使用が違う命令があるのなら、
できる限り教えてもらえるとたすかります...

わかりにくくてすいません...



N.S.

リンク

2019/7/17(Wed) 16:52:26|NO.87879

あ、;問題あり(6行目)は気にしないでください。
ただ、黒い色を含んだ画像ファイルがないと作動しません。



さか

リンク

2019/7/17(Wed) 22:10:29|NO.87880

部活のPCにHSP2とHSP3の両方を入れれば良いのではと思うのですが。
同居出来ますよね?
HSP3が動かない?ほど古いPCなど理由があるのでしょうか。



advdx

リンク

2019/7/17(Wed) 22:28:46|NO.87881

関係ない話ですが自分の足を引っ張る要素は潔く切り捨てるのがいいです
つまりこの場合部活動です



常磐祐矢

リンク

2019/7/18(Thu) 00:41:21|NO.87883

rval、gval、bvalですね。HSP3ではginfo_r、ginfo_g、ginfo_bに変わっています。
他の方がおっしゃっているように、部活で使っている環境の改善が一番良いと思います。
1人で難しいのでしたら他の部員の人といっしょに、顧問の先生に環境の更新について話してみて下さい。
HSP3の開発環境は、HSP2の環境と完全に独立しますので、HSP3入れたからと言ってHSP2が使えなくなる事はありません。

ちなみに、もしパソコンが古いのだとしても、Windows98以降ならHSP3は動きます(最新のHSP3.5は無理なようですが)。



N.S.

リンク

2019/7/18(Thu) 17:23:39|NO.87884

>さか

うちのパソコン部、結構制限されているんですよ...

>advdx

入った以上、退部は禁止されていますので、続けるしかないです。

>常磐祐矢

なるほど...
後で調べてみたら、確かにginfo_系に変わっているものが多いですね。
これからは使用の違いに気をつけて利用しようとおもいます。



沢渡

リンク

2019/7/18(Thu) 20:09:32|NO.87885

HSP3とHSP2の違いについて、主な部分がザッとこのページ↓にまとめられているようなので、
参考になれば。
https://yuki-sato.com/hsp/hsp/hsp0-3.htm
ただ、違いについて完全に網羅しているわけではないので、ヘルプやマニュアルとにらめっこして
試行錯誤でどうにかしなくてはならない場面も多いかもしれませんが。

(HSP2は昔少しだけ使ったことありますが、
 読んでいて『ここまで不自由な言語だったっけ?』と驚かされました。
 昔の非力なマシン向けという都合上仕方ないにしても、
 関数無い、実数無い、*と/の優先演算無い、button gosub無いで、
 『今になってこれを使わなければならないなんて大変ですね』と同情します)



さか

リンク

2019/7/18(Thu) 22:26:09|NO.87886

>うちのパソコン部、結構制限されているんですよ...
そうですか。
でも制限の仕方はおかしいですね。
別のものを入れるわけじゃないですから。

顧問の先生の考えを聞いてみたいものです。



ソラ

リンク

2019/7/18(Thu) 22:37:28|NO.87887

そのパソコン部の顧問の先生は、パソコンやプログラミングに理解のある人ではなさそうですね。



GENKI

リンク

2019/7/20(Sat) 00:31:45|NO.87891

正直だいぶHSP2忘れてるから答えられる自信ないなと思っていたところもあったのですが、さらっと答える祐矢さんかっこいい。


> うちのパソコン部、結構制限されているんですよ...

学校って通っている間は絶対的存在ですが、外から見るようになると珍妙な風習が生きていたりする奇妙な閉鎖環境だと気づいたりするものです。

制限されている理由にもよりますが、部活の時間はUSBメモリーにインストールしたHSP3で作業っていう手もあります。
先生にコードレビューされるとバレちゃいますが、生徒間だけなら全員で同じことやれば大丈夫大丈夫。
学校側は最新技術に興味がなさそうなので、hgimg4使ったりDishでスマホアプリ作ってもばれないと思います。
で、文化祭あたりでHSP3作品展示して、見に来た保護者達に学校の理不尽と怠慢を訴えると完璧かも。
(もの凄く悪い顔をしながらアドバイス)


禁止の理由としては、勝手にソフトをインストールされると困るとかそんなことだろうと思います。ウイルスの持ち込みや違法ソフトを警戒してる気がします。対策するには管理コスト(人的、金銭的)かかるのが困るんじゃないかな。
手っ取り早く禁止するだけだと上記の例のようにルール違反やリスク増加を助長する結果に繋がりかねないので、真面目に問題に取り組んだほうがいいと思うんですけどね。生徒側からできる行動もあるけど…おっと話が長くなるので省略。
しかし、これは予想、想像の話だから実際の理由は話を聞いてみないとわからないですね。



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