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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0530
yasu左クリック(タッチ)からの進み方がわかりません3解決


yasu

リンク

2014/5/30(Fri) 02:09:38|NO.62248

初心者ですが、下記のようなスクリプトを書きましたが、思っているように動きません。

内容的にはまず、スタート画面、BGMと進み、*click1にある条件(X座標、Y座標)がクリック(タッチ)されたら、
*MAINに進むという風にしたいのですが、いろいろ調べましたがわからなくて困っています。

すみませんが教えてください、お願いします。


#include "hsp3dish.as
;BGMスタート
mmload "sanpo.wav",1,1:mmplay 1

cls
celload "start.jpg",1
celload "main.jpg",2

*START

;スタート画面表示
redraw 0
pos 0,0:gcopy 1,0,0,320,480
redraw 1
onclick gosub *click1


*click1

mx = mousex :my = mousey ; マウスの座標
if ((mx>0)and(mx<170)and(my>230)and(my<300)) : mmload "pon.wav",3 : mmplay 3 : goto *MAIN
stop

*MAIN

;左クリック設定
onclick gosub *click2
;メイン画面表示
redraw 0
pos 0,0:gcopy 2,0,0,320,480
redraw 1
stop



この記事に返信する


リンク

2014/5/30(Fri) 10:47:49|NO.62251

スクリプト(プログラム)は小文字の<PRE>〜</PRE>で囲むと見やすく表示できます。
スクリプト(プログラム)を公開する場合は、コピペしてすぐに実行できる状態にしたほうが、回答がつきやすくなります。


では本題に入ります。

onclick gosub *click1と書いていますが、このプログラムを見る限りサブルーチンジャンプ(gosub)する必要はありません。
サブルーチンジャンプ後はreturnでサブルーチンから復帰する必要があります。
もし、returnを使わずに何度もサブルーチンジャンプをした場合、 ネストが深すぎてエラーが発生します。
詳しくは、「hsp gosub」等で検索してみてください。

onclickの後に、stop命令を書かずに*click1と書いた場合、クリックしていないにもかかわらず、メイン画面にジャンプする可能性があります。
onclickとonclickでジャンプするラベルの間には、stop命令等を書かなければいけません。

;スタート画面表示 onclick goto *click1 stop *click1 if ((mousex>0)and(mousex<170)and(mousey>230)and(mousey<300)) :Dialog "スタート画面がクリックされました。": goto *MAIN gosub回数+1 title ""+gosub回数 stop *MAIN ;左クリック設定 onclick goto *click2 Dialog "メイン画面" ;メイン画面表示 stop *click2 Dialog "メイン画面がクリックされました"



SADOUS

リンク

2014/6/1(Sun) 17:25:07|NO.62267

いじってて気づいたんですが、hspdishってonclick対応してないらしいですよ。
僕はアンドロイド端末が何ので試用はできませんが、getkeyの
左クリック(code=1)がシングルタップに繋がっているようです。

#include "hsp3dish.as *START repeat redraw 0 color 0,0,0:boxf color 255,0,0:boxf 0,230,170,300 getkey tap,1 : if tap=1:goto*main redraw 1 wait 1 loop *MAIN redraw 0 color 255,0,0:boxf redraw 1 wait 100 end



yasu

リンク

2014/6/3(Tue) 21:22:00|NO.62284

SADOUSさん あさん getkeyで解決できました。本当にありがとうございました。



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