トップページgamedev
1001コメント337KB

NScripter Ver.18.00

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/07/29(金) 13:42:31.89ID:eqalPxic
商業流通でなければフリーで利用可能な
ゲームエンジンNScripterについて語るスレです。

・本家
ttp://www.nscripter.com/

・うpろだ
ttp://nscuploader.pa.land.to/
0362名前は開発中のものです。2011/11/27(日) 21:03:10.68ID:eoZ6QIN8
XPだけど普通に見れた
354の画像の保存形式が変なんじゃね
32bitのビットマップだったりして
0363名前は開発中のものです。2011/11/27(日) 21:25:30.19ID:0xhg9tex
>>361
乙。win7 64bit 普通に通る。>>357
0364名前は開発中のものです。2011/11/27(日) 21:25:48.33ID:0xhg9tex
http://nscuploader.pa.land.to/cgi-bin/ からチェックしてみて欲しいな
0365名前は開発中のものです。2011/11/27(日) 21:29:23.07ID:0xhg9tex
三連投スマソ。ns2アーカイブ化した結果。
0366名前は開発中のものです。2011/11/27(日) 21:29:44.29ID:0xhg9tex
ver 2.95は通る。ver 2.96は落ちる。
0367名前は開発中のものです。2011/11/27(日) 21:54:05.27ID:q0qEg0Mc
>>364
落ちるよ
つか、ns2にしとかないと意味無いじゃん
メンドクサイ
03683612011/11/27(日) 22:36:01.70ID:a0tjD1Mp
OS:XP sp3です。
ns2化すると、ver2.96では落ちないけどBMPの方は表示されませんね。
ver2.95は普通に表示されました。

>>メンドクサイ
すんません。
問題の切り分けをしたいというのもありまして。
お手数おかけしました。
0369名前は開発中のものです。2011/11/28(月) 00:43:14.35ID:zxslFo6L
ん? 素で落ちてるの?
うちは素だと落ちないけど
ns2で落ちるよ
03702842011/12/01(木) 22:41:58.39ID:NXK30nBL
deffontd.dll
色指定や改行指定可の禁則処理できた(と思う)
ろだにあげたのでよかったらみてください。

仕様
#??????を複数重ねちゃ駄目
分離禁則はしない
0371名前は開発中のものです。2011/12/01(木) 22:54:28.54ID:NXK30nBL
あああ
そうだNSFontの外字機能は使えないのかorz
なんてこったい
0372名前は開発中のものです。2011/12/02(金) 00:51:42.51ID:4row51HK
>>371
だからおれはstrspでログ作ってる。外字使わないならdeffontd.dll 一択なんだけどな。
そもそも画像化してるんだから、まあやりようはあるんじゃね?って気もするけどね。
0373名前は開発中のものです。2011/12/06(火) 21:46:23.03ID:W2LMyPQi?2BP(0)

こんな↓文字スプライトって透明度下げて見えなくするように出来なかったっけ?
lsp 0, ":s/25,25,0;#CCCCCC#FFFFFF",0,0

mspで透明度をいじっても文字の形そのままに黒い物が残る
03743702011/12/06(火) 23:08:01.72ID:TucCgelb
deffontd.dllの作者さんありがとう!!!
これで完全に乗り換えられるよ

>>373
確かにのこるね
0375名前は開発中のものです。2011/12/07(水) 01:09:50.49ID:nk3FgMQ4
透明度0の場合は
cspとかvspで最後処理してるから気付かんかったけど
2.93でも残ってるな
0376名前は開発中のものです。2011/12/07(水) 04:43:36.47ID:YHaNY0b7
新バージョン、ウィンドウサイズの設定自由度が大幅にアップしてるね
これが本来の意図通りの動作だったのかも
0377名前は開発中のものです。2011/12/07(水) 08:52:49.68ID:IL5G/2PQ
TIPSのブルーインパルスに入れてもスピード遅くなってないな。安心した
0378名前は開発中のものです。2011/12/07(水) 22:09:07.13ID:nk3FgMQ4
TIPSの報告で
1280x960pixと1280x720pixの表示確認。ワイド時フルスクリーン抑制らしいから

うちの環境下でスケーリングの設定をアスペクト比固定なしで画像が伸びたりしないか
確認のために試したけどフルスクリーンに出来ないな

ただ、geforce6800とかロートルだからかもしれんけど
0379名前は開発中のものです。2011/12/08(木) 12:58:49.10ID:9FwC+kkj
うちの環境だとなぜか起動してすぐ固まる
横1024と1280で4:3と16:9試してみたけどだめだった
Win7のせいかな?
0380名前は開発中のものです。2011/12/08(木) 15:14:52.54ID:wSDHaOPo
>>379
最新バージョン使ってる? こないだまでだと同じ動作だったけど、
今回のは大丈夫だったぞ@64bit win7
0381名前は開発中のものです。2011/12/09(金) 17:25:24.62ID:cULTbQGu
>>380
さんくす
公式から最新の落としたら無事できました
間違えて古い方ので試してた・・・
0382名前は開発中のものです。2011/12/09(金) 20:24:03.90ID:l63F9P98
おk 安心したわ
0383名前は開発中のものです。2011/12/10(土) 06:09:13.64ID:EfF2gWDS
if %1 == 100 mod %1,20
if %1 == 100 mod %5,100

みたいに、if文の後ろに mod を入れると
条件成立の可否に関わらず、Nスクがエラーで落ちるけど
これはバグ?それとも、そういう物?
0384名前は開発中のものです。2011/12/10(土) 07:37:52.52ID:YyLYvlMQ
>>383

それ、%1==100の成否で、modを実行してるつもりかも知れんけど、
modが演算子として解釈されてるんじゃないかな。

if %1==(100 mod %1) puttext ",20"

こんな感じで実行しようとしてると思う。
で、%1が0だったりしたら、NScripterが死ぬとか。
昔のバージョンのNScripterが、ゼロ除算エラーでエラーも吐かずに落ちるのと同じような現象とか。
試してないからわからんけど。
0385名前は開発中のものです。2011/12/10(土) 08:06:14.09ID:EfF2gWDS
>>384
ああ、なるほど!
わかりやすい説明ありがとうございました。
道理でね!なるほど!
0386名前は開発中のものです。2011/12/10(土) 10:56:28.60ID:jqbs6ORv
modは命令文より式としての扱いのが優先なんだな。俺も気をつけよ
0387名前は開発中のものです。2011/12/10(土) 16:29:25.85ID:YyLYvlMQ
>>384

自己レス

あるスクリプトで見たんだけど、

if %1==100:mod %1,20

こんな風に、他の言語のthenと同じようなつもりで命令区切りの:を使っている例もあった。
これなら、最初に意図したとおりに動くかな?

ま、一例として。
0388名前は開発中のものです。2011/12/10(土) 22:09:19.01ID:EfF2gWDS
>>387
試しに手元でテストしてみたら、: 区切りで問題なく動作しました
助かりました。ありがとうー
この辺りの事、Tipsさんか、覚え書きさんに載せておいてー
と無理矢理リクエストしておくよ!
0389名前は開発中のものです。2011/12/11(日) 00:08:07.98ID:KDeEX3jj
解釈間違ってるかもしれんけど
変数書いてある下の方に一応メモっといたよ>by覚え書き

0390名前は開発中のものです。2011/12/11(日) 03:05:13.69ID:vPNFHhzi
乙彼
0391名前は開発中のものです。2011/12/11(日) 23:32:17.69ID:/GWuTjW2
XP暫定版、ボタン待ちするとCPUが100%になる
2.95はそんなことないのに

環境:XPSP3 DirextX9.0c(いまさっき最新版なのを確認)
試したスクリプトはこれです
*define
game

*start
あいうえおかきくけこさしすせそ。
bexec %0
end
0392名前は開発中のものです。2011/12/12(月) 02:18:05.43ID:firhqnOX
>>391
うちじゃ、それなんないわ@win7 64bit
OS依存かね
0393名前は開発中のものです。2011/12/12(月) 04:05:28.34ID:OFDcZryz
俺も最新の暫定版だと100%になった
旧バージョンだと100%にならない
OSはXPでシングルコア
0394名前は開発中のものです。2011/12/12(月) 12:49:37.08ID:firhqnOX
すまん。392だけどコア数2だったから言われてる通りだわ。
295に戻したら全然違った。ノートPCのバッテリー考えて一度295に戻すわ。
0395名前は開発中のものです。2011/12/12(月) 20:46:20.70ID:X9vqvTpj
画面サイズに拘らない場合は旧版使ったほうがいいのかな(´・ω・`)
0396名前は開発中のものです。2011/12/13(火) 01:02:06.05ID:IzlzKUms
>>395
今のところ295(2000対応最終版)を使うのが1番良いと思う
btnwaitでコア1つ100%使い切っちゃう件はムッシュ高橋に報告しておいた方が良い予感
0397名前は開発中のものです。2011/12/14(水) 16:29:03.19ID:k0eqjGXd
 
0398名前は開発中のものです。2011/12/15(木) 22:09:37.03ID:1wiCqtVm
バグ治ったー(゚∀゚)
0399名前は開発中のものです。2011/12/16(金) 18:14:55.55ID:UIQrrAmR
素人質問ですみません。
現在、制作中のゲームの機能で
[フローチャート画像からボタンクリックでそのシーンに移動する]
という機能を制作中なのですが、どう作っていいものかまったくわかりません。
イメージとしては、かまいたちの夜にあったような機能です。
どうかご教授いただきたいのですが……。

現状
縦長のフローチャート画像表示 OK
縦長のフローチャート画像を、マウスホイール上下でスクロールさせる OK

ここまでは出来ているのですが、ここから先、lsp命令でボタンを表示したり、
フローチャート画像の上下スクロールに合わせて、ボタンが上下に連動して動くようにしたいのですが……。
0400名前は開発中のものです。2011/12/16(金) 19:06:31.09ID:3yP3sX4z
それは、単に画像のスクロールと同時にボタンも同じx,y量動かすだけだよ
本気のアドバイスだけど、399がシナリオライター兼スクリプターじゃないなら後々死ぬからやめとけ
0401名前は開発中のものです。2011/12/16(金) 22:58:34.46ID:QScEilv1
>>399
>[フローチャート画像からボタンクリックでそのシーンに移動する]

そのシーンが終わった後、フローチャートに戻ってくるの?
飛ばすだけなら簡単だけど、戻ってくるのは意外と難しいんだぜ。
(最初から戻ってくる前提でスプライト番号なんかを管理しないとダメ)

ボタンのスクロールは、>>400の言ってる通り。

lspでボタン画像を読み込んで、spbtnとかでボタン化。
あとはホイールからの入力があるたびにボタン画像の位置を移動して再度spbtnでボタン化。
この繰り返し。
0402名前は開発中のものです。2011/12/17(土) 10:51:38.52ID:pIu+j/Ie
更新来てたんだな
前回うちでダメだったフルスクリーンも出来るようになって良い感じ

これで4:3液晶の場合フルスクリーンワイドサイズでのツールバーの位置が
黒帯びを越えて画面上部に表示されれば不満ないんだけど
今時4:3も無いし贅沢だな
0403名前は開発中のものです。2011/12/18(日) 01:13:59.75ID:QH47WfEb
1コア占有のバグ、もう対応されたのか!
さすがムッシュ高橋!
0404名前は開発中のものです。2011/12/18(日) 01:18:17.38ID:QH47WfEb
>>399
>>401
フローチャートに戻るだけなら、
フローチャート画面をセーブしといて
ロードで戻ってくるという荒技もある
0405名前は開発中のものです。2011/12/18(日) 02:08:01.07ID:pNmEs5Ri
>>404
天才!

と思ったけど、セーブデータが残るのはちょっとカコワルイ
0406名前は開発中のものです。2011/12/18(日) 02:13:14.99ID:88g7rnRp
それやってたゲーム知ってる。動けばいいんだから間違ってないよな
0407名前は開発中のものです。2011/12/18(日) 23:21:15.24ID:BSQ+YZEK
普段はシステムファイルっぽくしておいて読み込む瞬間だけluaでリネームって手がある
0408名前は開発中のものです。2011/12/20(火) 17:08:57.09ID:1qtsK81v
文字列の比較で困っていまして、どなたかお力添え願えないでしょうか。
NScripterに文字配列は無いみたいですが
そこで例えば

cmp %0,$1,$100〜$200

と比較して行きたいのですが、forで回す手段はありますでしょうか?
数が多いのでifで記述していくと見辛いなぁと思いまして。
0409名前は開発中のものです。2011/12/20(火) 18:12:45.88ID:6SPirSDQ
mov %1,100
$%1

で$100と同じ意味になるよ
0410名前は開発中のものです。2011/12/20(火) 18:13:26.08ID:6SPirSDQ
高橋氏がツイッターでやってるSGEの仕様話が興味深い
0411名前は開発中のものです。2011/12/20(火) 19:08:35.20ID:1qtsK81v
>>409
助言頂いた物を使って無事回す事が出来ました。
同時に、他の無理矢理回していた所もスッキリ改善でき非常に助かりました。
本当に有難うございます。
0412名前は開発中のものです。2011/12/21(水) 01:20:37.27ID:svWZMgiY
Nスクは配列が使えない代わりに
こういう変な変数の重ねがけで配列の代用は出来ますよ
詳しく解説してるサイトもあったと思うから読んでおくのおすすめです
0413名前は開発中のものです。2011/12/21(水) 23:19:50.56ID:ZzMTyHXY
本当に高橋氏はバージョン管理システム使ってないんだな

せめて開発版と安定版の2つだけでも
システマチックに管理してほしいんだが
0414名前は開発中のものです。2011/12/21(水) 23:26:17.34ID:9kZAdAIk
Twitterのか? 10年前の思い出話だろ。
0415名前は開発中のものです。2011/12/22(木) 00:31:50.24ID:6Jy2FIPJ
そういうこと出来るなら
とっくにマニュアル整備されてると思うw
0416名前は開発中のものです。2011/12/22(木) 01:05:51.25ID:vW72j6Du
別に開発者が、どういう方法でバックアップをとってようが
外野が口出しする事じゃないと思うが?
Nスクのマニュアル不備とは、全く関係ない話題だし
どや顔でプロに環境指南したがる素人の気持ちは理解できんな
0417名前は開発中のものです。2011/12/22(木) 01:57:15.66ID:4T8fHS8O
んだな
0418名前は開発中のものです。2011/12/22(木) 04:22:12.82ID:ht5OP0zp
Nスクは$%と%%のおかげでかなり救われてる部分があるね。あとLua
0419名前は開発中のものです。2011/12/22(木) 05:07:29.32ID:dFOLySve
>>416
バックアップじゃなくてバージョン管理の話でしょ
0420名前は開発中のものです。2011/12/22(木) 08:17:09.04ID:6Jy2FIPJ
>>416
ドヤ顔でバッサリ切る素人の気持ちも理解できないな
0421名前は開発中のものです。2011/12/22(木) 10:11:34.37ID:qqSnTMuQ
大きな功績を残した人間のアラを探して「ここに関しては俺の方が立派だな」と
悦に浸る小物の気持ちはとてもよく理解できる。
0422名前は開発中のものです。2011/12/22(木) 10:31:54.45ID:kJuu0qI2
マターリしようよ(古
0423名前は開発中のものです。2011/12/22(木) 16:07:48.27ID:g2kSIKVt
袋文字来ないかなあ
0424名前は開発中のものです。2011/12/22(木) 18:13:10.38ID:Cukr/bXa
そういう事に口出ししたがる奴ほど本人はノースキルで顔だけ開発者気取りしたがるもんだ
0425名前は開発中のものです。2011/12/23(金) 06:45:21.78ID:L3SrcYYf
せやな
0426名前は開発中のものです。2011/12/23(金) 07:52:37.56ID:eKrZqEve
NスクはVistaや7のUACで止まったはりしない?
0427名前は開発中のものです。2011/12/23(金) 13:07:45.03ID:L3SrcYYf
しないな俺んとこは
0428名前は開発中のものです。2011/12/24(土) 06:56:57.61ID:k5+9vckt
Luaに取りかかってるが全く分からん
システムカスタマイズは、一通りマスターしてるレベルだけど
Luaは、やろうとしても、最初の取っ掛かりから分からん

Nスクを初めて触った時は、
最初に、0.txt を作って、ってレベルで解説があって、
そのレベルから始めてシスカマまで出来るようになったけど、
Lua は、フォルダの中に、最初にどんなファイルを置いて、
中に何を書けばいいのかも分からんとか、
そういうレベルで教えてくれるサイトが皆無で辛い。

Nスクは、最初に、このファイルをつくって、
次に、*define を置いて、game を書けば、
とりあえず、こう動く、動いたのを見て、後は身体で覚えろ
って感じで、一通り動かしていくうちに、いろんな記述の意味を把握していった
という感じで学習したけど、
Luaだと、そういうゼロから、動かしていく、基礎のキみたいな部分が分からなくて、
学習のとっかかりがつかめん。

どの講座も、いきなりLuaのサンプルが置いてあって、
え?このサンプル、スクリプトのどのファイルに記述すればいいんだ……
という状態。
0429名前は開発中のものです。2011/12/24(土) 07:34:57.99ID:k5+9vckt
Nスクの講座サイトで、よく「ラベル*defineは存在しません」を出して馬鹿にされてる事があるけど、
Luaに苦戦してる今の俺が、正にその状態なんだろうな
0430名前は開発中のものです。2011/12/24(土) 09:36:08.08ID:o+W5ba/7
>そういうレベルで教えてくれるサイトが皆無で辛い

そこで躓いてるレベルだとまだ覚えるの難しいと思うが
まず、講座じゃなくてNスク付属のサンプル動かせれば
何がどう必要か分かるんじゃないだろうか

ちなみにサンプルはXP暫定版には付いてないよ
0431名前は開発中のものです。2011/12/24(土) 11:49:56.93ID:pvZTNxt8
サンプルわかるようになったら
>>1のろださんの非公式マニュアルもオススメ
シスカマからluaはここでお世話になったYO!
0432名前は開発中のものです。2011/12/24(土) 13:37:21.79ID:D30lsGcF
>>428
defsubの拡張版だと思うといいよ
function〜endっていうのがひとつのかたまり
*label〜returnみたいなもん

たとえばcspの連番処理
これをdefsubでかくとこうなり、
*cspr
getparam %101,%102
for %100=%101 to %102: csp %100: next
return

luasubでかくとこうなる。
function NSCOM_cspr()
local n,n2;
n = NSPopInt();
NSPopComma();
n2 = NSPopInt();
for i=n,n2 do NSExec('csp '..i); end
end

で、luasubは可変引数が使えるから、従来のcsp+連番機能なんていう命令が作れたりする
function NSCOM_csp()
local n,n2;
n = NSPopInt();
if (NSCheckComma()) then NSPopComma(); n2 = NSPopInt(); else n2 = n; end
for i=n,n2 do NSExec('csp '..i); end
end

csp 1 ;ふつうのcsp
csp 1,10 ;1から10番までを消す
0433名前は開発中のものです。2011/12/24(土) 13:37:56.47ID:D30lsGcF
長々とやったけど、まあ単純にNスクでこう書くものは、luaではこう書けるなって遊びながら覚えてくのがいいと思う
ローカル変数だのブロックがどうのとかはあとからでいい
あと雰囲気としてはjavascriptがかなり近いと思う
こっちのほうが解説してるサイト多いので、のぞいてみてもいいかもね

要するに>>428は雛形みたいなのがないからわけわかんねって言ってるんだと思うけど
luaはたぶんそういう感じで使ったりするものじゃない気がするよ
0434名前は開発中のものです。2011/12/24(土) 13:58:07.72ID:oOmXgU53
まさにその状態……てことは
つまりマニュアル読んでないのか
0435名前は開発中のものです。2011/12/24(土) 18:06:20.56ID:SMeLLO6e
NSLuaなら公式のマニュアルと、
TIPSと永字八法とNScripter Scripting Factoryのブログ記事で充分じゃね?
あとは普通のLua系記事をググって探せばOK。
0436名前は開発中のものです。2011/12/25(日) 03:08:22.62ID:coIpYXkJ
スクリプトも動かせるようになって、luasubとかluacallとかの概念は理解出来てきた、と思う。
とりあえず、分からないなりに進めてるけど、最初の例題
********************************************************************************
-- 例題
-- 以下でOKが表示されるよう、関数funcを定義してみること。
str, num = func("", 1)
if str == "関数" and num == 3 then NSOkBox("OK!", "") end
str, num = func("変数と", 123)
if str == "変数と関数" and num == 369 then NSOkBox("OK!", "") end
********************************************************************************
これが、超難問
おそらく、func という関数を自作して、引数として "" と 1 を受け取り、
それをfunc内で処理して、結果を戻り値として、変数str, numに代入する、
という、引数・戻り値・代入の3つの作業を同時に行わなくてはならない、
超エキスパート向けの難問なのだろうと、理解してとりかかる。
考えた回答を書いてみる
********************************************************************************
str, num = func("", 1)
if str == "関数" and num == 3 then NSOkBox("OK!", "") end
str, num = func("変数と", 123)
if str == "変数と関数" and num == 369 then NSOkBox("OK!", "") end

function func(str_tmp,num_tmp) --""と1 をfuncに受け取る方法が分からない
if str_tmp == nil then return str_tmp = "関数",num_tmp + 2 end
if str_tmp == "変数と" then return str_tmp = "変数と関数",num_tmp + 246 end
end
********************************************************************************
動かしてみるとエラーメッセージ
---------------------------
[string "str, num = func("", 1)..."]:1: attempt to call global 'func' (a nil value)
---------------------------
ってなんだorz 多分、文法が間違ってるんだろうけどわからんorz
0437名前は開発中のものです。2011/12/25(日) 08:50:59.36ID:6cu7T9Y+
>>436

二つミスがある。

一つはfuncそのもの。
このfuncは、引数として与えられた文字列と数値を加工して返すものだと想像できる。
a.文字列については、"関数"と言う文字列を末尾に加えて返し、
b.数値については3倍して返す
そういう動作をするものだと考えられる。

function func(str, num)
return str.."関数", num*3
end

これが一番簡単な実装。欲を言えば引数チェックも欲しい。

function func(str, num)
if type(str)~="string" then NSOkBox("第一引数には文字列を指定してください。", "func"); NSEnd() end
if type(num)~="number" then NSOkBox("第二引数には数値を指定してください。", "func"); NSEnd() end
return str.."関数", num*3
end

二つ目のミスは、記述の順番。
Luaに限った話ではないが、プログラムは上から下に向かって実行される。
>>436 では、下の方でfuncを定義しているので、上の方ではまだfuncが未定義である。
なのにfuncを実行しようとしているので、「funcはnil(未定義)なのに、関数として実行しようとした」と言うエラーメッセージが出る。
順番を入れ替えるとこれは解消される。
NScripterでは、実行の前にラベルを解析してしまうので、これでも動くのだが、Luaではそうはいかない。
0438名前は開発中のものです。2011/12/25(日) 09:36:34.45ID:6cu7T9Y+
>>436
しかしまあ、どこの例題か知らんけど、例題のための例題って感じがして、糧になりにくいと思わせるなあ。

前提として、以下のURLの記述を仕様とせよ。
http://wikiwiki.jp/imagine/?%B0%AD%CB%E2%B9%E7%C2%CE%2F2%BF%C8%B9%E7%C2%CE

一体の悪魔は、一つのテーブルで表現されるとする。
例)妖精ピクシーの場合
pixie = {}
pixie.level = 4 -- レベルは4
pixie.race = "ピクシー" -- 種族はピクシー
pixie.category = "妖精" -- 分類は妖精

悪魔表は一つのテーブルで表現されるとする。
例)
daemons = {}
daemons[1] = pixie
daemons[2] = garm
以下、たくさん。
参考)http://kimamaneko.fc2web.com/megami/devil/devil-kyu2.htm

例題1)引数に悪魔を一体受け、その合体コストを返す関数how_much_for_uniteを作成せよ。
例題2)引数に悪魔を二体受け、それらが合体した場合の新しい分類名を返す関数new_categoryを作成せよ。
※合体できない組みわせの場合は、nilを返すものとする。
例題3)引数に悪魔を二体受け、それらが合体した場合の新しいレベルを返す関数new_levelを作成せよ。
※合体できない組み合わせの場合は、nilを返すものとする。
例題4)引数にレベルと分類を受け取り、それに最も近い悪魔を返す関数select_daemonを作成せよ。
※レベルと分類が完全に一致する悪魔を返すのがよいが、それがなければ、レベルを一つ落として再検索せよ。これを見つかるまで繰り返す。
※レベルが0が検索されるようであれば、nilを返せ。
0439名前は開発中のものです。2011/12/25(日) 09:40:50.39ID:mQBMbhjV
>>438
それはそれで抽象的すぎてだめじゃね?
合体コストって概念何よ?って話にもなるし。答え幅広すぎ。
なら単体テストみたいなさっきの例のが確実だと思うけどなあ。
04404382011/12/25(日) 09:44:00.24ID:6cu7T9Y+
例題5)悪魔合体の成功率を返す関数success_rate_for_uniteを作成せよ。
※仕様は適当。自分がルールデザイナーになった気分で考えること。
※なお、悪魔とプレイヤーとの親密度が高いほど、成功率も高くなるものとする。

こういうゲームのルールを自分で設定して、そのルールを実装するのが、一番訓練になると思う。
その時に心掛けるのは、最初から全部作ろうとしないで、バラバラの部品にしてしまうこと。
難度100の問題を1個解くよりも、難度1の問題を100個解く方が簡単で早いからね。

例題6)例題1〜5までの成果物を組み合わせて、悪魔合体の関数daemon_uniteが作れ。
※実際にはまだ足りないものがあるはずなので、足りない部分を指摘せよ。
※足りない部分は作成せよ。
04414382011/12/25(日) 09:51:11.63ID:6cu7T9Y+
>>439
うん、抽象的すぎると思う。俺も思う。
言われたこと、仕様書をただ実装するだけのコーダーならその反論もありだと思う。

けど、このスレにいるのはプログラマーだけじゃないだろうし、
少人数での同人ゲーム開発なんかの場合、ルールデザイナーとプログラマーが兼任することも多いんじゃないか。
なので、ルールデザイナーとしての練習もやって損はないと思う。

ちなみに例題のように分割してやると、後でルールが変わった時にも変更箇所が少なくなって楽になる。
04424382011/12/25(日) 10:07:01.45ID:6cu7T9Y+
例題1)の回答例

























悪魔合体のコストは、悪魔のレベルの二乗の半分切り捨て。
function how_much_for_unite(daemon)
local level = daemon.level
return math.floor(level * level / 2)
end
04434382011/12/25(日) 10:14:30.54ID:6cu7T9Y+
例題2)の回答例























予め、可能な組み合わせ表を作っておく。
local unite_matrix = {}
unite_matrix["鬼神+女神"] = "地母" -- こういうのがずらっと続く
function new_category(daemon1, daemon2)
local key = daemon1.category.."+"..daemon2.category
return unite_matrix[key]
end
04444382011/12/25(日) 10:18:39.99ID:6cu7T9Y+
例題3)の回答例


























合体後の悪魔のレベルの最低値は、合体前悪魔のレベルの平均(切り捨て)+1
function new_level(daemon1, daemon2)
return math.floor((daemon1.level + daemon2.level)/2)+1
end
04454382011/12/25(日) 10:26:24.71ID:6cu7T9Y+
例題4)の回答例
お詫び。ルールの読解に間違いがあった模様。合体後のレベルは、例題3の関数で計算した後、そのレベルより上でもっとも近いものだった。
よって、例題4は変更する。
例題4)引数にレベルと分類を受け取り、それに最も近い悪魔を返す関数select_daemonを作成せよ。
※レベルと分類が完全に一致する悪魔を返すのがよいが、それがなければ、レベルを一つ増やして再検索せよ。これを見つかるまで繰り返す。
※レベルが100以上で検索されるようであれば、nilを返せ。
















悪魔表を使う。
function select_daemon(category, level)
if level>99 then return nil end -- デフォルトでレベルが100以上の悪魔は存在しないので、自動的に失敗。
for i, daemon in ipairs(daemons) do -- daemonsは悪魔表テーブル
if daemon.category==category and daemon.level == level then -- カテゴリーとレベルが一致したならば、
return daemon -- その悪魔を返す。
end
end
return select_daemon(category, level+1) -- 一致する悪魔がいなければ、レベルを一つ増やして再検索。
end
0446名前は開発中のものです。2011/12/25(日) 12:02:48.17ID:mQBMbhjV
>>441
うーん。考え方の相違だな。
Lua手を出している時点で、シスカマ範囲ではできないやりたいことを実装する目的があるはずだから、
考えるクセをつけよう!練習だ。というより、いきなりガチでLua実装入った方が早いと思う。
他人の出す目的より、自分の目的のがモチベが高いわけで。

ただ、ルールデザイン練習はやっといた方がいいのは同意。
だけど、シスカマ時点でクセついてる筈ってのが俺の持論。これは互いに持論の違いだな。
0447名前は開発中のものです。2011/12/25(日) 15:44:14.14ID:CITFEZji
>シスカマ時点でクセついてる筈

これは俺も同意だな
出来てないのにLuaやろうって無茶にも程があると思う
0448名前は開発中のものです。2011/12/25(日) 20:37:17.55ID:CO8tyEqs
シスカマ覚えられるんならLuaだって大丈夫じゃないの
俺はLua覚えたけど未だにシスカマする気にならんぞ
0449名前は開発中のものです。2011/12/28(水) 14:59:14.62ID:67PNxtfr
立ち絵の着せ替え(オプションで設定した通りに全立ち絵が変わる)ってどうやるんですか?初心者レベルじゃ無理でしょうか
0450名前は開発中のものです。2011/12/28(水) 15:09:37.42ID:FVTT5C1u
余裕で出来るけど、説明がやたらめんどくさいから自分で考えろw
とりあえず、今出てる立ち絵データは配列にとっとけ。
オプション画面出るときにそっから判断して画面変わる前に差し替えろ。
0451名前は開発中のものです。2011/12/28(水) 18:37:44.72ID:auOwyvQc
懐かしいな。ひぐらしのなく頃にのスクリプトが、
それやろうとしてたんだよな。
魅音がずっとスク水で過ごすモード。
切り替える部分作ってなかだったんだよね。
0452名前は開発中のものです。2011/12/28(水) 20:04:43.99ID:wkb7Gx1k
>解像度を変えないフルスクリーン化に対応
これで横にビヨーンと伸びなくなるのかな?
0453名前は開発中のものです。2011/12/28(水) 20:20:53.69ID:zY7ar4DP
知らんが、何処からの引用だ
0454名前は開発中のものです。2011/12/28(水) 20:48:27.10ID:wkb7Gx1k
>>453
高橋氏のツイッターだよ
0455名前は開発中のものです。2011/12/28(水) 22:04:44.22ID:zY7ar4DP
そうなのか
ちなみに最新のは画像伸びないの知ってるよな?
0456名前は開発中のものです。2011/12/28(水) 22:22:37.29ID:wkb7Gx1k
そうなんだ!教えてくれてありがとう
0457名前は開発中のものです。2011/12/29(木) 00:11:43.79ID:jRKB4rGM
>>455
ver2.95だとどうなん?
0458名前は開発中のものです。2011/12/29(木) 01:03:08.66ID:SNxc9XSS
>>457
グラボのドライバ設定でどうにでもなると思うよ?
0459名前は開発中のものです。2011/12/31(土) 00:50:16.65ID:YeI6Bhyl
バックログでのボイス再生機能作ってるけど難しい。
0460名前は開発中のものです。2011/12/31(土) 01:32:04.11ID:yk889r9A
凝ったことしないなら簡単だぞ。素直に文字変数ログ分用意しる
0461名前は開発中のものです。2011/12/31(土) 01:36:55.71ID:5la37KAr
$に文字代入してのエンディングリスト作ったんだけど
表示されるのにすごいもっさーとしてしまう
どうすれば軽く表示できるかな?
■ このスレッドは過去ログ倉庫に格納されています