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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0209
紅蓮HSP2なのですが・・・4未解決


紅蓮

リンク

2009/2/9(Mon) 21:51:32|NO.23301

HSP3じゃなくて申し訳ありません。ここしか見つからなかったもので・・・
自分はhsp261を使っています。
課題で出されたおみくじを作るのですが、
単純じゃダメらしく
いろいろ工夫をしようとしたのですが、画像と音がうまくいきません。
画像は、大吉の時に大吉の画像、吉の時に吉の画像をといった感じにしたいのですが
うまくいきません。(画像がランダムに出てしまいます。)
音は、大吉の時に大吉の音を、吉の時に吉の音をといった感じにしたいのですが
音は全く再生されません。

自分で試行錯誤して作ってみたものです。
どう直せばいいかご指導お願いします。

randomize
picload "おみくじ.bmp"
width 800,600
objsize 445,108
pos 177,229
button "おみくじ",*kuji
stop
*kuji
rnd a, 5
if a=0 : kekka="大吉"
picload "大吉.jpg"
mmload "大吉.wav",0:mmplay 0
if a=1 : kekka="中吉"
picload "中吉.jpg"
mmload "中吉.wav",1:mmplay 1
if a=2 : kekka="吉"
picload "吉.jpg"
mmload "吉.wav",2:mmplay 2
if a=3 : kekka="凶"
picload "凶.jpg"
mmload "凶.wav",3:mmplay 3
dialog kekka,0,"おみくじ"
stop



この記事に返信する


GENKI

リンク

2009/2/9(Mon) 21:54:12|NO.23302

HSP2への質問は、HSP2用の掲示板が用意されていますのでそちらをご利用ください。
http://www.onionsoft.net/hsp/bbs/hspbbs.cgi



Mimura

リンク

2009/2/9(Mon) 22:27:34|NO.23303

ちょこっと首を突っ込んでみると、

HSP3 と HSP2 の文法がごちゃ混ぜになってますね・・。
HSP3 で hsp261cmp.as を読み込んでいる。というのなら納得できますが・・。

HSP2 でしたら
mmload -> sndload
mmplay -> snd

にそれぞれ置換する必要があるかと思います。

・・HSP2掲示板への誘導が出ているのに書き込んでいいのかなぁ・・。という気はしますが・・。



Kpan

リンク

2009/2/9(Mon) 22:33:44|NO.23304

普通にHSP3を利用しては? HSP2のコードじゃないといけない課題なんですかね?
HSP2であれば、GENKIさんが書いてるようにHSP2掲示板の方へどぞ〜。



M

リンク

2009/2/10(Tue) 00:42:48|NO.23307

if文の使い方に問題があります。
ifで判断した結果で複数行の命令を実行させるには、{}でくくらなければいけません。

間違い(これでは、aが0のとき、kekka="大吉" しか実行してくれません)

if a=0 : kekka="大吉" picload "大吉.bmp" ;以下の二行は、aの内容に関係なく実行される sndload "大吉.wav",0:snd 0 ;

正(aが0のときに実行したい命令を、{}でくくる!)

if a=0{ kekka="大吉" picload "大吉.bmp" sndload "大吉.wav",0:snd 0 }

現状では、kekkaの内容を表示することだけがおみくじになっており、
bmpやwavを、上から順番に高速に表示・再生しているプログラムになってしまっています。

また、aが4になったときの判断がないため、たまに(1/5の確立で)エラーが出るはずです。
これは、変数kekkaの型がきちんと定義されていないため、文字列型の値を指定しなければいけないところに整数型の値がきてしまうからです。
プログラムの冒頭部分にでも sdim kekka とし、"変数kekkaは文字列型の変数ですよ"と、きちんと決めておいてあげれば、回避できるはずです。

いずれも、どの言語を使っても起こしうるミスです。よいミスをしていると思います。



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