オイナルメモ帖

ウディタやドット絵、東方その他のメモ。更新が無い製作途中記事については「あ、エターなったんだな」とお察しください。
オイナルメモ帖 TOP  >  ウディタ テクニック

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


web拍手 by FC2
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

1つのコモンで複数のデバイスのキー入力 訂正版

(2013/11/26訂正)
すみません!
掲載していた、キー入力直後にキー入力待ちを置く方法ですが、
検証の方法を間違えていて、実際にはうまく動作しないことがわかりました。
代わりに別の組み方を紹介しますのでご容赦ください!
厳密には「キー入力待ち」ではないのでタイトルも変更しました。



複数のデバイスのキー入力をするには通常このように組みますが、
これだと1度のボタン押しでボタンを離すまでに何フレームも処理を行ってしまうという欠点があります。
■ループ開始
 |■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
 |■キー入力:このコモンEvセルフ変数11 / パッド(300~)
 |■条件分岐(変数): 【1】CSelf10 が 1以上 【2】CSelf10 が 1以上
 |-◇分岐: 【1】 [ CSelf10 が 1以上 ]の場合↓
 | |■デバッグ文:処理
 | |■
 |-◇分岐: 【2】 [ CSelf10 が 1以上 ]の場合↓
 | |■デバッグ文:処理
 | |
 |◇分岐終了◇
 |■ウェイト:1 フレーム
 |■
◇ループここまで◇◇


対して、このようにキー入力後にもう一度キー入力のループを置き、「キー入力用変数が0 = キーを離した時」にループ脱出とすることで、強引にキー入力待ちを再現しています。
処理を入れる場所を間違えなければ、何度も処理が行われることは無いです。
キーを押した瞬間とキーを離した瞬間の2通りに処理を置くことができ、単にキー入力待ちを置くよりかは使えそうです。

■ループ開始
 |■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
 |■キー入力:このコモンEvセルフ変数11 / パッド(300~)
 |■条件分岐(変数): 【1】CSelf10 が 0以外 【2】CSelf11 が 0以外
 |-◇分岐: 【1】 [ CSelf10 が 0以外 ]の場合↓
 | |■デバッグ文:押した瞬間にイベント
 | |■ループ開始
 | | |■キー入力:このコモンEvセルフ変数10 / キーボード(100~)
 | | |■条件分岐(変数): 【1】CSelf10 が 0と同じ
 | | |-◇分岐: 【1】 [ CSelf10 が 0と同じ ]の場合↓
 | | | |■デバッグ文:ボタンを離すとイベント
 | | | |■ループ中断
 | | | |■
 | | |◇分岐終了◇
 | | |■ウェイト:1 フレーム
 | | |■
 | |◇ループここまで◇◇
 | |■
 |-◇分岐: 【2】 [ CSelf11 が 0以外 ]の場合↓
 | |■デバッグ文:押した瞬間にイベント
 | |■ループ開始
 | | |■キー入力:このコモンEvセルフ変数11 / パッド(300~)
 | | |■条件分岐(変数): 【1】CSelf11 が 0と同じ
 | | |-◇分岐: 【1】 [ CSelf11 が 0と同じ ]の場合↓
 | | | |■デバッグ文:ボタンを離すとイベント
 | | | |■ループ中断
 | | | |■
 | | |◇分岐終了◇
 | | |■ウェイト:1 フレーム
 | | |■
 | |◇ループここまで◇◇
 | |■
 |◇分岐終了◇
 |■ウェイト:1 フレーム
 |■
◇ループここまで◇◇





付け焼き刃で直したので、もしまたミスが見つかったら申し訳ありません……。

web拍手 by FC2
スポンサーサイト
[ 2013年11月25日 04:31 ] カテゴリ:ウディタ テクニック | TB(0) | CM(0)

ビット数をDBで簡単に扱いたい

ビット数を10進数に変換した数値をDBに入力しただけのものです。
DB_ビット数_スクショ

現状のビット数を使う時にループを組んで2乗していくやり方は面倒なので、
ウディタ側でビットを変換する機能をつけてくれないかなーと思ってましたが、こんな楽な方法があったことを忘れていました。
基本システムでも採用すればいいのに。

ゴリ押し気味の方法ですが、ループを使わず一行で済むし見やすくなるので、ビット数が楽に扱えそうです。



↓投げ捨てておきますので、使いたい方はご自由にどうぞ。
ダウンロード

web拍手 by FC2
[ 2013年04月02日 15:45 ] カテゴリ:ウディタ テクニック | TB(0) | CM(0)

キー入力(キーボード) キーコード表

(キーコード) (キー名)

100
101 Esc
102 1
103 2
104 3
105 4
106 5
107 6
108 7
109 8
110 9
111 0
112 -
113
114 BackSpace
115 Tab
116 Q
117 W
118 E
119 R
120 T
121 Y
122 U
123 I
124 O
125 P
126 [
127 ]
128 Enter
129 Ctrl(左)
130 A
131 S
132 D
133 F
134 G
135 H
136 J
137 K
138 L
139 ;
140
141
142 Shift(左)
143 \ (右下の方、[ろ]キー)
144 Z
145 X
146 C
147 V
148 B
149 N
150 M
151 ,
152 .
153 /
154 Shift(右)
155 *(テンキー)
156 Alt(左)
157 Space
158 Caps
159 F1
160 F2
161 F3
162 F4
163 F5
164 F6
165 F7
166 F8
167 F9
168 F10
169
170 Scroll
171 7(テンキー)
172 8(テンキー)
173 9(テンキー)
174 -(テンキー)
175 4(テンキー)
176 5(テンキー)
177 6(テンキー)
178 +(テンキー)
179 1(テンキー)
180 2(テンキー)
181 3(テンキー)
182 0(テンキー)
183 +(テンキー) ←[.(テンキー)]の表記ミスか?
184
185
186
187 F11
188 F12
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212 カタカナ・ひらがな ※一度押すと押しっぱなし(解除不可?)
213
214
215
216
217
218
219
220
221 変換(切替キー)
222
223 無変換(切替キー)
224
225 \ (右上の方、[Backspace]の隣)
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244 ^
245 @
246 :
247
248 半角/全角(切替キー) ※一度押すと押しっぱなし(+[Alt]で解除?)
249
250
251
252
253
254
255
256 Enter(テンキー)? 
 ※メインEnter+テンキーEnter同時押し→メインのみ離す、とあるが確認不可。
 自分のではテンキーEnterのみ入力で256になった。
257 Ctrl(右)
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281 /(テンキー)
282
283 Pause ←[PrtSc]の表記ミスか? ※押すとスクリーンショット撮影
284 Alt(右)
285
286
287
288
289
290
291
292
293
294
295
296
297 Pause
298
299 Home
300 ↑
301 PageUp
302
303 ←
304
305 →
306
307 End
308 ↓
309 PageDown
310
311 Del
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355




【ウディタ】WOLF RPGエディター 質問スレ 其の3 より転載

39 名前は開発中のものです。[sage] 投稿日:2011/12/14 20:19:47  ID:E4Nc55Dx()
パッドの番号が300からだからキーボードのキーはそれ以上取得できないのかと思ってた。

>38
キーボードのキー入力は、DirectInputのデバイスのキーコード+100で取得してるらしい。
2,4,6,8は全デバイスの入力を集約してる。だからパッドの方向キーを押してもキーボードの方向キーを押しても反応する・

キーボードデバイスのキーコードで言うと、↑←→↓のキーはそれぞれ200, 203,205,208に対応してるから、+100した数で取得できる。
でもこれで取得できるのはキーボードだけ



マニュアルにはわかりやすい図が載ってますが、載ってない部分とかも記載。

イベントコマンド画面で表示されないだけで、実はキーコードは355まであります。
特にカーソルキー[↑][↓][←][→]は、ウディタの基本入力ではなく、キーボード側のもの。

並列実行で[W][A][S][D]をキー入力→カーソルを自動キー入力とやれば、簡易方向キーキーコンフィグが出来ます。
それを行うと自動キー入力の仕様上、入力は1フレーム遅れますが、普通のRPGで1フレームの入力を競うことはまず無いので、あまり問題は無いでしょう。
(ウディタ基本入力の方向キーを自動キー入力しても内部動作的には変わりないですけどね)



(追記)
書き忘れてましたが、特定キーでしか判定できないキーコードもありますので注意!
そのへんはマニュアルの図を見たほうが早いと思います。
マニュアルに書いてない300~は特定キーじゃないと判定できなさそうです。

web拍手 by FC2
[ 2013年03月29日 05:15 ] カテゴリ:ウディタ テクニック | TB(0) | CM(0)

「スクロールとリンク」について 詳細

「スクロールとリンク」については以前も書きましたが、その記事で説明不足により、混乱させてしまった方は申し訳ありませんでした。
その反省を含め、今回はちょっと詳しめに。


ピクチャを新たに「表示」する時、入力された座標は絶対座標だろうと相対座標だろうと関係なく、画面座標としてそのままピクチャ表示されます。
「移動」の時は、絶対座標なら入力座標が画面座標として、相対座標なら今の座標に入力座標を加算した値が画面座標として、それぞれピクチャ移動されます。

しかしこの時、「ピクチャ移動」時に「絶対座標」で、「スクロールとリンク」が絡んでくると挙動は大きく変わってしまいます。

どうなるかというと…、
現在のマップの一番左上のピクセルを基準の座標(0,0)とします。そこから入力座標分離れた位置にピクチャが移動されます。(画面左上から数えた入力座標へ表示されるのではない)

……つまりわかりやすく言うなら、「マップ全体が表示画面(スクリーン)になる」という感じでしょうか。

こうなると、マップ基準で座標を考える場合はいいのですが、ゲーム画面の画面座標に表示したい時は困ってしまいます。
ですから、そうしたい場合はシステム変数104・105「スクロール値」を入力座標に加算してあげます。
加算後の入力座標をピクチャ移動に使えばいいわけです。




↓ちょっと見にくいまとめ

ピクチャ表示 → 絶対座標・相対座標どちらも動作は変わらない。入力座標=画面座標
       └→スクロールとリンク …… 動作変わらず。※システム変数「スクロール値」を加算する必要は無い。

ピクチャ移動 → 絶対座標=画面座標。 / 相対座標=現在の表示座標+入力座標=画面座標。
       └→ スクロールとリンク …… 絶対座標=マップ全体を巨大な画面(スクリーン)として計算する。マップの左上が座標(0,0)となり、そこから入力座標分だけ離れた位置へピクチャが移動される。ゲーム画面の画面座標上に表示したい場合は、システム変数104・105「スクロール値」を加算したものを入力座標にする必要がある。 / 相対座標は変わらずそのまま。現在の表示座標+入力座標=画面座標

※ピクチャ移動ではスクロールとリンクを新たに指定することはできないので、その場合、あらかじめピクチャ表示でチェックをONにしておく必要がある。

web拍手 by FC2
[ 2013年01月23日 04:55 ] カテゴリ:ウディタ テクニック | TB(0) | CM(1)

文字列をビット数っぽく扱う

ウディタ2.02で「文字列操作→指定文字まで切り出し・指定文字以降を切り出し」が追加されました。文字列を扱うコモンイベントを使っている方には歓喜なわけで、これを使えば更にtxtをデータとして扱いやすくなります。ですが、他になんか面白い使い方ないかなぁと考えていたら思いついたのでここに書いておきます。

※2進数をあまり使わない方向で解説していますが、コモンイベント引用部分はビット数の使い方を書くためにあえて使用しています。


長いので追記で。

web拍手 by FC2
[ 2012年07月23日 20:14 ] カテゴリ:ウディタ テクニック | TB(0) | CM(0)
Web拍手
web拍手 by FC2
アクセス数
プロフィール

jeekza

Author:jeekza
ウディタでなんか作ったり作らなかったり、気まぐれでドット打ったり。
東方が好き。
Twitter
dotllect
pixiv
ask.fm

年月別アーカイブ
リンク
当サイトはリンクフリーです。
バナーはまだ無いですが……。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。