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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0621
xxx文章を横スクロールさせる構文について3解決


xxx

リンク

2020/6/21(Sun) 00:08:26|NO.90825

題名通り、文章を横スクロールさせる構文について質問します。

下記の構文で

x=100
repeat
redraw 0
color 255,255,255:boxf
pos x,100:color 0,0,0
mes "文字スクロールをしています"
redraw 1
x=x-1
wait 1
loop

『x=x-1』という構文があるのですが、この文の意味は「一定の間隔で文章を1ピクセルずつ動かせ」という命令なのでしょうか。
教えていただければ幸いです。



この記事に返信する


沢渡

リンク

2020/6/21(Sun) 10:06:07|NO.90827

「x=x-1」というのは「変数xから1を引いた数値をxに代入する」という意味です。
冒頭でx=100と代入されていますので、そこから「x=x-1」とすると、
xの内容は99になります。
これを「repeat〜loop」で無限に繰り返していますから、99の次は98、
その次は97、96、95……と順々に1ずつ減っていくことになります。

では、このxを使って何をしているのかというと、半ばあたりにある
「pos x,100」です。
これは文字なり画像なりオブジェクトなりを表示する座標
(カレントポジション)を設定する命令で、
たとえばxの内容が100なら(100,100)の位置に何かを表示しろということに
なります。
これを実行した上で次のmes文を実行すると、
(100,100)の位置に「文字スクロールをしています」というテキストが
表示されます。

そして、xの値はループを繰り返すごとに減ってゆきますから、
次は(99,100)の位置に、その次は(98,100)の位置に……ということになります。



あらや

リンク

2020/6/21(Sun) 21:22:37|NO.90829

勝手に補足させていただくと、
通常数学では『x=100』と書くと
イコールの左辺と右辺は同じ大きさという意味になりますが

プログラムではイコールは、
右辺の数値を左辺に入れるという意味になります。

『x←100』と書いた方が意味が理解しやすいかもしれません。



ついでとして
『x=x-1』と同じ意味になる書き方は
x-=1
x--
などもあります。



xxx

リンク

2020/6/21(Sun) 22:21:33|NO.90831

返信が遅れてしまい申し訳ございません。

教えていただきありがとうございます。さらに構文全体の意味まで書いてくださり本当にありがとうございました。
その数字はピクセル数ではなかったのですね。この座標が何ピクセルかは自分で調べようと思います。



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