スクリーンのサイズ変更の事について
ikemendesu 2013/6/4(Tue) 22:19:54|NO.54568
スクリーンは初期のサイズよりは小さくできますが
大きくはできませんよね。
スクリーンのサイズにcnt命令入れて大きくするようなソースコードを作ったら
エラーが起きてしまいます
ですがこれだとエラーはおきません。。
gosub*aaa
screen 0,201,201,0,0,0
gosub*aaa
screen 0,202,202,0,0,0
gosub*aaa
screen 0,203,203,0,0,0
gosub*aaa
screen 0,204,204,0,0,0
gosub*aaa
screen 0,205,205,0,0,0
gosub*aaa
screen 0,206,206,0,0,0
gosub*aaa
screen 0,207,207,0,0,0
gosub*aaa
screen 0,208,208,0,0,0
gosub*aaa
screen 0,209,209,0,0,0
gosub*aaa
screen 0,210,210,0,0,0
gosub*aaa
screen 0,211,211,0,0,0
gosub*aaa
screen 0,212,212,0,0,0
gosub*aaa
screen 0,213,213,0,0,0
gosub*aaa
screen 0,214,214,0,0,0
gosub*aaa
screen 0,215,215,0,0,0
gosub*aaa
screen 0,216,216,0,0,0
gosub*aaa
screen 0,217,217,0,0,0
gosub*aaa
screen 0,218,218,0,0,0
gosub*aaa
screen 0,219,219,0,0,0
gosub*aaa
screen 0,220,220,0,0,0
gosub*aaa
screen 0,221,221,0,0,0
gosub*aaa
screen 0,222,222,0,0,0
gosub*aaa
screen 0,223,223,0,0,0
gosub*aaa
screen 0,224,224,0,0,0
gosub*aaa
screen 0,225,225,0,0,0
gosub*aaa
screen 0,226,226,0,0,0
gosub*aaa
screen 0,227,227,0,0,0
gosub*aaa
screen 0,228,228,0,0,0
gosub*aaa
screen 0,229,229,0,0,0
gosub*aaa
screen 0,230,230,0,0,0
gosub*aaa
screen 0,231,231,0,0,0
gosub*aaa
screen 0,232,232,0,0,0
gosub*aaa
screen 0,233,233,0,0,0
gosub*aaa
screen 0,234,234,0,0,0
gosub*aaa
screen 0,235,235,0,0,0
gosub*aaa
screen 0,236,236,0,0,0
gosub*aaa
screen 0,237,237,0,0,0
gosub*aaa
screen 0,238,238,0,0,0
gosub*aaa
screen 0,239,239,0,0,0
gosub*aaa
screen 0,240,240,0,0,0
gosub*aaa
screen 0,241,241,0,0,0
gosub*aaa
screen 0,242,242,0,0,0
gosub*aaa
screen 0,243,243,0,0,0
gosub*aaa
screen 0,244,244,0,0,0
gosub*aaa
screen 0,245,245,0,0,0
gosub*aaa
screen 0,246,246,0,0,0
gosub*aaa
screen 0,247,247,0,0,0
gosub*aaa
screen 0,248,248,0,0,0
gosub*aaa
screen 0,249,249,0,0,0
gosub*aaa
stop
*aaa
redraw 0
return
めちゃくちゃなソースですwwそれは分かってます。。
ですが、スクリーンを大きくしたいんです!!
何かいい手法ないですかね・・・T_T
狐 2013/6/4(Tue) 22:27:38|NO.54569
こゆこと?
x=1:y=1 ; スクリーンサイズ変数
repeat ; 無限ループ
await ; ループ用
redraw 0 ; よく知らん
screen 0,x,y ; サイズ変更
x++:y++ ; ループするたび一ずつ増える
loop
狐 2013/6/4(Tue) 22:29:08|NO.54570
あとcnt使いたいなら変数作ってa=cntにすれば?
流星群 2013/6/4(Tue) 22:29:12|NO.54571
screen 0,241,241,0,0,0
で、第6パラメータまで指定していますが、
はじめに、
screen 0,100,100,0,0,0,最大サイズx,最大サイズyを
いれると多分できます。
第7,8パラメータが初期化される大きさなので。
また、
この場合、width命令を使用するのが一般的となっています。
スクリプトエディタでwidthと入力し、F1を押してみてください。
狐 2013/6/4(Tue) 22:30:37|NO.54572
流星群さん
すいません初心者で・・ 俺の言ってることって全然違いますかね?
ikemendesu 2013/6/4(Tue) 22:36:17|NO.54573
狐さん
そうです
流星群さん
repeat : wait 10
screen 0,x,y,0,0,0,400,400
x=cnt
y=cnt
loop
今即席でこれ作ってみましたがやはりエラーが出てしまいました
流星群 2013/6/4(Tue) 22:36:21|NO.54574
>>狐さん
いや、合ってると思いますよー。
実は自分が書き込み入力してる間に
狐さんが書き込んでたみたいで……
なんかすいません><
流星群 2013/6/4(Tue) 22:39:41|NO.54575
>>54573
あ、えーと…
多分ループ前に最大サイズで初期化した方がよいかも
多分でもそれより
さきほど最後に書かせて頂いた
width命令を使うのがいいかもしれません。
他デバイスなのでソース書けなくて申し訳ないですが、
repeatとloopの間に
width cnt,cnt
みたいな感じにしてやれば
良いと思います。
ikemendesu 2013/6/4(Tue) 22:41:48|NO.54576
;ウィンドウを小さくしていく
#define WIN_W 640
#define WIN_H 480
screen 0,WIN_W,WIN_H,0
repeat 20
width WIN_W-(cnt*32),WIN_H-(cnt*24)
loop
stop
↑拾い物です。
これは小さくするサンプルソースです
ですが大きくはできません。
どうにかしてだんだんと大きくしたいです。。
ht. 2013/6/4(Tue) 22:42:42|NO.54577
初期化サイズの指定は第ニ引数,第三引数の方なので以下のようにすればいいと思います。
screen 0, ginfo_dispx, ginfo_dispy, , , , 640, 480
流星群 2013/6/4(Tue) 22:43:59|NO.54578
>>ht.さん
そうでしたっけ?
うわミスった><
完全第7,8だと思ってた。
ikem endesuさんもすいません!
ちょっと勘違いしてました
ikemendesu 2013/6/4(Tue) 22:45:53|NO.54579
流星群さん
#define WIN_W 10
#define WIN_H 10
repeat : wait 10
screen 0,WIN_W,WIN_H,0,0,0,400,400
width WIN_W+(cnt+2),WIN_H+(cnt+2)
loop
今即席でまた作りましたがバグっちゃいやす^^;;
それと
あ、えーと…
多分ループ前に最大サイズで初期化した方がよいかも
これがよくわからないです;
狐 2013/6/4(Tue) 22:47:27|NO.54580
結構簡単な質問かと思ったらみんなよくわからんこと(自分が知らんだけ)になっとるw
ht. 2013/6/4(Tue) 22:47:51|NO.54582
こんな感じでしょうか。
wnd_cx = 64
wnd_cy = 48
screen 0, ginfo_dispx, ginfo_dispy, , , , wnd_cx, wnd_cy
repeat
wnd_cx += 2
wnd_cy += 2
wnd_x = ginfo_dispx / 2 - wnd_cx / 2
wnd_y = ginfo_dispy / 2 - wnd_cy / 2
if wnd_cx > ginfo_dispx | wnd_cy > ginfo_dispy : break
width wnd_cx, wnd_cy, wnd_x, wnd_y
wait 10
loop
狐 2013/6/4(Tue) 22:48:41|NO.54583
狐さん
そうです
間違っとるん? あっとるん? よくわからん方
狐 2013/6/4(Tue) 22:50:51|NO.54584
↑×2ソースなんかかわいかった 関係なくってすいません。
ikemendesu 2013/6/4(Tue) 22:52:46|NO.54586
ht.さん
うほ・・・難しい命令ばっかりだ。。
でもすごいです!
これでできるんですねー
僕レベルだとこのソースは理解に苦しみますww
ですがなんとなくですがわかりました!!
みなさん協力、アドバイスなどありがとうございます^^!
流星群 2013/6/4(Tue) 22:53:08|NO.54587
>>ikem endesuさん
screenは画面を初期化しますよね?
実際の画面サイズは初期化された分の一部をウィンドウとしています。
大きくしていくのはウィンドウである
第7,8パラメータであるので
始めにウィンドウとは別に初期化サイズを大きめに設けるのです。
最終的に最大になる(ループの最後の時の値)で初期化しておき、
それに応じてウィンドウサイズを大きくするってことです。
分かりにくい説明ですみません。
狐 2013/6/4(Tue) 22:55:58|NO.54588
ikemendesu
同じくです。 同じようなことでも知ってる人から見たらわかりやすくても複雑すぎて分かり
ませんでした。
ikemendesu 2013/6/4(Tue) 23:01:10|NO.54590
流星群さん
ふむふむ。なるほどー。。複雑ですね。。。
狐さん
僕もまだ初心者なので皆さんが書くソースは何書いてるのか全然わからないレベルですw
追記
みなさん僕のためにいろいろ書いていただきありがとうございます^^
今後の技術に生かしていきます^^
ありがとうございます!
ikemendesu 2013/6/4(Tue) 23:06:59|NO.54591
流星群さんの作ったソース
消えてるのですが、もう一度貼って頂けませんか!?><
勉強に使いたいです><!
ikemendesu 2013/6/4(Tue) 23:28:32|NO.54593
あとすみません。
枠無しウィンドウにしたくて
bgscr 0,320,240:cls 1
これを追加したらなんかちらつきがすごいのですが
これは直せませんかね??
ikemendesu 2013/6/4(Tue) 23:47:37|NO.54594
wnd_cx = 64
wnd_cy = 48
screen 0, ginfo_dispx, ginfo_dispy, , , , wnd_cx, wnd_cy
repeat 61
wnd_cx += 2
wnd_cy += 2
width wnd_cx, wnd_cy, wnd_x, wnd_y
bgscr 0,wnd_cx,wnd_cy,0,wnd_x,wnd_y
color : boxf 1,1,198,198 : color 30,30,30 :
await 100
loop
stop
枠無しウィンドウはできましたが
やはりちらつきが直らないです><
あり 2013/6/5(Wed) 00:34:59|NO.54596
widthを使った後にbgscrを使ったらscreenでの
初期化設定が上書き(チラつく)されてしまいます。
screenとbgscrはウィンドウの初期化(ウィンドウの作成)
widthはウィンドウ表示サイズ・位置の変更(ウィンドウの見える範囲の変更)
と、覚えておいて下さい。
基本的に一つのウィンドウの初期化は一度だけで良いです。
screen 1 : title "プログラム終了用ウィンドウ"
wnd_cx = 64
wnd_cy = 48
bgscr 0, ginfo_dispx, ginfo_dispy, , , , wnd_cx, wnd_cy
repeat 61
wnd_cx += 2
wnd_cy += 2
width wnd_cx, wnd_cy, wnd_x, wnd_y
color : boxf 1,1,198,198 : color 30,30,30 :
await 50
loop
stop
ikemendesu 2013/6/5(Wed) 01:28:49|NO.54597
ありさん
ふむふむ。
ありがとうございます^^
改善しました^^!
プログラミングの記述は難しいですががんばります!