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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1031
ふぁるこのプログラムの間違いを教えてください6解決


ふぁる

リンク

2012/10/31(Wed) 19:13:09|NO.50387

HSP初心者です。
いくら試してもプログラムが直らないので、
よければ間違いを指摘してくださると嬉しいです。

多分、バッファについてのことや、
celloadやcelputの使い方をいまいちよくわからないまま
プログラムを組んでいるから起きたと思われます。
でもサイトを調べてもあまりよく理解できず…



#include "hsp3util.as" screen 0,720,540 mbox_id=1 mbox2_id=2 mbox22_id=3 kyoushitsu_id=4 opening2_id=5 opening3_id=6 celload "mbox.png",mbox_id celload "mbox2.gif",mbox2_id celload "mbox22.gif",mbox22_id celload "kyoushitsu.jpg",kyoushitsu_id celload "opening2.jpg",opening2_id celload "opening3.jpg",opening3_id kyoushitsu_x=0 kyoushitsu_y=0 mboxpos_x=40 mboxpos_y=380 mbox2pos_x=640 mbox2pos_y=500 mespos_x=60 mespos_y=400 text_wait=40 *top_menu cls picload "truetitle.png" pos 275,400 objsize 120,40 objmode 2 font "HGS創英角ポップ体",25,0 button "スタート",*start stop *start cls buffer 1,720,540 celput opening2_id,0 gsel 0 repeat 257 redraw 0 color:boxf gmode 3,,,cnt pos 0,0 gcopy 1,0,0,720,540 wait 1 redraw 1 loop text 10 ;後で数値を100に直す color 0,0,0 font "HG丸ゴシックM-PRO",20,1 sdim opening opening(0)="文章1" opening(1)="文章2" opening(2)="文章3" opening(3)="\n\n" opening(4)="文章4" opening(5)="文章5" opening(6)="文章6" a=0 y=140 while (a<7) pos ginfo_winx/2-(strlen(opening(a))*(20/2))/2,y+20*a emes opening(a) pos 100 a=a+1 wend wait 30 repeat pos 440,380 font "HG丸ゴシックM-PRO",12,0 color 0,0,0 mes "画面をクリック!" onclick *jump wait 100 pos 389,354 celput opening3_id,0 wait 100 loop stop *jump click=0 if click<1{ if wparam&1{ click++ goto *main } } stop *fade buffer 1,720,540 pos 0,0 gcopy 0,0,0,720,540 gsel 0 repeat 257 redraw 0 color:boxf pos 0,0 gmode 3,,,256-cnt gcopy 1,0,0,720,540 wait 1 redraw 1 loop buffer 1,720,540 pos kyoushitsu_x,kyoushitsu_y celput kyoushitsu_id,0 pos mboxpos_x,mboxpos_y celput mbox_id,0 gsel 0 repeat 257 redraw 0 color:boxf gmode 3,,,cnt pos 0,0 gcopy 1,0,0,720,540 wait 1 redraw 1 loop return *main gosub *fade font "HG丸ゴシックM-PRO",25,1 ftxt(0)={" 文章1 "} ftxt(1)={" 文章2 "} onclick goto *y1 y=0 *y1 pos kyoushitsu_x,kyoushitsu_y celput kyoushitsu_id,0 pos mboxpos_x,mboxpos_y celput mbox_id,0 //celloadで読み込んだ画像を描画 wait 10 pos mespos_x,mespos_y text text_wait split ftxt(y),"\n",sentence //改行毎に配列に分割 linemax=stat //分割された数 wait 40 a=0 while (a<linemax) emes sentence(a) wait 40 a=a+1 wend y+ repeat pos mbox2pos_x,mbox2pos_y celput mbox2_id,0 wait 80 pos mbox2pos_x,mbox2pos_y celput mbox22_id,0 wait 80 loop stop

このプログラムを実行した際に、最後の状態で、
座標が(mboxpos_x,mboxpos_y)の場所に
celloadで読み込んだmbox.pngを表示させたいのですが、
何故かkyoushitsu.jpgが表示されてしまいます…

日本語がわかりにくく申し訳ありません。
ミスを教えてください。お願いいたします。



この記事に返信する


@key

リンク

2012/10/31(Wed) 19:20:13|NO.50388

まず、こちらの環境にはcelloadにある画像ファイルはありません
そのような場合自分で解決して欲しいんですが、どうしてもわからなければzipに画像とソースコードを
圧縮してどこかにアップロードしてリンクを張って下さい



ふぁる

リンク

2012/10/31(Wed) 19:30:12|NO.50389

申し訳ありません。
急遽必要データだけでアップしました。
これでできるでしょうか…?

http://kie.nu/wpZ



てれてれ

リンク

2012/10/31(Wed) 19:51:00|NO.50393

恐らくですが、
celloadで使用しているウィンドウIDを、
48行目のbuffer等で上書きしてしまっていることが原因では無いでしょうか?
このウィンドウIDを例えば[100]などcelloadで使用していない値に置き換えることで正常に動作するかと思います。



@key

リンク

2012/10/31(Wed) 19:58:01|NO.50394

truetitle.pngが無いんですが・・・
まあその行を無視すれば進めるので再アップしないでくれて構いません

それで問題の件ですが、最初の定義のmbox_id=1をmbox_id=10などの1以外にすれば治ります
原因は自分もよくわかりませんがとりあえず解決策を言いました



@key

リンク

2012/10/31(Wed) 19:59:57|NO.50395

よくプログラムを見ていませんでした
てれてれさんの通り、bufferでウィンドウID1を画像を読み込んだ後に使用しています
mbox_idを1以外にしましょう



ふぁる

リンク

2012/10/31(Wed) 20:04:57|NO.50397

>>てれてれさん、@keyさん

お二方ともありがとうございます。
言われたとおりに変えたところ、ちゃんと動きました!

ありがとうございます。助かりました。

あとtruetitle.pngがなくて申し訳ありませんでした。



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