HSP - Hot Soup Proce ..
[2ch|▼Menu]
469:名前は開発中のものです。
07/02/22 21:09:48 5nAwOm3S
なんじゃそら
データの無音時間が長いんじゃねえの

470:名前は開発中のものです。
07/02/22 21:44:16 TMK/38nP
>>466 そぉい!

#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

dim a, ALL

repeat ALL
a(cnt) = cnt
loop

repeat NEED
idx = rnd(ALL-(cnt+1))
idx += (cnt+1)

//ここで2つをスワップ
tmp = a(cnt)
a(cnt) = a(idx)
a(idx) = tmp
loop
//処理が終了した、結果を確認 ****

repeat ALL
mes "a[" + cnt + "] = " + a(cnt)

if(cnt == (NEED-1)): mes "↑ ここまで"
loop

471:名前は開発中のものです。
07/02/22 23:23:00 MHAA7b9m
#define ALL 43 //0~42の合計43個から
#define NEED 6 //6個選ぶとして

if ALL < NEED : dialog "ALL が NEED 未満\nALL="+ALL+" NEED="+NEED,1,"MyError!" : end

//初期化
dim a, ALL
repeat ALL : a(cnt) = cnt : loop

//シャッフル
randomize
repeat NEED
  idx = rnd(ALL-cnt)+cnt   //←*******ここ、これでもいけるんじゃね?*********
  //ここで2つをスワップ
  tmp = a(cnt) : a(cnt) = a(idx) : a(idx) = tmp
loop

//処理が終了した、結果を確認 ****
sdim result, 32*ALL : notesel result
repeat ALL
  noteadd "a[" + strf("%2d",cnt) + "] = " + a(cnt)
  if(cnt == NEED-1) : noteadd "↑ ここまで"
loop
mesbox result, ginfo_winx,ginfo_winy, 0

472:名前は開発中のものです。
07/02/22 23:57:08 TB+Oxm9G
>>468
.MID?
なら音の初期化に時間が掛かってる(仕様)
それが嫌なら MCI コマンド で
mpegvideoのデバイス使用したりすればいい

473:名前は開発中のものです。
07/02/23 00:14:35 O0erhAiM
BGMは普通にオーディオファイル使いなよ

474:470
07/02/23 10:12:11 E2Prn5Yf
>>471
指摘と訂正ありがとう!
言われて気づきますた。>>470は rnd() で拾う範囲が間違ってました。

475:名前は開発中のものです。
07/02/24 19:54:37 W+rZHJ8X
>>468
___________________
| GuruGuruSMF            || 検 索 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                         ↑

476:名前は開発中のものです。
07/02/25 03:54:57 VNaVZIL+
SMFでBGM鳴らすと嫌がられるかもよ

477:名前は開発中のものです。
07/02/25 06:18:25 g1M1g916
kwsk

478:名前は開発中のものです。
07/02/25 14:44:33 JBJKbo+u
高性能なソフトウェア音源持ってるとオーディオ鳴らすよりメモリ食うから
ゲームの処理自体も遅くなるってことか>476

479:名前は開発中のものです。
07/02/25 15:03:49 AlLVbpDx
俺もMIDIは嫌だな。
環境依存だから作曲者の意図した音色で鳴らないし、内蔵のはとにかく音がヘボイ。
外部音源(GM非対応)持ってるんだけど、MIDIのルーティングそっちにしてると
勝手に変な信号送るしな。

基本的には用量が小さい以外のメリットはないからオーディオデータのが良いよ。
フリー素材使う&レコーディング環境が無いならSMFデータでも仕方ないが。


480:名前は開発中のものです。
07/02/25 16:42:45 /zNzezvq
mp3はライセンスがあれだからoggだね

481:名前は開発中のものです。
07/02/25 17:02:00 VNaVZIL+
>477
俺が見てるゲーム系スレでMIDIだと一部に叩かれたりしてたってだけ
478-479みたいな話だった

俺もホムペでBGMにしてるとことかウザいし、内蔵の音嫌いなんで切っちゃってるがw

482:名前は開発中のものです。
07/02/25 17:18:26 fYDjuiva
GGSMFは指定すれば外部音源も使えるが、
DirectMusicモードにすればどのパソコンも共通のDLSを使うんだぜ(そのDLSを変えれば別だが、普通はしない)。
処理は重くならない。

まぁ音がショボイのは髪の毛が抜けるほど同意なんだけどさ。

483:名前は開発中のものです。
07/02/25 17:27:28 fYDjuiva
連ですまんが俺は

スーファミチックなグラフィック   = SMF
3Dなど、綺麗なグラフィックや世界観 = オーディオデータ

でいいんじゃないかと思っている
でもまぁ個人差はあるよね

484:名前は開発中のものです。
07/02/25 17:52:08 VNaVZIL+
どちらもオーディオでいいと思うけどw
何らかの理由でとにかくデータを小さくしたいなら別だが

485:名前は開発中のものです。
07/02/25 18:25:52 AgVpiUO/
ジャンルによるけど、オーディオだと素材が見つからないんだよね。
聴いたことあるやつだったりして萎えたり。

MIDIは豊富だけどどこもショボいし、
かといって自分じゃ作れないし…
はぁ

486:名前は開発中のものです。
07/02/26 01:40:02 57LQAIMh
>>483
ああ、それ分かるわ〜
ファミコンチックな絵にはmusic.comのMMLで。

winで鳴らすプラグインあったよな…
いいわ。アレ。

487:名前は開発中のものです。
07/02/26 01:53:38 oDJiOUFE
TSSで良いんじゃね。HSP用プラグインあるし。
あとMIDIデータがあるならGXSCCでオーサリングするとか。

とにかく環境依存のSMFは、技術的に他に選択肢が無い場合以外は回避が吉。

488:名前は開発中のものです。
07/02/26 19:23:37 RONGsV2o
わかった!
別でソフト音源を自作して配布すれば人類みな兄弟だ

489:名前は開発中のものです。
07/02/26 20:48:02 SJxC1fKB
そりゃPSGの時代にSCC積むってんなら分かるけど。
MIDIやmp3じゃだめなの?

490:名前は開発中のものです。
07/02/26 20:54:27 A8+9CQeT
低脳回線の俺にとっては、5分くらいかけて一生懸命落としたやつが、
超ハイクオリティなオーディオデータ使ってても
内容が糞だと本当に萎える。
作者は自分の技量に合った容量の音楽データを決めてくれよな/(^o^)\ハッナザッワサーン

チラ裏だけど
俺はショボいMIDIのほうがゲームには味があっていいなと思う時がある

491:名前は開発中のものです。
07/02/26 21:09:27 I1DVp87U
>作者は自分の技量に合った容量の音楽データを決めてくれよな
ムチャクチャ言うとるw

だからTSS使えと

492:名前は開発中のものです。
07/02/26 22:17:32 PGtAGC7+
ここはミュージックフォーマットスレですか?

HSPの話題ないのかね

493:名前は開発中のものです。
07/02/26 22:53:47 oDJiOUFE
TSSをHSPで使ってみよう

494:名前は開発中のものです。
07/02/27 01:26:41 sv8ON4Xo
元から進行遅いんだし何話題にしてももうなんでもよくね?
と妥協気味なんだが。

495:名前は開発中のものです。
07/02/27 04:16:21 sv8ON4Xo
というか、こういう話題で荒れなかったのは奇跡な気がしてきた。

496:名前は開発中のものです。
07/03/02 17:27:06 RL8xs1BY
>467
レストンクス
cnt+1はそういうことだたのかー。
あの時はcntがどこにかかっているのかまだ良くわかってなかった。
でも これは (cnt+1/43)^(cnt+1) ってことで
確率としてはよっぽどと思うけど、
プログラマからすると高い方なんだろうか。
組んで計算してみようかと思ったけど、累乗してくれる命令が見つからない。
a=はフラグなのね。なるほどね。フラグってそうやって表すんか。
別のプログラムでこのやり方使ってうまくいった。勉強になりました。

>470-471
ようやっと仕組みがわかった。これも凄いな。
こういう発想は慣れればすぐ出てくるものなのかとただただ感心。
でもそれだけじゃ悔しいのであえていうと、
ロト6にゼロはないから、 a(cnt)=cnt+1にシル。

497:名前は開発中のものです。
07/03/02 21:45:03 nNF0epL2
hsp wikiが

アクセス権限がありません

とかで見れない・・・俺だけ?

498:名前は開発中のものです。
07/03/02 22:49:20 5hSvgbhg
見れるが

……何かやらかしたんじゃないだろうなw

499:名前は開発中のものです。
07/03/02 22:52:48 xch9HBdf
>>497
俺は開ける
ついこの前開発wikiが
>07/02/28から07/03/01までの間アクセスできない状態が続きました。原因はスパムによる高負荷だったようです。
だったみたいだから
そのうち繋がるんじゃね?


500:名前は開発中のものです。
07/03/03 08:16:02 /ZMyxF+O
まりがとう。

ところで、
装備品やアイテムのパラメータがExcelで管理できたら
製作者的に便利だと思ったんですが、
HSPとのやりとりは難しいですかね・・・?

今はnote命令でやってるんですが視認性があまり良くなくて・・・

501:名前は開発中のものです。
07/03/03 11:47:02 b1MKL1pP
>>500
本格的なxsl形式対応は難しくても、csvなら簡単じゃね?
まあ何をどういう感じにしたいのかは知らんが。

502:名前は開発中のものです。
07/03/03 12:28:23 WpAkZHyn
>>500
今はどんな感じに(noteで読んでる)ファイル作ってる?

503:名前は開発中のものです。
07/03/03 13:18:13 a544u/75
HSP3です。
screen で作成したWindowを、HSPスクリプトディタみたく、
最大化ボタンを追加し、起動時に最大化を行う
(ただしタスクバーと重ならないように)
ようにする方法があれば教えてください。

Wikiの過去ログで最大化ボタンを追加する方法がありましたが、
タスクバーの後ろに画面が重なったり、
プログラム実行時、自動的に最大化する方法がわかりませんでした。

504:名前は開発中のものです。
07/03/03 13:21:58 /ZMyxF+O
こんなカンジです
;武器データの例(各0行目=インデックス=武器ID)
;10行目;ファイル名,アイテム名,材質
;11行目;アイテムの説明
;12行目;損壊後ID,耐久度,重量
;13行目;切断力,刺突力,衝撃力
;14行目;対切,対刺,対衝
;15行目;切,穿,打
;16行目;構えN,構えT,構えW
;17行目;持易N,持易T,持易W
;18行目;価格,汎/重
;19行目;欠番(改行だけを入れる)

Excelだとフィルタとか使えてアイテム間のバランス調整が楽だなあと思いまして

505:名前は開発中のものです。
07/03/03 14:07:38 WpAkZHyn
>>503
#uselib "user32.dll"
#func ShowWindow "ShowWindow" int, int
//  BOOL ShowWindow(
//    HWND hWnd,    // ウィンドウハンドル
//    int nCmdShow  // 表示状態
//  );
#func SetWindowLong "SetWindowLongA" int, int, int
//  LONG SetWindowLongA(
//    HWND hWnd,    // ウィンドウハンドル
//    int nIndex,      // 変更するデータの指定
//    LONG dwNewLong  // 新しい値
//  );
#func SetWindowPos "SetWindowPos" int, int, int, int, int, int, int
//  BOOL SetWindowPos(
//    HWND hWnd,            // ウィンドウのハンドル
//    HWND hWndInsertAfter,    // 配置順序のハンドル
//    int X,int Y,int cx,int cy,    //位置と大きさ
//    UINT uFlags            // ウィンドウ位置のオプション
//  );
#define GWL_STYLE                -16
#define WS_OVERLAPPEDWINDOW    0x00CF0000
#define SW_SHOWMAXIMIZED        3
#define SWP_FRAMECHANGED      0x0020
screen 0,ginfo_dispx,ginfo_dispy,0,,,640,480
SetWindowLong hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW
ShowWindow hwnd, SW_SHOWMAXIMIZED
SetWindowPos hwnd, 0, ginfo_wx1, ginfo_wy1, ginfo_dispx, ginfo_dispy, SWP_FRAMECHANGED

とりあえず作ったぜ?最大化はこんな感じ?
で、タスクバーが重ならないのはフルスクリーンではないのか?

506:503
07/03/03 14:33:02 a544u/75
>>505
早い回答ありがとうございます。
>>505の内容を新規作成で実行しましたが、ウィンドウがちらっと見えて速攻落ちました。
ちなみにこちらで作ってみたのを下に書いてみます。

screen 0,10,10,2
sz_w = ginfo(20)
sz_h = ginfo(21)
screen 2,sz_w,sz_h,,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#uselib "user32.dll"
#cfunc GetWindowLong "GetWindowLongA" int,int
#func SetWindowLong "SetWindowLongA" int,int,int
#const GWL_STYLE -16
#const WS_MAXIMIZEBOX 0x00010000
ws = GetWindowLong( hwnd, GWL_STYLE ) //ウインドウスタイル取得
ws = ws | WS_MAXIMIZEBOX //最大化ボタン表示フラグを追加
SetWindowLong hwnd, GWL_STYLE, ws //ウインドウスタイルを再設定
gsel 2,-1 : gsel 2,1 // [最大化ボタン]再描画のため
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

>で、タスクバーが重ならないのはフルスクリーンではないのか?
フルスクリーンというのは、↓こんなのですか?
;$$$$$$$$$$$$$$$$$$$$$$
bgscr 2,ginfo(20),ginfo(21),,0,0
cls 4
;$$$$$$$$$$$$$$$$$$$$$$
というより、やりたかったのは最大化ボタンで最大化するとタスクバーを避けた範囲で最大化し、
タスクバーの高さをちょこちょこいじっても、追従してウィンドウの下枠が移動してくれるのです。

507:名前は開発中のものです。
07/03/03 14:46:03 WpAkZHyn
>>506
落ちたっすかwwwwwwサーセンwwwwwww
そのままコピペして全角スペース残って無いだろうな?#defineの所。もし、そうならプロセスが残ってるはずだ

>フルスクリーン
そんなの

>追従してウィンドウの下枠が移動
そのスクリプトでその通りに動いてるが?というかWindowsが勝手にやってね?

508:506
07/03/03 14:54:53 a544u/75
>>507
もうしわけございません。//の行をそのままやってました。
ちゃんと整理すると思い描いていたとおりの動きで感激です。
かなり嬉しいです。どうも。

509:名前は開発中のものです。
07/03/03 19:32:20 Ia/P8ltl
>>507
見吉ィぃぃぃぃいぃぃ!!!!

510:名前は開発中のものです。
07/03/04 17:15:14 wznVdj4V
突然の質問失礼します。Pcbnet2のサンプルのsample01_SimpleChatをコンパイル+実行
してみたのですが、HSP3ではエラーになってしまいます。
ソースコンバータ(HSP2をHSP3に変換してくれる)にかけたのですがサーバ側は問題
ないのですが、Client側でエラーが出てしまいます。
85|*main
86| tcpfail soc
87| if stat : tcpclose soc : dialog "接続が切断されました!",1 : end
88| tcpgetl buf,1024,soc
89| if stat : gosub *recv
90| instr a,msg,"\n"
91| if a!-1 : gosub *send
92| wait 1
93| goto *main

line89がエラーと出るのですが、どうしたらいいでしょうか? 教えてください

511:名前は開発中のものです。
07/03/04 17:42:38 S2R5w3OY
>>510
ソースコンバータを過信しすぎだな。
HSP3.1b7で実行すれば、エラーメッセージに原因が表示されるぞ。

512:名前は開発中のものです。
07/03/04 18:57:05 YMvgADvJ
instrを関数にしろ

513:1
07/03/05 00:21:04 6FToFsAD
>>512
instrを関数にしたいのですが、例えばa=instr(p1,p2,"string")ですよね?
このa=のaの部分を何にすればいいのかわかりません;;
>>511
早速DLしてきて試してみます! ありがとうございます ペコリ

514:名前は開発中のものです。
07/03/05 00:26:34 ao1dJWki
>>513
ヘルプ見ろって・・・
>instr(p1,p2,"string")

>p1=変数名 : 検索される文字列が格納されている文字列型変数名
>p2=0〜(0) : 検索を始めるインデックス
>"string" : 検索する文字列
これでインデックス(自然数)が返ってくる。無ければ-1が返ってくる

515:1
07/03/05 00:34:38 6FToFsAD
>>514
すみません;; 本気でわからないのですが、instr(a,msg,"\n")では
パラメータ式の記述が無効です。
ってなります;;

516:名前は開発中のものです。
07/03/05 00:35:14 6FToFsAD
↑ごめんなさい、1じゃないです。

517:名前は開発中のものです。
07/03/05 00:48:28 ao1dJWki
>>515
C言語とかだと有効だけど、HSPでは関数の戻り値を入れる変数が必要
つまり、index=instr(a,msg,"\n")みたいな感じで。
というか、戻り値使わないと関数を実行する意味無くね?

518:名前は開発中のものです。
07/03/05 01:10:21 6FToFsAD
ほんとにすみません;; index=のindexの部分を何にすればいいのかわかりません。
instrでmsgから"\n"改行?を探してるのかな?ってぐらいにしかわからないです;;

519:名前は開発中のものです。
07/03/05 01:36:15 6FToFsAD
あ! HSP2のinstrのヘルプ見てわかったんですが、a=(msg,,"\n")にしてやればいいのかな?
ですが、これで実行してみるとチャット欄にhelloって文字を打ちエンター押すと
10行ぐらいhelloってずらずら続いてしまいます・・・・
やはり違うのかな・・・・

520:名前は開発中のものです。
07/03/05 02:07:49 ao1dJWki
index = instr(msg,0,"\n")
これでmsgの中身をインデックス0(1文字目)から検索して"\n"があるインデックスがindexに入る

例 : msg = "hello\n"の時
6文字目にあるのでindexには5が入る。

521:名前は開発中のものです。
07/03/05 02:11:49 6FToFsAD
>>520
はい、そこまではわかりました。 でも、こんどはメッセージを送信したときに
メッセージがずらずら〜っといっぱい出てきてしまいます;;
Test17>test
Test17>test
Test17>test
Test17>test
Test17>test
こんな感じです;;
もう、思いつく限りの関数はHSP3用に直したのですが・・・;;
原因がさっぱりです

522:名前は開発中のものです。
07/03/05 02:14:37 6FToFsAD
*send
s=msg
instr a,s,"\n" //ここもa=instr(s,,"\n")に直しました
getstr ss,s,a+2
poke s,a,0
s+=ss
buf="say "+s+"\n"
tcpput buf,soc
objprm 0,""
return

523:名前は開発中のものです。
07/03/05 02:36:17 ao1dJWki
//動作がよくわからなかったのでためしに書いた。
s = "0123456789\nabcdefg"
ss = ""
a = instr(s,0,"\n")
mes a
getstr ss,s,a+2
mes ss
poke s,a,0
s+=ss
mes s

つまり文字列途中の改行を抜きたいってことでいいのか?
もしそうならinstrとstrmidをセットで使ったほうが楽
strmid(buff,instr(buff,0,"\n")+2,256)
これでbuff内の\n以降が取得できる。

余談だが、\nって二文字分なのな。\n\rに変換してるってどっかで見たが・・・

524:名前は開発中のものです。
07/03/05 02:48:59 6FToFsAD
>>523 さん ほんとうにありがとうございます。
いぇ、改行を抜きたいのではなくて、pcbnet2のサンプルのsample01_Simplechat
をHSP3で正しくコンパイルしたいだけでして・・・;;

525:名前は開発中のものです。
07/03/05 02:54:53 ao1dJWki
>>524
というか俺、さっきも書いた気がするがHSP3から入ったからHSP2の知識が全く無い。
移植そのものの役には立てそうにない。
しかし、良いスクリプトってだいたいHSP2だな・・・

526:名前は開発中のものです。
07/03/05 02:58:45 6FToFsAD
>>525
ですねぇ;; ソースコンバータがもっとバージョンアップしてくれれば・・・・
             ↑
          すごい他力本願^^;

527:名前は開発中のものです。
07/03/05 03:54:46 IdxZqlrk
>>522
msg=""
objprm 0,""
return

一応これで出来た
hsp2だと objprm 0,"" で使ってるバッファも影響受けるのかな?


528:名前は開発中のものです。
07/03/05 03:57:48 ay926VlW
なんかごちゃごちゃやってるみたいだけど
ソースコンバータ通したスクリプトを

90行目
a=instr(msg,0,"\n")

135行目
a=instr(s,0,"\n"):msg=""

にするだけの話だぞ

529:名前は開発中のものです。
07/03/05 04:04:56 6FToFsAD
>>528
おお!! でけた! 528さん、ありがとうございます;;
このサンプルでpcbnet一生懸命勉強しようと思います。
どうもありがとうございました ペコペコ

530:名前は開発中のものです。
07/03/05 04:19:35 IdxZqlrk
sdim msg,1024
mesbox msg,200,24,1
repeat
s=msg
;instr(a,s,"\n") ;2用
a=instr(s,0,"\n") ;3用
if a>0{objprm 0,""}
title ""+msg
wait 1
loop
stop

やっぱり objprm の動作が2と3で違うな
2ならobjprm で操作したら使ってる変数内容も
変化するけど 3は変わらない
バグっぽいけど・・・

531:名前は開発中のものです。
07/03/05 08:05:10 9TVkJKsy
関連付けてる変数を更新して、それをobjprmの引数にすれば
OKなんだけどね。

ていうかウィンドウキャプション、改行コードも表示されちゃうんだ。
知らんかった。

532:名前は開発中のものです。
07/03/07 17:18:17 nPv9ImbS
サーバ側からクライアント側へ画像を転送するにはどうすればいいですか?

533:名前は開発中のものです。
07/03/07 18:44:46 nwF22j0Y
>>532
HTTPのGETコマンドで画像ファイルのURLをリクエストすればいい。
でもバイナリデータだからHSPだと切り出しがツライかも。

534:名前は開発中のものです。
07/03/07 20:09:37 nPv9ImbS
>>533
いあ、HTTPではなくて、サーバ側のbufferに描いた画像をクライアント側
にgcopyするみたいなことってできないですかね?


535:名前は開発中のものです。
07/03/07 20:18:53 hRCFzq0X
>>534
クライアント側がサーバになり(ポートを開いて接続を待ち受ける)、
サーバ側がクライアントとして振舞う(クライアントに接続に行く)ことで
ファイルを送りつけることは可能。
でも現実にはルータやファイアウォールとか、サーバの規約とか、
ウイルス扱いされるとか、ネットワークの安全性とか、色々な問題が予想されます。

536:名前は開発中のものです。
07/03/07 21:06:27 ydn30hoM
>>534
クライアント側に初めから用意されている画像を、
『どの位置か』といったシンプルな情報だけを通信でやりとりして、
それを基にクライアント側で処理させるのが無難。
 
何のためにそれをしたいのかを書かないと、大したアドバイスは出来ないと思う。
絵チャットみたいなのをしたいの?

537:名前は開発中のものです。
07/03/07 21:53:25 nPv9ImbS
>>536
なるほど。 別になにかしたいってわけではなくて、ただ、どうやったら
できるのかな?って疑問に思っただけなんです^^;
「どの位置」をクライアント側に渡してやればいいのかあ。
考えてみます。
どうもありがとうございました。

538:名前は開発中のものです。
07/03/08 17:40:29 TEJL+ADw
レースゲームのサンプルスクリプトってどこかないですか?
アクセルとブレーキの実装ってどうやっているのか知りたいのですが。

539:名前は開発中のものです。
07/03/08 17:51:20 V+92YLpv
>>538
物理計算を単純にした感じでいいんじゃね?

540:名前は開発中のものです。
07/03/08 19:31:25 swI1jhiZ
アクセル 前進
ブレーキ 停止
じゃなくて
アクセル 速度上昇
ブレーキ 速度減少
にして、速度によって位置を変えていけばいいんじゃね?

って回答でおk?

541:名前は開発中のものです。
07/03/08 19:34:54 TEJL+ADw
>>539
すいません、物理計算っていうのがわかりません;;


542:名前は開発中のものです。
07/03/08 19:42:23 TEJL+ADw
>>540
なるほどお!? わかったような、わからないような・・・
普通のキー入力だと、キーを離すとキャラクタが止まってしまいますよね?
キーを離しても、慣性で進んでいくような、レースゲームでは当たり前でしょうが、
経験が浅いのかおつむがバカなのかその具体的な方法が思いつきません

543:名前は開発中のものです。
07/03/08 20:07:41 hsHUTUZZ
*main
//キーチェック
if(加速キーが押されてたら):加速度=加速度+いくらか
if(減速キーが押されてたら):加速度=加速度-なんぼか

//座標更新
座標=座標+加速度

//グラフィック表示
pos(座標…
gcopy(グラフィック表示…

//ループ毎に減らす(アクセルを踏んでないとエンジンブレーキ)
加速度=加速度-ちょっと
goto *main

レースゲームだとたぶんキャラの位置は固定で背景だけが動く
だろうから適当に工夫してちょ

544:名前は開発中のものです。
07/03/08 20:29:52 TEJL+ADw
>>543
おお!ありがとうございます! これを元に考えてみます

545:名前は開発中のものです。
07/03/09 04:35:11 PSudILgY
どうでもいいけど
加速度→速度
いくらか・なんぼか→加速度
じゃね?

546:名前は開発中のものです。
07/03/09 05:52:08 mAtCxyxj
それもそうだ
本能で書いた
すまぬ


547:名前は開発中のものです。
07/03/09 22:18:11 OmsA6ix3
gzoomでキャラクターが画面向こうからこっちに迫ってくるようにしたいんですが
背景で画面をクリア(残像を消去)しながらやるとちらついてしまいます。
多分gzoom命令のせいだと思いますがちらつかなくする方法ってありますか?

548:名前は開発中のものです。
07/03/09 23:08:54 mAtCxyxj
redrawとかは当然使ってるんだよね
gcopyではチラつかないのにgzoomだとチラつく?

549:名前は開発中のものです。
07/03/09 23:48:34 9wm9gx0I
向かってくるキャラが女性なんだろう。
だから色々チラつくんじゃないかな。

550:547
07/03/10 07:57:00 BrhUO2D5
うまくいきました。
初歩的なことですいませんでした

551:548
07/03/10 08:53:38 s4EgJTT+
  ( ゚д゚ )

552:名前は開発中のものです。
07/03/10 09:47:14 RgqImxK/
どっかのHSPまとめサイトかなんかで、

このTIPSは理解しやすいように変数に全角文字を 使ってるけど
行儀が悪いので半角に換えましょう

みたいな事が書かれてたんだけど、・・・行儀悪い?
俺見易くなるようにNOを#とかにしてるけど・・・
後で思わぬ不具合が出るとか?



553:名前は開発中のものです。
07/03/10 12:02:56 EgnyZfl8
プログラムの書き方なんて千差万別
どの書き方がよくてどれが悪いなんて無い

554:名前は開発中のものです。
07/03/10 15:53:04 dqgHW26b
その手の宗教発言は真に受けるべからず

555:名前は開発中のものです。
07/03/10 16:21:45 C28IpD1h
HSPでアクションゲームつくりたいんだけどどこかいい解説サイトはないかな

556:名前は開発中のものです。
07/03/10 17:19:27 eQ0ijKNl
昔は「美しいプログラムを書きましょう」だの「スパゲッティ」だのよく聞いたんだけどな。今はソースを
他人に公開することもなく、チームを組んで作るとか後で後輩に引き継ぐとかするのでもなければ
行儀なんてどうでもいいんだろうな。現実にはそういう場合でもきったねえんだけどさ。
でもHSPなんてフリーソフトなんだから、やっぱ標準的な書き方しないと心配じゃね?変数を全角で
書いて、もし変な不具合が起こったらどうしようってずーっと心配しなくちゃいけない。行儀がどうこう
ってんじゃなくて、信用できない。起こらないんだろうけど。てか現実にはマイクロソフトだってそんな
に信用できないけどさ。

>>552
Dr.Dに怒られちゃうぞ。

557:名前は開発中のものです。
07/03/10 17:34:29 eQ0ijKNl
>>555
シューティングでもテトリスでも作り方がある程度分かればアクションも作れるだろ。あとはたっぷり
アクションゲームをやることだ。お前の言ってるアクションが格闘アクションのことだったら知らんけど。
てかHSPでアクションゲームに特化して解説してるがなかったら作れないってんならやめちまえ!





でも頑張ってね。(←ツンデレで)

558:名前は開発中のものです。
07/03/10 17:51:50 GJ+Cs3X4
どうせ横スクロールモノだろ?
シューティングよりも、テトリスの方が似てるかな。
テトリスの棒が左右に歩いてジャンプできれば、一画面物アクションなら出来たも同然。

559:名前は開発中のものです。
07/03/10 18:51:01 3t9NJGvE
すごろくゲームのサンプルスクリプトどこかにありませんか?
サイコロの出た目によってコマが進むしくみが知りたいのですがどうすればよいのかわかりません。

560:名前は開発中のものです。
07/03/10 19:31:06 s4EgJTT+
クマー


561:名前は開発中のものです。
07/03/10 19:49:45 GJ+Cs3X4
>>559
双六は、マップのデータの持ち方が意外にややこしいかもな。
・・・どうも、それ以前の段階で詰まってそうな感じだけど。

562:名前は開発中のものです。
07/03/10 19:56:29 5ZAWuvtI
>>559
まず一方通行&一直線のすごろくを作って、
配列インデックスと座標データとコマ表示の関係を学ぶといい。

1.一方通行&一直線のすごろく (基本)
2.クネクネしたすごろく (応用)
3.ぐるぐる回るすごろく (モノポリーなど)
4.分岐やループのあるすごろく (人生ゲームなど)
5.目的地があり、好きな方向に動けるすごろく (桃太郎電鉄など)

この流れで作っていけば君もすごろくマスターだ!

563:名前は開発中のものです。
07/03/10 21:02:03 rcfj8Pc0
>>552
同一ソース内に全角と半角を混ぜるなんて、
ちゃんと動いたとしても、気持ち悪くて出来ないな。
万が一、半角スペースのつもりで全角スペースを入れたときとか
見つけにくいんだよ意外と。
「そんなミスするわけないだろ(笑)」とか思っててもやってしまうのが
プログラミング。

少なくともそういう、「全角だろうが半角だろうがOK!」
っていう教え方をする先輩や上司はいないだろうな。

というか既に結論出ちゃってるけど、
個人でやるなら自由にすればいい。
団体でやるならマナーを守れと。

564:名前は開発中のものです。
07/03/10 21:14:58 Of9Rb6RG
ビリー「全角スペースなんて小さな事でお悩みの貴方に送る、テキストエディタ TeraPad!」

565:名前は開発中のものです。
07/03/10 22:04:35 A2NSoGOm
エディタで色分けやら下線強調表示できたところで、コード次第ではどのみち死ねますね
統一すんのは検索効率もあるし

566:名前は開発中のものです。
07/03/10 22:58:30 s4EgJTT+
どっちのスタイルにせよ
コメント文をソースに書くとき
全角にして半角に戻すのって面倒臭くない?

VC++でもしょっちゅう間違えてソースの方に
全角スペース入れてしまってコンパイル蹴られる。
漢字キーがもうちょっと近くにあると嬉しいのだが

567:名前は開発中のものです。
07/03/10 23:00:49 Of9Rb6RG
コメントを英語で書けば何の問題も無い

568:名前は開発中のものです。
07/03/10 23:05:06 s4EgJTT+
// sore naisu!

569:名前は開発中のものです。
07/03/10 23:25:27 9POELrpn
スペースは常に半角とか、IMEの設定でできなかったっけ?

570:名前は開発中のものです。
07/03/10 23:28:51 uQgnCise
>>559
マルチ乙w




釣りじゃないんなら
なにがわかんないのか書けばいいと思うよ

571:名前は開発中のものです。
07/03/10 23:34:42 s4EgJTT+
ああ、会社ではそれにしてる
シフト押しながらスペースで全角スペースになる

なんで家ではやってなかったんだ俺
なんか理由があった気がするが…忘れた

572:名前は開発中のものです。
07/03/11 00:39:28 stPPhm55
hspdxfixについて質問なんですが…

es_set等でスプライトの優先順位を設定した際に
数値が大きいスプライトが手前に表示されるのですが、
小さいほうを手前に出来ないでしょうか?

なんか設定ミスってんのかな、俺。



573:名前は開発中のものです。
07/03/11 09:11:36 iZ4HV+4f
多角形塗り潰しの命令でおすすめのないでしょうか?
ウィザードリィ風な3Dダンジョンをつくるのに台形の塗り潰し機能を使おうとしてます。
壁と天井の色を分けて裏画面で奥から手前に向かう順番で壁で塗り潰していってるのですが、
pal_DrawPolygonを使っていると、画面を何度か更新しているうちに
色がどちらか一方の色だけにかわってしまいます。

574:名前は開発中のものです。
07/03/11 12:00:57 /T7FdIWg
その謎命令については良く知らんが
gsquareじゃ駄目なん?

575:名前は開発中のものです。
07/03/11 13:01:37 9H6tJUaN
つーか単なるあんたのプログラムミスじゃん。

576:名前は開発中のものです。
07/03/11 15:27:59 GsSBQTuQ
その不具合が確実に起こる短いソースを書け

577:573
07/03/11 15:49:57 iZ4HV+4f
>>574-576
サンクス!
gsquareにかえたら問題解消でした。
短いソースかいてみます。

578:573
07/03/11 17:46:02 iZ4HV+4f
起動した後、Enterキーを押すたび、同じ画像が再描画されます。
ぽち、ぽち・・・と、Enterキーを、20回くらい押し続けると、
なぜか画像が変化します。
pal_DrawPolygonは、ここ↓
URLリンク(www.vector.co.jp)



#include "palhsp.as"
repeat
stick KY
if KY=32 {
screen 2,640,480 : cls 4
buffer 3,640,480 : cls 4
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1
redraw 1
next : next : next
gsel 2,1
gcopy 3,0,0,640,480
}
wait 5
loop

579:名前は開発中のものです。
07/03/11 18:21:12 /T7FdIWg
リンク先はマンドクセからみてないが
基本命令の使い方すらわかってないのは良くわかった
こんなレベルでプラグイン使うな

あと、せめてこのソースが何をしようとしているか
ぐらい書け

「ボタン押している間だけ台形が表示される」か?

なんでメインループの、しかもキーチェックの中に
screen,bufferがあるんだ?

580:名前は開発中のものです。
07/03/11 20:33:12 yv4HZkMu
>>578
これはひどい

581:名前は開発中のものです。
07/03/11 21:08:13 9lsP7SN/
もっとソフトに叩いてやれよ。
HSPスレは初心者もしくはプログラム触り始めの人間が
現れるとすぐにムキになってブッ叩くクセがあって良くない。

>>578
これはひどい

582:名前は開発中のものです。
07/03/11 21:33:08 fVOjDyWr
初めて見るプラグインで、役に立ちそうな機能を持ってたので
どんな代物なのか自分でも確かめるために、>578の件を調べてみたが。

一見、HSPでも問題なく動いているように見えるけど、
更新されたのが2002年2月で、HSP3が出るずっと前のプラグインだから
HSP3には完全対応してないんじゃないかと思った。

実際、>578のスクリプトを2.61用に一部修正して実行したら、
描画が変化する問題は発生しなかった。
それにしても

>>578
これはひどい

ボタン1回押すごとに、324個のポリゴン描画してるのは
573の意図したものなのか、疑わしいな。

参考までに。 wait 5の前に
title str(cnt)
とか追加して、実行してみるといい。
これが573の意図した動作なのかどうか。

583:名前は開発中のものです。
07/03/11 22:29:42 /T7FdIWg
#include "palhsp.as"
screen 0,640,480 : //ループに入れるなカス!IDは0だろ
buffer 3,640,480 : cls 4//透過色用に黒か?
//意図は知らんがループ前に作ってちゃ駄目か?
for j, 11, 7, -1 : for k, 3, 12,1 : for i, 6,15,1
pal_SetPoint 0,310+i*2,310+i*2
pal_SetPoint 1,410+j*2,310+j*2
pal_SetPoint 2,410+k*2,410+k*2
pal_SetPoint 3,310+k*2,410+k*2
color 25,125,50
pal_DrawPolygon 4,1//んなマイナーなプラグイン知らん
next : next : next
gsel 0//描画対象を0に戻せ
repeat
redraw 0 //まず描画を裏画面にセットしろカス
color 80,50,50 : boxf //まず先に画面を背景でクリアしろカス!
//色をつけてみたのは透過するか確かめる為だ
//その上から描きたいものを載せろこのウジムシ!!
stick KY,32 //押しっぱなしの処理がしたいのか?ボウヤ
if KY=32 {
gmode 2//透過コピーで良いのか?
gcopy 3,0,0,640,480 //ID3に描いといた奴をコピーで良いのか?
}
redraw 1 //全部描き終わったら裏画面を表画面に反映しやがれ
title str(""+cnt+" "+(cnt/60))//秒間60フレームより速ければ秒より速く表示
await 5//awaitにしてみた
loop
//お前のママでもエスパーでもないんだ
//何やりたいかなんか知るかカス
//動的に変化させて表示させる意図なら知らん!自分で考えろ
//マニュアルのredrawとscreenとgselとこ100回読んで氏ね

584:名前は開発中のものです。
07/03/11 23:03:03 k4eFOmxa
どうでもいいことだけど
>screen 0,640,480
いらなくね
>redraw 0
redraw 2のがいいはず。
まあ実際はたいして変わらんが。
>KY=32
KY&32のがええかも。仕様によるが。
>gmode 2
ループの外に出せるね。

585:名前は開発中のものです。
07/03/11 23:10:44 V3/hxKyI
思い切りひっぱたいた後で一行ずつ丁寧に教えててワラタ

ツンデレってこのスレのことやね。

586:名前は開発中のものです。
07/03/11 23:24:14 /T7FdIWg
screenとgmodeについては
今後の変更のことも考えてそうした
背景を透過なしで使う可能性が高いからな

redrawはそうだっけ?忘れた

keyはコイツには&の説明すんのはめんどかった




587:1/2
07/03/12 02:01:28 UmbRWuRt
>>559
分岐無しだけど・・・
準備
#define colrgb(%1) color ((%1)>>16),(((%1)>>8)&$ff),((%1)&$ff)
#module
#deffunc getdat var indx,array ps,int no,int fg,local notdat,local strdata
chk='=' , ':' , ':' , ':' , ':'
noteget notdat,0:if fg=1 {indx=strsizeindx(no):masmax=no}:getstr strdata,notdat,indx,','
if strsize>0 {if fg=0 {masmax++:indx+strsize:strsizeindx(masmax)=indx}:idx=0
repeat 5:getstr tmpstr,strdata,idx,chk(cnt):if (strsize>0) {idx+strsize
: ps(cnt)=int(tmpstr)}loop}else{return -1}return masmax
#deffunc masmov array pdat,int pno,int masno
dupptr masdat,varptr(pdat(0,pno)),4*5:getdat indx,masdat,masno,1:return
#global
mas="0=16:16:100:80:,1=120:25:80:70:,1=200:32:80:70:,1=280:50:80:70"
mas+",1=300:130:80:70,1=220:150:80:70,1=140:180:80:70,1=80:230:80:70"
mas+",2=40:290:80:70:1j0n,1=120:300:80:70,3=200:290:80:70,1=280:310:80:70,10=360:340:120:90"
evmes="☆スタート☆","イベント無し","分岐点\n(未実証)","一回休み\n(未実証)","4","5","6","7","8","9"," ★ゴール★"
evcol=$f08080,$8080c0,$505080,$806030,$806030,$806030,$806030,$806030,$806030,$806030,$5080f0
evmcol=$ffff50,$a0f0f0,$f000f0,$101010,$806030,$806030,$806030,$806030,$806030,$806030,$f05060
randomize:buffer 1:notesel mas:repeat :getdat indx,ps,0,0:if stat<0 {break}
masmax=stat:colrgb(evcol(ps(0))):circle ps(1),ps(2),ps(1)+ps(3),ps(2)+ps(4),1
colrgb(evmcol(ps(0))):pos ps(1),ps(2)+ps(4)/2-8:mes evmes(ps(0)):color:pos ps(1),ps(2):mes masmax-1:loop
playernam="@","A":playermax=2
続く

588:2/2
07/03/12 02:06:06 UmbRWuRt
メイン
repeat:dim pdat,5,playermax:dim player,playermax:playerno=0:sai=0
gsel 0:clrobj :pos 500,100:button gosub "サイコロ",*rndsai:repeat:redraw 0:pos 0,0:gcopy 1,0,0,640,480:
if (sai>0)&(((cnt-tim)\15)=0)&mov{sai--:player(playerno)++:if sai=0{playerno=(playerno+1)\2::objprm 0,"サイコロ"}}
repeat playermax:masmov pdat,cnt,player(cnt):if pdat(0,cnt)=10 {Gaul=1}:color:x=pdat(1,cnt)+pdat(3,cnt)/5+cnt*32
y=pdat(2,cnt)+pdat(4,cnt)/5:circle x,y,x+17,y+17,1:color cnt*255,(cnt=0)*255:pos x,y:
mes playernam(cnt):loop:pos 0,0:color:mes "残り("+sai+")"
if Gaul{break}:repeat 2:pos 200-cnt,5-cnt:color (playerno*255)*cnt,(playerno=0)*255*cnt
mes "[ "+playernam(playerno)+" ] の番です。":loop:redraw 1:await 10:loop:Gaul=0:pos 250,220:color 255:
mes "[ "+playernam(playerno)+" が ゴール しました]":redraw 1:wait 200:loop
*rndsai:if sai=0 {sai=rnd(6)+1:title "サイの目["+sai+"]":mov=0:objprm 0,"移動"}else{mov=1:tim=cnt}:return

適当に改行してコメント入れてけば読めるだろう

589:名前は開発中のものです。
07/03/12 11:04:23 mM+HHXub
awaitって何ミリ秒ウェイトしてるの?
確かawait 16なら前のawaitから0.016秒「待った」後でウェイトが入るんだよね?

590:559
07/03/12 11:37:51 NDVpsEF4
>>587
>>588
ありがとうございます。

591:名前は開発中のものです。
07/03/12 11:55:55 gLL2hKAr
FPSを60に近づけたい時は、awaitの値を16にするんですよね。
うちの環境では、15と16では、かなりの差があり、15の方が正確に、秒をきざんでいるのですが
環境に依存するのでしょうか?

repeat
a+
title "" + a/60 + "秒"
await 15
loop

592:名前は開発中のものです。
07/03/12 12:32:17 PDxfvhOI
気になるようなら時刻を拾って補正すればいいんでは.
そこまで面倒かけてする必要があるかは謎だが.

うちも15の方が近い(60FPSよりやや早めになる)
16ってのは単に1000を60で割ったら16〜17が一番近いってだけだろうから
理論上は60フレームで960mm秒しか待たない筈でも遅延を入れると
1000mm秒超えて結果的に15の方が近くなるのだと思う
たぶんマシンパワーが無いほど遅延が大きいと想像するがよく知らない

エロイひとの解説を待とう

593:名前は開発中のものです。
07/03/12 12:52:56 c7c2vkZ/
俺はOSのスレッド切替が10msで実行単位が20msだから間をとって2の乗数でキリのいい16、だと思ってた

594:名前は開発中のものです。
07/03/12 12:59:26 UmbRWuRt
>>591
await 1 とawait 10 を比べてみ
ほとんど違いが無いから
Win2000以降のOSだとawait 1でも10前後待つ


winmm.dll
 timeBeginPeriod タイマー精度の設定
 timeEndPeriod 設定解除
 timeGetTime 設定に合った精度で経過時間を取得できる

kernel32.dll
 Sleep 設定に合わせた精度で待つ

これらの組み合わせで、ある程度正確に待てる
使い方が分からなかったら、モジュールにして
公開してる人が居るから利用させて貰えばいい

有る程度正確って言うのは、Sleep 1としても
2ms待ってしまう環境があるから
2ms未満は時間を監視しながらループ回して
待てば正確さは増す(けどCPU使用率は上がる)

注意としては、awaitとSleepは別物なので、
Sleepを使っていてもawait 0は必ず必要
無いと閉じるをクリックしても終了出来なかったり
マウス座標収得やオブジェクトボタンの操作も出来ない

595:名前は開発中のものです。
07/03/12 16:32:41 gLL2hKAr
>>592-594
回答有難うございます。
探してみたところ、MIA氏のtime.hpiが良さげなので、使ってみます。

596:名前は開発中のものです。
07/03/12 17:18:23 UmbRWuRt
>>595
それは用途が違うHSP2時代のawaitが
少し処理を食ってたから作られた物で
タイマー精度には関係ない

hsp Manager で検索してみ

597:名前は開発中のものです。
07/03/12 18:23:04 kFfYyS9X
>>570
何がわからないのかわからないのが初心者クオリティ

598:名前は開発中のものです。
07/03/12 20:14:55 gLL2hKAr
>>596
サンクス! Time Manager for HSP3ですね。

599:578
07/03/12 20:48:26 bHRnq+dr
>>579-584
いろいろ、ありがとうございました。
>>583のプログラムはいろいろノウハウがあって驚きました。
自分のとは比べ物にならないほど綺麗に画面が切り替わりました。
初心にもどって頑張ります。
またきます。

600:名前は開発中のものです。
07/03/12 20:53:37 c7c2vkZ/
初心者じゃなかったのか

601:583
07/03/12 21:15:42 PDxfvhOI
( ゚д゚)、ペッ 地球人め

602:名前は開発中のものです。
07/03/13 19:35:12 N8GDXKRx
コーディング能力・・・5だと?!

603:名前は開発中のものです。
07/03/15 21:35:25 R/FJK7NS
コミュニケーション能力はマイナスみたいね。

604:名前は開発中のものです。
07/03/16 04:49:37 BDnU/+tv
>>603
誰がうまいことをいえと・・・



この2日間の空白を作ったのはは明らかに空気が詠めない子だね (`ω´;)

605:名前は開発中のものです。
07/03/16 12:32:21 s337brCd
今日ぐぐったら、ウィンドウ半透明化のサンプルを見つけた。
これから全てのウィンドウを半透明化してやるぜフゥーファハハハハー

606:名前は開発中のものです。
07/03/16 23:28:12 5xoFEMkV
なんだ、XPで擬似Vistaでもやる気か!

607:名前は開発中のものです。
07/03/17 04:07:05 w6Ip/tdc
>>605
HSPだとメインウィンドウだけしか半透明にできないよね。
もし、子ウィンドウも半透明にできるんだったら知りたい。

608:名前は開発中のものです。
07/03/17 17:06:27 HgUYLq+d
>>605
重くなりそう

609:名前は開発中のものです。
07/03/17 19:08:59 q4U0F70w
>>608
重くなりました・・・
特にタブブラウザと2chブラウザが致命的だたーよ

610:名前は開発中のものです。
07/03/17 21:02:55 Z5sWvh6/
メモリ2GB以上推奨じゃね。

611:名前は開発中のものです。
07/03/26 00:48:34 pDPzBZgB
あげる

612:名前は開発中のものです。
07/03/26 01:10:12 EnuQNPAk
いらない

613:名前は開発中のものです。
07/03/28 18:27:58 A5jDWsKh
フルスクリーンとウィンドウを動的に切り替えるdirectxのdllは無いのでしょうか?
hspdxfixじゃ切り替えようと思うと急に落ちてしまって・・・

614:名前は開発中のものです。
07/03/28 21:21:13 +O7YOmys
処理として凄く面倒だから対応していないソフトって結構あるね

615:名前は開発中のものです。
07/03/28 21:41:27 rMTkz8BK
再起動後に有効になります。
で良いんじゃね。


616:名前は開発中のものです。
07/03/28 21:47:57 W4jKrJc5
iniファイルとかを書き換えて再起動でいいんじゃね?

617:613
07/03/28 21:59:47 A5jDWsKh
切り替えは再起動がやはり前提になるのですね・・・返答、ありがとうございました

618:名前は開発中のものです。
07/03/28 22:04:14 W4jKrJc5
再起動ってかDLL解放して再初期化だな

619:名前は開発中のものです。
07/03/28 22:54:45 zDNvHnoM
;フルスクリーンじゃなくて、全画面ウィンドウへの切り替えなら…

#include "HSPDXFIX.as"
sx=800:sy=600:screen 0,sx,sy,0:d3d=0
es_ini:if stat : goto *owari
onexit goto *owari
es_screen sx,sy,32,0,1,d3d:if stat : goto *owari
es_cls 0,0,0:wx0=ginfo_wx1:wy0=ginfo_wy1
*main:await 0:kyP=ky:stick ky,ky:if (ky=128):goto *owari
color 0,0,0:es_boxf 0,0,sx,sy:color 255,255,255:es_boxf sx-8,sy-8,sx,sy
pos 0,0:es_mes strf("あめんぼあかいな(゚ω゚)aiueo ky=%3d",ky)
if ((ky=4)&(kyP=0)) {bgscr 0,ginfo_dispx ,ginfo_dispy, 0,0,0}
if ((ky=1)&(kyP=0)) {screen 0,sx,sy,0,wx0,wy0}
es_sync -17,2:goto *main
*owari:es_bye:end

;(全画面<->窓の切り替え処理は手抜きなので、
;このままでは実用するには不都合あると思いますが、参考までに。)

620:名前は開発中のものです。
07/03/28 23:00:06 zDNvHnoM
あー、
カーソル右で全画面、
カーソル左で窓モードに戻す
ESCで終了、です。(読みづらいかと思ったので一応)

621:名前は開発中のものです。
07/03/29 04:26:24 yzMVV1IZ
ZGPはできたけど
今更3には対応していないしなぁ

622:名前は開発中のものです。
07/03/29 04:44:25 YSXEyT2v
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


623:名前は開発中のものです。
07/03/29 10:39:59 3R4jXytD
ちっちゃい窓画面と二倍表示の窓画面の切り替えをしたくて、

#deffunc draw int dispbuf
getkey key,112
if key {
 if key_on = 0 {
  if wsize {
   wsize = 0
   screen 0,320,240,0,(ginfo_dispx / 2 - 160),(ginfo_dispy / 4) : cls 4
  } else {
   wsize = 1
   screen 0,640,480,0,(ginfo_dispx / 2 - 320),(ginfo_dispy / 4) : cls 4
  }
  key_on = 1
 }
} else : key_on = 0

gsel 0 : pos 0,0
if wsize = 0 : gcopy dispbuf,0,0,320,240
if wsize = 1 : gzoom 640,480,dispbuf,0,0,320,240
gsel dispbuf
return

「dispbufに全部描画したあとスクリーンに(拡大)コピーする」
っていう命令を作ってredrawの代わりに使ってるんだけど
なんか他にもっと簡単な手段とか無いですか?

624:名前は開発中のものです。
07/03/29 11:35:10 5ZBqJ65v
>>623
大きさ変えるだけならwidthでいいんじゃね?
あと、clsよりboxfの方がいい。

625:名前は開発中のものです。
07/04/01 08:33:57 PkSFAggM
repeat -1
chp_zure.i = furehaba * sin((kakusokudo*cnt)+(kakudosokudo*i));正弦波?
i++
if i>chp_max : i=0
//ここでずらした位置に画像をコピー処理
loop

擬似ラスタスクロールで波が作りたいんですが、自分で作ったやつを見ると何故かカクカクしてしまいます。
ズレを画像の縦の座標1ピクセルごとに正弦波で作ってやって、それをその座標でコピーしています。

626:名前は開発中のものです。
07/04/01 08:42:58 bh2+2cXg
・redraw入れたか?
・変数名が酷いがどう思う?
・sin( kakusokudo * (cnt + i) )のほうがいいと思うけど何か?

627:名前は開発中のものです。
07/04/01 10:45:02 PkSFAggM
>>626
redrawは入れました
読みずらくてすいません。

628:名前は開発中のものです。
07/04/01 10:50:56 bh2+2cXg
int型になってるとか


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4999日前に更新/261 KB
担当:undef