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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0726
ウーパールーパー続テキストエディタを作〜る掲示板(いぇい)17未解決


ウーパールーパー

リンク

2007/7/26(Thu) 19:52:24|NO.9775

*start
screen 0,500,500
cls 1
sdim form, 2024
form =""
pos 1, 50
mesbox form, 498, 450, 5
objsize 100,25
pos 0,0
button gosub "新規作成", *sinki
pos 100,0
button gosub "セーブ", *save
pos 200,0
button gosub "ロード", *load
stop
*load
dialog "*",16
if stat=0 :return
notesel form
noteload refstr
objprm 0,form
return
*sinki
form=""
objprm 0,form
return
*save
dialog "*",17
if stat=0 :return
notesel form
notesave refstr
return
に「ファイル(f)」とかつけたい



この記事に返信する


蛇君

リンク

2007/7/26(Thu) 21:08:21|NO.9776

メニューバーというはどうですか?
メニューバーならサンプルにもあります。



Irisawa

リンク

2007/7/26(Thu) 23:26:49|NO.9781

フォームの上部にある注意書きの通りにスクリプトは <PRE>〜</PRE> で囲んでください。
(エスケープのために全角で書いていますが実際には小文字で記述してください)

アクセラレータのニーモニックは & をつけることで表現できます。


#uselib "user32.dll" #func SetWindowText "SetWindowTextA" int, sptr button "test", *test id = stat stop *test SetWindowText objinfo(id, 2), "test (&T)" dialog "\"&\" を表示したいときは \"&&\" とします", 0, "補足" stop

ただし、アクセラレータとそのループ処理は自分で実装する必要があるのでご注意下さい。



Irisawa

リンク

2007/7/26(Thu) 23:29:45|NO.9782

すみません。
ボタンの文字列はobjprmで変更できるのでワザワザ SetWindowText() API関数を使用する
必要ありませんでした。



KENTA

リンク

2007/7/27(Fri) 08:56:47|NO.9791

きちんとサンプルを見ましたか?
googleなどで調べて見ましたか?
たくさんのサイトに答えがのっています。
ここにソース(APIを使ったメニューバー)を書いておきます。

#uselib "user32" #cfunc CreatePopupMenu "CreatePopupMenu" #cfunc CreateMenu "CreateMenu" #func AppendMenu "AppendMenuA" int,int,int,str #func SetMenu "SetMenu" int,int #func DrawMenuBar "DrawMenuBar" int #enum NULL=0 #enum NEW #enum OPEN #enum SAVE #enum EXIT Fmenu=CreatePopupMenu() AppendMenu Fmenu,0,NEW,"新規作成(&N)" AppendMenu Fmenu,0,OPEN,"開く(&O)" AppendMenu Fmenu,0,SAVE,"保存(&S)" AppendMenu Fmenu,0x800,0,"" AppendMenu Fmenu,0,EXIT,"終了(&E)" Menu=CreateMenu() AppendMenu Menu,0x10,Fmenu,"ファイル(&F)" SetMenu hwnd,Menu DrawMenuBar Menu oncmd gosub *COMMAND,$111 stop *COMMAND if wparam=0 :RETURN switch (wparam&$FFFF) case NEW dialog "「新規作成(N)」が選択されました" swbreak case OPEN dialog "「開く(O)」が選択されました" swbreak case SAVE dialog "「保存(S)」が選択されました" swbreak case EXIT dialog "「終了(E)」が選択されました" end swbreak swend return



ウーパールーパー

リンク

2007/7/27(Fri) 20:37:35|NO.9821

よくわからん



f

リンク

2007/7/28(Sat) 02:49:01|NO.9834

敷居が高いと思ったら、とりあえずおいといて、
自分の出来そうな思い付きを組み込めばいいんでね?



rtp

リンク

2007/7/28(Sat) 03:49:22|NO.9835

スレ作成主の目的はなんなんだろうなw



music

リンク

2007/8/5(Sun) 13:44:04|NO.10134

musicです。興味があるので提案です。
追加で、背景を黒とか画像に置き換えて、
字の色を白にしたり、字体や大きさを変えたり出来れば、
もっと良くなるのではないでしょうか?
このままだと、字が小さくて読みづらいです。



f

リンク

2007/8/5(Sun) 17:15:53|NO.10139

ひとりでプログラムつくれないヤツに 提案 とか みづらい とか言われたくないわ。



music

リンク

2007/8/5(Sun) 19:56:12|NO.10145

私はただ、こんなものが出来たらいいなぁ〜。
と思い、より良いものになるために意見を出したまでです。
>ひとりでプログラムつくれないヤツ
そう思われても仕方ありませんが、
プログラムできなかったら提案してはいけないんでしょうか?
別に私は、文句を付けに来たわけじゃありませんし、
荒らそうという気もありません。
ただ、興味を持ったので意見を出しただけです。
いいものが出来ると信じていますが。
では、頑張ってください...。



f

リンク

2007/8/5(Sun) 21:55:39|NO.10148

なんか「じじぃ」の名で、適当な理屈を書いて応募しておいたソフトが公開されたようなので、
手ごろな終了スレにソースを捨てておく。

#define locate( %1 , %2 ) pos %1*16 , %2*16
screen 0,640,480 : randomize : ce = "<■■}" cp(0) = "−−+−−\n  ■\ \n×=■■ \n ___}" : cp(1) = "−−+−−\n /■  \n ■■=×\n{___ " cp(2) = "  +  \n  ■\ \n+=■■ \n ___}" : cp(3) = "  +  \n /■  \n ■■=+\n{___ " map(0) = "            /\                          " map(1) = "           /  \                         " map(2) = "−−−−−−−−−−−|ロロ|−−−−−−−−−−−−−−−−−−−−−−−−−" map(3) = "           |__| |  H  |                 " map(0) += "    ▲ ▲            |        /\          " map(1) += "  ▲ ■ ■            |     /\/  \         " map(2) += "−−■−■−■−−−−−−−−−−−−|−−−−/−−−−−−\−−−−−−−−" map(3) += "  | | |            |                    " map(0) += "                         /\             " map(1) += "                        /  \            " map(2) += "−−−−−−−−−−−−−−−−−−−−−−−−|ロロ|−−−−−−−−−−−−" map(3) += "                |  H  | |__|            " *start : x = 0 : y = 14 : v = 0 : ex= 200 : ey= 0 : ef= 0 : sc = 0 : c = 0 : h = 0 *mainloop : stick st,15,0 : p = p ^ 2 x = x + ( ( ( st and 4 ) != 0 ) and x < 160 ) * ( v = 0 ) * ( y != 14 ) x = x - ( ( ( st and 1 ) != 0 ) and x > 0 ) * ( v = 1 ) * ( y != 14 ) y = y - ( ( ( st and 2 ) != 0 ) and y > 0 ) + ( ( ( st and 8 ) != 0 ) and y < 14 ) if ( st and 16 ) != 0 : v = v ^ 1 if x = 0 and y = 14 { sc += h : h = 0 } if x = 160 and y = 14 { c += 1 : if c > 20 { h += 1 : c = 0 : if h > 10 { h = 10 } } } if ef = 0 and x > 60 { ex = x + 40 : ey = y - 3 + rnd( 7 ) : ef = 1 } ex = ex - ( ( ef = 1 ) * 2 ) : ef = ( ef = 1 and ex > ( x - 40 ) ) ex = ex * ( ef != 0 ) + 200 * ( ef = 0 ) redraw 0 : color 0,0,0:boxf :color 255,255,255 locate 0 , 0 : print "SCORE :" + sc : locate 20 , 0 : print "RESCUE:" + h for i,0,4 : locate 0 , (15 + i) : print strmid( map( i ) , x & 0xfe , 80 ) : next locate 17 , y : print cp( p + v ) : locate (ex - x + 17) , ey : print ce : redraw 1 if ( y <= ey ) + ( y + 3 >= ey ) + ( x - 1 <= ex ) + ( x + 4 >= ex ) = 4 :goto *go await 50 : goto *mainloop *go : locate 16 , 20 : print "GameOver" : locate 15 , 21 : print "Retry> SPC" stick st,15,0 : if ( st and 16 ) != 0 : goto *start await 50 : goto *go



n

リンク

2007/8/22(Wed) 17:11:58|NO.10552

未解決スレッドです



ウーパールーパー

リンク

2007/8/22(Wed) 19:02:07|NO.10559

>未解決スレッドです
あたりまえだ
>手ごろな終了スレにソースを捨てておく。の意味がわからんし



ウーパールーパー

リンク

2007/8/24(Fri) 12:19:35|NO.10617

#define locate( %1 , %2 ) pos %1*16 , %2*16
意味不明



eller

リンク

2007/8/24(Fri) 16:31:20|NO.10619

> 意味不明
スクリプト内の
locate x, y
を、全て
pos x*16, y*16
と置き換えるためのものです。スクリプトを読みやすくする為のマクロですので、あまり気になさらないでも良いと思います。
ところで「このスレッドを立てたウーパールーパーさん」は、まだ回答を必要とされていらっしゃるのでしょうか?そうでないならば解決としても良いと思うのですが。もし見ていましたら返信願います。



ウーパールーパー

リンク

2007/8/24(Fri) 19:50:25|NO.10634

#define locate( %1 , %2 ) pos %1*16 , %2*16
screen 0,640,480 : randomize : ce = "<■■}"
cp(0) = "−−+−−\n  ■\ \n×=■■ \n ___}" : cp(1) = "−−+−−\n /■  \n ■■=×\n{___ "
cp(2) = "  +  \n  ■\ \n+=■■ \n ___}" : cp(3) = "  +  \n /■  \n ■■=+\n{___ "
map(0) = "            /\                          "
map(1) = "           /  \                         "
map(2) = "−−−−−−−−−−−|ロロ|−−−−−−−−−−−−−−−−−−−−−−−−−"
map(3) = "           |__| |  H  |                 "
map(0) += "    ▲ ▲            |        /\          "
map(1) += "  ▲ ■ ■            |     /\/  \         "
map(2) += "−−■−■−■−−−−−−−−−−−−|−−−−/−−−−−−\−−−−−−−−"
map(3) += "  | | |            |                    "
map(0) += "                         /\             "
map(1) += "                        /  \            "
map(2) += "−−−−−−−−−−−−−−−−−−−−−−−−|ロロ|−−−−−−−−−−−−"
map(3) += "                |  H  | |__|            "
*start : x = 0 : y = 14 : v = 0 : ex= 200 : ey= 0 : ef= 0 : sc = 0 : c = 0 : h = 0
*mainloop : stick st,15,0 : p = p ^ 2
x = x + ( ( ( st and 4 ) != 0 ) and x < 160 ) * ( v = 0 ) * ( y != 14 )
x = x - ( ( ( st and 1 ) != 0 ) and x > 0 ) * ( v = 1 ) * ( y != 14 )
y = y - ( ( ( st and 2 ) != 0 ) and y > 0 ) + ( ( ( st and 8 ) != 0 ) and y < 14 )
if ( st and 16 ) != 0 : v = v ^ 1
if x = 0 and y = 14 { sc += h : h = 0 }
if x = 160 and y = 14 { c += 1 : if c > 20 { h += 1 : c = 0 : if h > 10 { h = 10 } } }
if ef = 0 and x > 60 { ex = x + 40 : ey = y - 3 + rnd( 7 ) : ef = 1 }
ex = ex - ( ( ef = 1 ) * 2 ) : ef = ( ef = 1 and ex > ( x - 40 ) )
ex = ex * ( ef != 0 ) + 200 * ( ef = 0 )
redraw 0 : color 0,0,0:boxf :color 255,255,255
locate 0 , 0 : print "SCORE :" + sc : locate 20 , 0 : print "RESCUE:" + h
for i,0,4 : locate 0 , (15 + i) : print strmid( map( i ) , x & 0xfe , 80 ) : next
locate 17 , y : print cp( p + v ) : locate (ex - x + 17) , ey : print ce : redraw 1
if ( y <= ey ) + ( y + 3 >= ey ) + ( x - 1 <= ex ) + ( x + 4 >= ex ) = 4 :goto *go
await 50 : goto *mainloop
*go : locate 16 , 20 : print "GameOver" : locate 15 , 21 : print "Retry> SPC"
stick st,15,0 : if ( st and 16 ) != 0 : goto *start
await 50 : goto *go

の解説がほしいあるね



GENKI

リンク

2007/8/24(Fri) 21:06:12|NO.10641

> の解説がほしいあるね

新スレを立てるか、直接fさんのサイトまたはメールでお問い合わせください。
運がよければ解説してもらえるかもしれません。
というかその前に自力で解読する努力をしてください。



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