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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0521
おぼシューティングゲームで電光掲示板が作りたい3解決


おぼ

リンク

2017/5/21(Sun) 20:45:36|NO.79921

お世話になっております。おぼです。

表題の通り、シューティングゲームのメイン画面の上に電光掲示板を作りたいのです。

掲示板のほうはあちこち探していると


#define img_size_x 320 //表示したいサイズ(X方向) #define img_size_y 32 //表示したいサイズ(Y方向) [文字の大きさ] screen 0,img_size_x,img_size_y title "HSP 3.0 電光掲示板" font "MS ゴシック",img_size_y,1 hyouzi_str = "電光掲示板風表示♪★abcdefg1234567890" str_len = strlen (hyouzi_str) str_x = img_size_x + 10 //文字の位置 str_y = 0 dot_k = 2 //ラインの間隔(2〜) futosa = 0 //ラインの太さ(0〜) *main redraw 0 //背景 color 10,10,10 : boxf if str_len*(img_size_y/2 + 1) > -str_x { str_x-- //文字の移動 } else { str_x = img_size_x + 10 //位置リセット } //文字 pos str_x,str_y color 0,255,0 print hyouzi_str color 50,50,50 //線(横) repeat img_size_y/dot_k + 1 boxf 0,dot_k*cnt,img_size_x,dot_k*cnt+futosa loop //線(縦) repeat img_size_x/dot_k + 1 boxf dot_k*cnt,0,dot_k*cnt+futosa,img_size_y loop redraw 1 await 1 goto *main

というのを見つけました。ただこのスクリプトを実行すればわかるんですが、表示速度が早すげるんです。速度を遅くする方法がお分かりの方おられましたらご教授願います。

次に、できた電光掲示板を、シューティングゲームの上部に配置する
http://fast-uploader.com/file/7050922116600/
こんな感じです。

を実装するにはどうすればいいのかかなり困っています。

この解決方法もお分かりの方おられましたらご教授願います。

以上2点よろしくお願いいたします。



この記事に返信する


 

リンク

2017/5/21(Sun) 21:08:01|NO.79922

最初の点だけ。
とりあえず、よくスクリプトを読みましょう。
画面は最後にある「goto」命令にて最初の方に戻っていて、「loop」のような感じになってます。
その「goto」命令の前にある「await」命令が処理の一時停止を行っていることが分かると思います。
要するにここの数値を変更し、処理の一時停止を行う時間を変えればいいと言う事になりますね。
「await 10」や「await 5」にしてみれば遅くなります。



⿁⿓(Agrif)

リンク

2017/5/21(Sun) 21:30:36|NO.79923

サンプルです。

//画面を中央に作成 screen 0, 640, 480, 0, ginfo(20) / 2 - 640 / 2, ginfo(21) / 2 - 480 / 2 //タイトル名 title "HSP 3.0 電光掲示板" //表示する文字列 hyouzi_str = "シューティングゲーム" //表示する文字列の長さ str_len = strlen (hyouzi_str) //電光掲示板風の高さ img_size_y = 40 //初期の文字座標X str_x = ginfo(10) + 10 //初期の文字座標Y str_y = 2 //ドットの数の設定 dot_k = 2 //電光掲示板風の線の太さ futosa = 0 //シューティングゲームの枠の太さ s_bar = 5 //移動する量(↓大体このぐらいが丁度いい) mspeed = 10 //移動処理の速度(↓大体このぐらいが丁度いい) speed = 5 //処理開始 repeat -1 //描画開始 redraw 0 //背景色設定 color 10,10,10 : boxf //文字の設定 font "MS ゴシック", img_size_y, 1 //文字の移動処理 if strmove \ speed = 0 { if str_len * ( img_size_y/2 + 1 ) > -str_x { str_x = str_x - speed } else { str_x = ginfo(10) + 10 } } //文字描画 pos str_x,str_y color 0,255,0 mes hyouzi_str //文字色設定 color 50,50,50 //線(横) repeat img_size_y/dot_k + 1 boxf 0,dot_k*cnt,ginfo(10),dot_k*cnt+futosa await 0 loop //線(縦) repeat ginfo(10)/dot_k + 1 boxf dot_k*cnt,0,dot_k*cnt+futosa,img_size_y await 0 loop //枠的な何かを描画 color 255,255,255 boxf s_bar, img_size_y+(s_bar+1), 640 - (s_bar+1), 480 - (s_bar+1) //================================== // ここから(一応ちょっとだけやった) //================================== color 0, 0, 64 boxf s_bar, img_size_y+(s_bar+1), 640 - (s_bar+1), 480 - (s_bar+1) color 255,255,255 pos s_bar+4, img_size_y+(s_bar+1) font "メイリオ", 20, 1 mes "SCORE:" + strf("%08d", score) score = score + 100 //================================== // ここまでは自分でやってください //================================== //文字の移動処理 strmove = strmove + 1 //描画終了 redraw 1 //時間待ち await 16 //ループ loop



おぼ

リンク

2017/5/21(Sun) 22:40:46|NO.79924

解答くださりありがとうございます。おぼです。

>>「なまえがわからない」さん
おっしゃる通り試してみるとスピードがいろいろ変わりました。こういう制御があることを覚えておこうと思いました。
ありがとうございました。

>>⿁⿓(Agrif)さん
ほぼ完成に近いスクリプトをありがとうございます。
困っていた部分がよく分かったので本当に助かりました。
ありがとうございました。

おぼ



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