HSP - Hot Soup Processor [14]
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/12/09(土) 22:35:08ID:E0eCgjhQ.( ,,) スクリプト言語 HotSoupProcessor について
( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。
, -──- 、
(,;::-──-; )-、
.|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事
l; :::;;;l-' / * ヲチ、ネタなどはスレ違い
,-ヽ───.'-、´.. * 歴代スレ、関連サイトは >>2-4 あたり
ヽ ──── '
ONION software (本家)
http://www.onionsoft.net/
0539名前は開発中のものです。
2007/03/08(木) 17:51:20ID:V+92YLpv物理計算を単純にした感じでいいんじゃね?
0540名前は開発中のものです。
2007/03/08(木) 19:31:25ID:swI1jhiZブレーキ 停止
じゃなくて
アクセル 速度上昇
ブレーキ 速度減少
にして、速度によって位置を変えていけばいいんじゃね?
って回答でおk?
0541名前は開発中のものです。
2007/03/08(木) 19:34:54ID:TEJL+ADwすいません、物理計算っていうのがわかりません;;
0542名前は開発中のものです。
2007/03/08(木) 19:42:23ID:TEJL+ADwなるほどお!? わかったような、わからないような・・・
普通のキー入力だと、キーを離すとキャラクタが止まってしまいますよね?
キーを離しても、慣性で進んでいくような、レースゲームでは当たり前でしょうが、
経験が浅いのかおつむがバカなのかその具体的な方法が思いつきません
0543名前は開発中のものです。
2007/03/08(木) 20:07:41ID:hsHUTUZZ//キーチェック
if(加速キーが押されてたら):加速度=加速度+いくらか
if(減速キーが押されてたら):加速度=加速度-なんぼか
//座標更新
座標=座標+加速度
//グラフィック表示
pos(座標…
gcopy(グラフィック表示…
//ループ毎に減らす(アクセルを踏んでないとエンジンブレーキ)
加速度=加速度-ちょっと
goto *main
レースゲームだとたぶんキャラの位置は固定で背景だけが動く
だろうから適当に工夫してちょ
0544名前は開発中のものです。
2007/03/08(木) 20:29:52ID:TEJL+ADwおお!ありがとうございます! これを元に考えてみます
0545名前は開発中のものです。
2007/03/09(金) 04:35:11ID:PSudILgY加速度→速度
いくらか・なんぼか→加速度
じゃね?
0546名前は開発中のものです。
2007/03/09(金) 05:52:08ID:mAtCxyxj本能で書いた
すまぬ
0547名前は開発中のものです。
2007/03/09(金) 22:18:11ID:OmsA6ix3背景で画面をクリア(残像を消去)しながらやるとちらついてしまいます。
多分gzoom命令のせいだと思いますがちらつかなくする方法ってありますか?
0548名前は開発中のものです。
2007/03/09(金) 23:08:54ID:mAtCxyxjgcopyではチラつかないのにgzoomだとチラつく?
0549名前は開発中のものです。
2007/03/09(金) 23:48:34ID:9wm9gx0Iだから色々チラつくんじゃないかな。
0550547
2007/03/10(土) 07:57:00ID:BrhUO2D5初歩的なことですいませんでした
0551548
2007/03/10(土) 08:53:38ID:s4EgJTT+0552名前は開発中のものです。
2007/03/10(土) 09:47:14ID:RgqImxK/このTIPSは理解しやすいように変数に全角文字を 使ってるけど
行儀が悪いので半角に換えましょう
みたいな事が書かれてたんだけど、・・・行儀悪い?
俺見易くなるようにNOを#とかにしてるけど・・・
後で思わぬ不具合が出るとか?
0553名前は開発中のものです。
2007/03/10(土) 12:02:56ID:EgnyZfl8どの書き方がよくてどれが悪いなんて無い
0554名前は開発中のものです。
2007/03/10(土) 15:53:04ID:dqgHW26b0555名前は開発中のものです。
2007/03/10(土) 16:21:45ID:C28IpD1h0556名前は開発中のものです。
2007/03/10(土) 17:19:27ID:eQ0ijKNl他人に公開することもなく、チームを組んで作るとか後で後輩に引き継ぐとかするのでもなければ
行儀なんてどうでもいいんだろうな。現実にはそういう場合でもきったねえんだけどさ。
でもHSPなんてフリーソフトなんだから、やっぱ標準的な書き方しないと心配じゃね?変数を全角で
書いて、もし変な不具合が起こったらどうしようってずーっと心配しなくちゃいけない。行儀がどうこう
ってんじゃなくて、信用できない。起こらないんだろうけど。てか現実にはマイクロソフトだってそんな
に信用できないけどさ。
>>552
Dr.Dに怒られちゃうぞ。
0557名前は開発中のものです。
2007/03/10(土) 17:34:29ID:eQ0ijKNlシューティングでもテトリスでも作り方がある程度分かればアクションも作れるだろ。あとはたっぷり
アクションゲームをやることだ。お前の言ってるアクションが格闘アクションのことだったら知らんけど。
てかHSPでアクションゲームに特化して解説してるがなかったら作れないってんならやめちまえ!
でも頑張ってね。(←ツンデレで)
0558名前は開発中のものです。
2007/03/10(土) 17:51:50ID:GJ+Cs3X4シューティングよりも、テトリスの方が似てるかな。
テトリスの棒が左右に歩いてジャンプできれば、一画面物アクションなら出来たも同然。
0559名前は開発中のものです。
2007/03/10(土) 18:51:01ID:3t9NJGvEサイコロの出た目によってコマが進むしくみが知りたいのですがどうすればよいのかわかりません。
0560名前は開発中のものです。
2007/03/10(土) 19:31:06ID:s4EgJTT+0561名前は開発中のものです。
2007/03/10(土) 19:49:45ID:GJ+Cs3X4双六は、マップのデータの持ち方が意外にややこしいかもな。
・・・どうも、それ以前の段階で詰まってそうな感じだけど。
0562名前は開発中のものです。
2007/03/10(土) 19:56:29ID:5ZAWuvtIまず一方通行&一直線のすごろくを作って、
配列インデックスと座標データとコマ表示の関係を学ぶといい。
1.一方通行&一直線のすごろく (基本)
2.クネクネしたすごろく (応用)
3.ぐるぐる回るすごろく (モノポリーなど)
4.分岐やループのあるすごろく (人生ゲームなど)
5.目的地があり、好きな方向に動けるすごろく (桃太郎電鉄など)
この流れで作っていけば君もすごろくマスターだ!
0563名前は開発中のものです。
2007/03/10(土) 21:02:03ID:rcfj8Pc0同一ソース内に全角と半角を混ぜるなんて、
ちゃんと動いたとしても、気持ち悪くて出来ないな。
万が一、半角スペースのつもりで全角スペースを入れたときとか
見つけにくいんだよ意外と。
「そんなミスするわけないだろ(笑)」とか思っててもやってしまうのが
プログラミング。
少なくともそういう、「全角だろうが半角だろうがOK!」
っていう教え方をする先輩や上司はいないだろうな。
というか既に結論出ちゃってるけど、
個人でやるなら自由にすればいい。
団体でやるならマナーを守れと。
0564名前は開発中のものです。
2007/03/10(土) 21:14:58ID:Of9Rb6RG0565名前は開発中のものです。
2007/03/10(土) 22:04:35ID:A2NSoGOm統一すんのは検索効率もあるし
0566名前は開発中のものです。
2007/03/10(土) 22:58:30ID:s4EgJTT+コメント文をソースに書くとき
全角にして半角に戻すのって面倒臭くない?
VC++でもしょっちゅう間違えてソースの方に
全角スペース入れてしまってコンパイル蹴られる。
漢字キーがもうちょっと近くにあると嬉しいのだが
0567名前は開発中のものです。
2007/03/10(土) 23:00:49ID:Of9Rb6RG0568名前は開発中のものです。
2007/03/10(土) 23:05:06ID:s4EgJTT+0569名前は開発中のものです。
2007/03/10(土) 23:25:27ID:9POELrpn0570名前は開発中のものです。
2007/03/10(土) 23:28:51ID:uQgnCiseマルチ乙w
釣りじゃないんなら
なにがわかんないのか書けばいいと思うよ
0571名前は開発中のものです。
2007/03/10(土) 23:34:42ID:s4EgJTT+シフト押しながらスペースで全角スペースになる
なんで家ではやってなかったんだ俺
なんか理由があった気がするが…忘れた
0572名前は開発中のものです。
2007/03/11(日) 00:39:28ID:stPPhm55es_set等でスプライトの優先順位を設定した際に
数値が大きいスプライトが手前に表示されるのですが、
小さいほうを手前に出来ないでしょうか?
なんか設定ミスってんのかな、俺。
0573名前は開発中のものです。
2007/03/11(日) 09:11:36ID:iZ4HV+4fウィザードリィ風な3Dダンジョンをつくるのに台形の塗り潰し機能を使おうとしてます。
壁と天井の色を分けて裏画面で奥から手前に向かう順番で壁で塗り潰していってるのですが、
pal_DrawPolygonを使っていると、画面を何度か更新しているうちに
色がどちらか一方の色だけにかわってしまいます。
0574名前は開発中のものです。
2007/03/11(日) 12:00:57ID:/T7FdIWggsquareじゃ駄目なん?
0575名前は開発中のものです。
2007/03/11(日) 13:01:37ID:9H6tJUaN0576名前は開発中のものです。
2007/03/11(日) 15:27:59ID:GsSBQTuQ0577573
2007/03/11(日) 15:49:57ID:iZ4HV+4fサンクス!
gsquareにかえたら問題解消でした。
短いソースかいてみます。
0578573
2007/03/11(日) 17:46:02ID:iZ4HV+4fぽち、ぽち・・・と、Enterキーを、20回くらい押し続けると、
なぜか画像が変化します。
pal_DrawPolygonは、ここ↓
http://www.vector.co.jp/soft/win95/prog/se209258.html
#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
0579名前は開発中のものです。
2007/03/11(日) 18:21:12ID:/T7FdIWg基本命令の使い方すらわかってないのは良くわかった
こんなレベルでプラグイン使うな
あと、せめてこのソースが何をしようとしているか
ぐらい書け
「ボタン押している間だけ台形が表示される」か?
なんでメインループの、しかもキーチェックの中に
screen,bufferがあるんだ?
0580名前は開発中のものです。
2007/03/11(日) 20:33:12ID:yv4HZkMuこれはひどい
0581名前は開発中のものです。
2007/03/11(日) 21:08:13ID:9lsP7SN/HSPスレは初心者もしくはプログラム触り始めの人間が
現れるとすぐにムキになってブッ叩くクセがあって良くない。
>>578
これはひどい
0582名前は開発中のものです。
2007/03/11(日) 21:33:08ID:fVOjDyWrどんな代物なのか自分でも確かめるために、>578の件を調べてみたが。
一見、HSPでも問題なく動いているように見えるけど、
更新されたのが2002年2月で、HSP3が出るずっと前のプラグインだから
HSP3には完全対応してないんじゃないかと思った。
実際、>578のスクリプトを2.61用に一部修正して実行したら、
描画が変化する問題は発生しなかった。
それにしても
>>578
これはひどい
ボタン1回押すごとに、324個のポリゴン描画してるのは
573の意図したものなのか、疑わしいな。
参考までに。 wait 5の前に
title str(cnt)
とか追加して、実行してみるといい。
これが573の意図した動作なのかどうか。
0583名前は開発中のものです。
2007/03/11(日) 22:29:42ID:/T7FdIWgscreen 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回読んで氏ね
0584名前は開発中のものです。
2007/03/11(日) 23:03:03ID:k4eFOmxa>screen 0,640,480
いらなくね
>redraw 0
redraw 2のがいいはず。
まあ実際はたいして変わらんが。
>KY=32
KY&32のがええかも。仕様によるが。
>gmode 2
ループの外に出せるね。
0585名前は開発中のものです。
2007/03/11(日) 23:10:44ID:V3/hxKyIツンデレってこのスレのことやね。
0586名前は開発中のものです。
2007/03/11(日) 23:24:14ID:/T7FdIWg今後の変更のことも考えてそうした
背景を透過なしで使う可能性が高いからな
redrawはそうだっけ?忘れた
keyはコイツには&の説明すんのはめんどかった
05871/2
2007/03/12(月) 02:01:28ID:UmbRWuRt分岐無しだけど・・・
準備
#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
続く
05882/2
2007/03/12(月) 02:06:06ID:UmbRWuRtrepeat: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
適当に改行してコメント入れてけば読めるだろう
0589名前は開発中のものです。
2007/03/12(月) 11:04:23ID:mM+HHXub確かawait 16なら前のawaitから0.016秒「待った」後でウェイトが入るんだよね?
0591名前は開発中のものです。
2007/03/12(月) 11:55:55ID:gLL2hKArうちの環境では、15と16では、かなりの差があり、15の方が正確に、秒をきざんでいるのですが
環境に依存するのでしょうか?
repeat
a+
title "" + a/60 + "秒"
await 15
loop
0592名前は開発中のものです。
2007/03/12(月) 12:32:17ID:PDxfvhOIそこまで面倒かけてする必要があるかは謎だが.
うちも15の方が近い(60FPSよりやや早めになる)
16ってのは単に1000を60で割ったら16〜17が一番近いってだけだろうから
理論上は60フレームで960mm秒しか待たない筈でも遅延を入れると
1000mm秒超えて結果的に15の方が近くなるのだと思う
たぶんマシンパワーが無いほど遅延が大きいと想像するがよく知らない
エロイひとの解説を待とう
0593名前は開発中のものです。
2007/03/12(月) 12:52:56ID:c7c2vkZ/0594名前は開発中のものです。
2007/03/12(月) 12:59:26ID:UmbRWuRtawait 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は必ず必要
無いと閉じるをクリックしても終了出来なかったり
マウス座標収得やオブジェクトボタンの操作も出来ない
0595名前は開発中のものです。
2007/03/12(月) 16:32:41ID:gLL2hKAr回答有難うございます。
探してみたところ、MIA氏のtime.hpiが良さげなので、使ってみます。
0596名前は開発中のものです。
2007/03/12(月) 17:18:23ID:UmbRWuRtそれは用途が違うHSP2時代のawaitが
少し処理を食ってたから作られた物で
タイマー精度には関係ない
hsp Manager で検索してみ
0597名前は開発中のものです。
2007/03/12(月) 18:23:04ID:kFfYyS9X何がわからないのかわからないのが初心者クオリティ
0598名前は開発中のものです。
2007/03/12(月) 20:14:55ID:gLL2hKArサンクス! Time Manager for HSP3ですね。
0599578
2007/03/12(月) 20:48:26ID:bHRnq+drいろいろ、ありがとうございました。
>>583のプログラムはいろいろノウハウがあって驚きました。
自分のとは比べ物にならないほど綺麗に画面が切り替わりました。
初心にもどって頑張ります。
またきます。
0600名前は開発中のものです。
2007/03/12(月) 20:53:37ID:c7c2vkZ/0601583
2007/03/12(月) 21:15:42ID:PDxfvhOI0602名前は開発中のものです。
2007/03/13(火) 19:35:12ID:N8GDXKRx0603名前は開発中のものです。
2007/03/15(木) 21:35:25ID:R/FJK7NS0604名前は開発中のものです。
2007/03/16(金) 04:49:37ID:BDnU/+tv誰がうまいことをいえと・・・
この2日間の空白を作ったのはは明らかに空気が詠めない子だね (`ω´;)
0605名前は開発中のものです。
2007/03/16(金) 12:32:21ID:s337brCdこれから全てのウィンドウを半透明化してやるぜフゥーファハハハハー
0606名前は開発中のものです。
2007/03/16(金) 23:28:12ID:5xoFEMkV0607名前は開発中のものです。
2007/03/17(土) 04:07:05ID:w6Ip/tdcHSPだとメインウィンドウだけしか半透明にできないよね。
もし、子ウィンドウも半透明にできるんだったら知りたい。
0608名前は開発中のものです。
2007/03/17(土) 17:06:27ID:HgUYLq+d重くなりそう
0609名前は開発中のものです。
2007/03/17(土) 19:08:59ID:q4U0F70w重くなりました・・・
特にタブブラウザと2chブラウザが致命的だたーよ
0610名前は開発中のものです。
2007/03/17(土) 21:02:55ID:Z5sWvh6/0611名前は開発中のものです。
2007/03/26(月) 00:48:34ID:pDPzBZgB0612名前は開発中のものです。
2007/03/26(月) 01:10:12ID:EnuQNPAk0613名前は開発中のものです。
2007/03/28(水) 18:27:58ID:A5jDWsKhhspdxfixじゃ切り替えようと思うと急に落ちてしまって・・・
0614名前は開発中のものです。
2007/03/28(水) 21:21:13ID:+O7YOmys0615名前は開発中のものです。
2007/03/28(水) 21:41:27ID:rMTkz8BKで良いんじゃね。
0616名前は開発中のものです。
2007/03/28(水) 21:47:57ID:W4jKrJc50617613
2007/03/28(水) 21:59:47ID:A5jDWsKh0618名前は開発中のものです。
2007/03/28(水) 22:04:14ID:W4jKrJc50619名前は開発中のものです。
2007/03/28(水) 22:54:45ID: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
;(全画面<->窓の切り替え処理は手抜きなので、
;このままでは実用するには不都合あると思いますが、参考までに。)
0620名前は開発中のものです。
2007/03/28(水) 23:00:06ID:zDNvHnoMカーソル右で全画面、
カーソル左で窓モードに戻す
ESCで終了、です。(読みづらいかと思ったので一応)
0621名前は開発中のものです。
2007/03/29(木) 04:26:24ID:yzMVV1IZ今更3には対応していないしなぁ
0622名前は開発中のものです。
2007/03/29(木) 04:44:25ID:YSXEyT2v? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
0623名前は開発中のものです。
2007/03/29(木) 10:39:59ID: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の代わりに使ってるんだけど
なんか他にもっと簡単な手段とか無いですか?
0624名前は開発中のものです。
2007/03/29(木) 11:35:10ID:5ZBqJ65v大きさ変えるだけならwidthでいいんじゃね?
あと、clsよりboxfの方がいい。
0625名前は開発中のものです。
2007/04/01(日) 08:33:57ID:PkSFAggMchp_zure.i = furehaba * sin((kakusokudo*cnt)+(kakudosokudo*i));正弦波?
i++
if i>chp_max : i=0
//ここでずらした位置に画像をコピー処理
loop
擬似ラスタスクロールで波が作りたいんですが、自分で作ったやつを見ると何故かカクカクしてしまいます。
ズレを画像の縦の座標1ピクセルごとに正弦波で作ってやって、それをその座標でコピーしています。
0626名前は開発中のものです。
2007/04/01(日) 08:42:58ID:bh2+2cXg・変数名が酷いがどう思う?
・sin( kakusokudo * (cnt + i) )のほうがいいと思うけど何か?
0627名前は開発中のものです。
2007/04/01(日) 10:45:02ID:PkSFAggMredrawは入れました
読みずらくてすいません。
0628名前は開発中のものです。
2007/04/01(日) 10:50:56ID:bh2+2cXg0629名前は開発中のものです。
2007/04/01(日) 11:10:44ID:PkSFAggM一応左右には揺れるんですけど、波みたいに見えないんですよね
波の起こりが遅いように見えます
0630名前は開発中のものです。
2007/04/01(日) 11:47:38ID:bh2+2cXgpicload "test.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
screen 1,SZx,SZy
kakusokudo = 0.05
furehaba = 0.0
dim chp_zure,SZy
i = 0
repeat
?repeat SZy
??chp_zure(cnt) = furehaba * sin( kakusokudo * double(cnt + i) )
?loop
?redraw 0
?color 0,0,0 : boxf
?repeat SZy
??pos chp_zure(cnt), cnt
??gcopy 0,0,cnt,SZx,1
?loop
?redraw 1
?i += 5
?kakusokudo += 0.0001
?furehaba += 0.1
?await 16
loop
ちょっと書いてみた。こんな感じでいい?
0631名前は開発中のものです。
2007/04/01(日) 11:57:28ID:l/QzLrkf#define PI 3.1415926535897932386
w=32 ;波の強さ
t=128 ;波の間隔
buffer 2,640,480 :picload "",1
gsel 0
repeat
repeat ginfo_winy
x=sin(PI*((cnt*360/t+a)\360)/180)*w
y=cnt
pos x,y :gcopy 2,0,y,ginfo_winx,1
loop
redraw 1: redraw 2 :color 0,0,0 :boxf :color 255,255,255
a+=16 ;波の速さ
await 16
loop
0632名前は開発中のものです。
2007/04/01(日) 12:05:42ID:bh2+2cXgbuffer 0
picload "test.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
screen 1,SZx,SZy
kakusokudo = 0.05
furehaba = 0.0
dim chp_zure,SZy
i = 0
repeat
redraw 0
color 0,0,0 : boxf
repeat SZy
chp_zure(cnt) = furehaba * sin( kakusokudo * double(cnt + i) )
pos chp_zure(cnt), cnt
gcopy 0,0,cnt,SZx,1
loop
redraw 1
i += 5 //スピード
kakusokudo += 0.0001 //振動数
furehaba += 0.1 //振れ幅
await 16
loop
0633625
2007/04/01(日) 13:39:14ID:PkSFAggM>>631
ありがとうございます。
初歩的な勘違いをいくつかしていたのが原因だったみたいでした。
あとできたら横揺れに縦揺れを追加する方法が知りたいんです。
一応疑問は解決したので、これはできたらでいいんですが
0634631
2007/04/01(日) 14:01:50ID:l/QzLrkf↓
pos 0,y :gcopy 2,0,x+y,ginfo_winx,1
こうすると縦揺れ(?)になるヨ
pos x,y :gcopy 2,0,x+y,ginfo_winx,1
↑で縦横
0635名前は開発中のものです。
2007/04/01(日) 14:25:16ID:bh2+2cXg#define SZX_EXT 128 //揺れてはみ出た分
#enum BUF_IMG = 0
#enum BUF_SECOND
#enum SCR_MAIN
//元画像バッファ
buffer BUF_IMG
picload "D:\\画像\\ありがちな虹\\25666.jpg" //適当な画像
SZx = double(ginfo_winx)
SZy = double(ginfo_winy)
//横揺れ
buffer BUF_SECOND, SZx + SZX_EXT * 2, SZy
//メインウィンドウ
screen SCR_MAIN, SZx, SZy
//横揺れ用
dim chp_zure_x, SZy + SZX_EXT
kakusokudo_x = 0.05
furehaba_x = 0.0
//縦揺れ用
dim chp_zure_y, SZy
kakusokudo_y = 0.05
furehaba_y = 0.0
i = 0
0636名前は開発中のものです。
2007/04/01(日) 14:26:08ID:bh2+2cXgrepeat
redraw 0
//横揺れを描画
gsel BUF_SECOND
color 0,0,0 : boxf
repeat SZy
chp_zure_x(cnt) = furehaba_x * sin( kakusokudo_x * double(cnt + i) )
pos chp_zure_x(cnt) + SZX_EXT, cnt
gcopy 0, 0,cnt, SZx + SZX_EXT,1
loop
//縦揺れを描画
gsel SCR_MAIN
color 0,0,0 : boxf
repeat SZx + SZX_EXT
chp_zure_y(cnt) = furehaba_y * sin( kakusokudo_y * double(cnt + i) )
pos cnt, chp_zure_y(cnt)
gcopy BUF_SECOND, cnt + SZX_EXT,0, 1,SZx
loop
redraw 1
i += 5 //スピード
kakusokudo_x += 0.00001 //振動数
furehaba_x += 0.2 //振れ幅
kakusokudo_y -= 0.00001 //振動数
furehaba_y -= 0.2 //振れ幅
await 16
loop
0637名前は開発中のものです。
2007/04/01(日) 23:23:00ID:qmrcQHpu亀だけどd
他には特になし、てことでいいのかな…
0638名前は開発中のものです。
2007/04/02(月) 02:06:45ID:yH4J2c4Dって無理なんですかね?
コレができれば管理の手間が減らせそうなんだけど・・・
■ このスレッドは過去ログ倉庫に格納されています