[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/16 00:18 / Filesize : 255 KB / Number-of Response : 973
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C# C# C♯ でゲームを作ろう Part1



1 名前:名前は開発中のものです。 [2008/06/09(月) 14:36:53 ID:yieVRZfd]
C#でゲームを作ろうと思う人が情報を交換するためのスレです。
テーマはアクション、パズル、RPG等なんでもOK

871 名前:名前は開発中のものです。 mailto:sage [2010/06/14(月) 06:27:22 ID:iv7tKl3i]
>>869
ワロタw


872 名前:対に家にも光が mailto:sage [2010/06/14(月) 07:49:38 ID:rcfvMBqr]
>>869
そういうギャグ、嫌いじゃないな

873 名前:名前は開発中のものです。 mailto:sage [2010/06/14(月) 12:59:27 ID:K3Evndr4]
>>869
おもしろいね

874 名前:名前は開発中のものです。 mailto:sage [2010/06/14(月) 23:53:20 ID:DO1ZEmMv]
>>859
Javaならあるん?
ライブラリは全く違うけど言語的には似てるからあるならそれを参考に書きなおせばいいんじゃないのかな

875 名前:名前は開発中のものです。 mailto:sage [2010/06/15(火) 07:58:15 ID:Bd+vYoWW]
>>859
yaneSDKにあったと思う


876 名前:名前は開発中のものです。 mailto:sage [2010/06/17(木) 21:12:32 ID:0EWa2QA/]
>>864
海外のWindowsMobileMarket覗いたらモロにポトペタ多いよね。
日本は幸か不幸か、アマチュアでも作りがいいものが多いけど。
上でも書いてる人がいたが、ADVゲームならポトペタでもいけると思われ。
画面の描画とタイプライター風文字描画だけどうにかしちゃえばいいわけで。

877 名前:名前は開発中のものです。 mailto:sage [2010/06/19(土) 16:08:25 ID:EhrGW2Sy]
silverlightの画面遷移むずかしいな
コントロールの有効無効でタイトルとかメニューなんかの切り替えやってるけどヘボいなー

878 名前:名前は開発中のものです。 mailto:sage [2010/06/19(土) 21:43:30 ID:EQVLjEVu]
画面をそれぞれ別々のパネルに収めるようにすればいい
パネルを直接RootVisualに設定してしまうとトランジションとか難しいから
ルート要素は常に固定しておいてその子要素として画面を設定すればおk

879 名前:名前は開発中のものです。 mailto:sage [2010/06/19(土) 23:54:27 ID:KXLD0ESZ]
なんでFormと同じような作りにしなかったんだろう
Page1とPage2を相互に表示したいだけなのに死ぬほど煩雑



880 名前:名前は開発中のものです。 mailto:sage [2010/06/19(土) 23:59:40 ID:EQVLjEVu]
いやこれだけのことだろ
LayoutRoot.Remove(タイトル画面);
LayoutRoot.Add(ゲーム画面);

881 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 07:45:19 ID:E7Kov7+v]
昨日からDInputの初期化まわりを弄っているんだがぜんぜん終わらんorz
こんなのどうやってC#に移植しろと

#define MAKEDIPROP(p) (*(const GUID *)(p))
#define DIPROP_RANGE MAKEDIPROP(4)

MDXが廃止になったのは単にクソ汚いコードの移植が面倒になっただけじゃないかとオモ


882 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 14:16:26 ID:j/tpd1c/]
DirectInputなんか必要?
XNAはマウスやキーボードにはWin32API使ってるよ
ゲームパッドにはXAudio使ってるけどWin32APIだけでもゲームパッドは使える

883 名前:882 mailto:sage [2010/06/20(日) 14:17:57 ID:j/tpd1c/]
わかるとおもうけどXInputの間違い

884 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 17:10:12 ID:VtXVZ+vU]
IntPtr使えばいいし

885 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 19:54:07 ID:Zy2UHkh4]
C#でWin32API使えるの?

886 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 20:17:27 ID:a19/uwLg]
system.runtime.interopservices

887 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 20:53:36 ID:Zy2UHkh4]
なるほど

888 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 21:34:50 ID:E7Kov7+v]
半日がかりでようやく動いたぜ。こんな感じ↓
InputDevice.SetProperty(new IntPtr(4), ref diproprange);
IntPtr(4)とか怖ええよ。長年C++やってきたからジンマシンが出そうだ
ちなみに元はref GuidだったインターフェースをIntPtrに修正している。

>>882
XInputは箱コントローラー専用じゃないっけ? エミュに頼るのもな…
しばらくDirectX/C++でやってたから極力DirectXで生きたいところ


889 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 21:50:07 ID:j/tpd1c/]
joyGetPosで一発だぞ
面倒な初期化もいらないしC++/CLIやCOM Interop使うよりはずっとクリーン



890 名前:名前は開発中のものです。 mailto:sage [2010/06/20(日) 22:18:51 ID:0YbLnie5]
>>880
やってみた。ありがとう
だがxamlで書くとややこしいのでMenuから何から何までC#で書いちゃった
昔のゲーム制作みたいになったけどw

891 名前:名前は開発中のものです。 [2010/06/23(水) 20:09:38 ID:K6DtFqRe]
WindowsPhone7出るからXNAやってみっか

892 名前:名前は開発中のものです。 mailto:sage [2010/06/23(水) 22:21:27 ID:CH9ZgxGL]
日本じゃ出ないけどね

893 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 09:31:16 ID:RPPmBLFz]
嘘乙

894 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 12:15:50 ID:gy8bOEjl]
そこは嘘じゃなくてアップル乙だろ

895 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 21:29:00 ID:JXBdF/k9]
やっとcsvから値を読み込ませることに成功した・・・

896 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 21:43:52 ID:1MMtUAdV]
string[][] map = File.ReadLines("map.csv").Select(line => line.Split(',')).ToArray();
一般的のcsvに対応するならダメだけど自分で決めたフォーマットのファイルを読むだけならこれだけ

897 名前:名前は開発中のものです。 mailto:sage [2010/06/24(木) 23:21:52 ID:YG5z7Eig]
おめ

898 名前:名前は開発中のものです。 mailto:sage [2010/06/25(金) 06:58:14 ID:3W3THW9/]
LinQきもいな

899 名前:名前は開発中のものです。 mailto:sage [2010/06/25(金) 20:35:50 ID:gYS51J8f]
int[][] map = (
 from line in File.ReadLines("map.csv")
 let items =
  from str in line.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
  select int.Parse(str)
 select items.ToArray()
).ToArray();
数値ならこうか



900 名前:名前は開発中のものです。 mailto:sage [2010/06/25(金) 20:40:46 ID:J8mGWrRJ]
selectフェチか

901 名前:名前は開発中のものです。 mailto:sage [2010/06/25(金) 23:21:40 ID:uyVdSEuU]
Linq持ち出した割に
なんかどちらも汚くね?

902 名前:名前は開発中のものです。 mailto:sage [2010/07/13(火) 20:40:26 ID:Qp8MQ8Xo]
どうした?

903 名前:名前は開発中のものです。 [2010/07/27(火) 01:10:05 ID:oDUw7TE9]
なんか書き込みにくい雰囲気になってるな

904 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 10:48:55 ID:v9w4gEfK]
wiki見事に止まってるな
silverlight書いてみるか

905 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 20:52:47 ID:RkY17E+w]
SlimDX希望

906 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 09:28:03 ID:fV2jVWCx]
何か言語、Tips関連、MDXなら希望があれば書けるんだが・・・

907 名前:名前は開発中のものです。 mailto:sage [2010/07/28(水) 09:52:55 ID:fa16qIsf]
すっかり存在を忘れてた。勉強がてらに書いてみるかな

908 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 23:34:15 ID:fXSjmIYz]
LINQって再配布するときは実行PCにもSQLServerが必要?

909 名前:名前は開発中のものです。 mailto:sage [2010/07/31(土) 23:36:02 ID:vHj0ksi1]
え?



910 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 00:51:00 ID:cZMu8Wv5]
誰かbulletsharpについて書いてくれんかのう

911 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 09:47:45 ID:OVgFP4Gu]
ラッパーなんだからC++のBulletの情報があれば十分だろ
DirectXとかXNAとか使ってC#で作るならC++は書けなくても最低限読めるようにはなっといたほうがいい
C#わかってるんだったら読むだけなら全然難しくない

912 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 21:23:19 ID:XUWKzdSJ]
>911
その最低限C++が読める奴を二人ぐらい見つけて、
何かのラッパーのソース読ませてどう使うか見てみろよw

913 名前:名前は開発中のものです。 mailto:sage [2010/08/29(日) 01:29:23 ID:Zu2j70Xc]
保守

914 名前:名前は開発中のものです。 mailto:sage [2010/08/29(日) 08:45:40 ID:aI1XS2UB]
しかし今のところSlimDXかXNAぐらいしか選択肢がないなんて...
C++でDirectX直が正解だろうけど、MSもなんでC#流行ってないのか理由考えろと。
C#用でDirectXが普通に使えれば、C#の利点がいろいろ生かせるのに。

915 名前:名前は開発中のものです。 mailto:sage [2010/08/29(日) 10:31:37 ID:8MMd7QOd]
>>914
SlimDXで十分「DicrextXが普通に使える」と思うんだけど
何をお望み?

916 名前:名前は開発中のものです。 mailto:sage [2010/08/29(日) 10:48:11 ID:1iyotIKw]
普通に使って作ったゲームどこ?

917 名前:名前は開発中のものです。 mailto:sage [2010/08/29(日) 20:54:00 ID:8MMd7QOd]
確かに見ないね。
でもそれはDirectXを使えるかどうかとは別の話だと思うけど……

ちなみに、「普通に使える」ってのは
「C++に提供されているものと同様のレベルでAPIを利用することが出来る」
っていう意味だと解釈したんだけど
あってるのかな?

918 名前:名前は開発中のものです。 mailto:sage [2010/08/30(月) 00:27:56 ID:nzWRQofU]
SlimDXの一番の問題は日本語の情報が少ないのと、いろいろとランタイムが必要なとこかな。
ゲームするのにいろいろDLしてインスコなんてめんどくせという人も多いだろうし。
まあVista、7だとNetやDirectXは最初から入っているから敷居は低くなるだろうけど。
XPは無印だとNet2とDx9ぐらいだっけ?

919 名前:名前は開発中のものです。 mailto:sage [2010/08/30(月) 01:29:05 ID:M5wfZVlV]
XP無印だとDirectXは8.0、.netは1.1



920 名前:名前は開発中のものです。 mailto:sage [2010/08/30(月) 10:23:19 ID:EdJUexTi]
.NETは1.1すら入っとらんよ

921 名前:名前は開発中のものです。 mailto:sage [2010/08/30(月) 11:05:18 ID:DVtnCiGK]
今時.NET2.0入れてない奴は無視していいと思うよ
それ以上のバージョンは厳しいかもしれないけど

922 名前:名前は開発中のものです。 mailto:sage [2010/09/01(水) 23:48:18 ID:O21kiQGF]
商売でないなら.NETの導入の手間とかは気にしなくてもいいと思うけどね。

923 名前:名前は開発中のものです。 mailto:sage [2010/09/01(水) 23:52:39 ID:yXrq1MPA]
>>919-920
ありがと。
XP無印だとかなり前だから、そんなに古いのか。
気をつけんといかんね。

924 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 21:02:03 ID:kuj5G6Ds]
インストーラで勝手にインストールさせるようにすりゃいいんじゃないの?
.NET なんざ。

925 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 21:41:13 ID:lcPBf6pW]
インストーラ形式が嫌いな人も居るんだよ

926 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 22:05:25 ID:w0wZFGnb]
インストーラ形式じゃないと嫌な人も居るんだよ

927 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 22:55:56 ID:8pzrQ03T]
そもそも、そんなでかいのをDLするのが嫌な人もいるんだよ。

928 名前:名前は開発中のものです。 mailto:sage [2010/09/03(金) 23:17:45 ID:sFSLxkCc]
そんなことを言い出したら、インストールすら面倒とか、
ゲームやるのすら面倒という糞もいるわけで。

最初は(余力がなければ)ガンガン切り捨てていいよ。
どうせ趣味なんだからさ。
要望が来てから対応すればよろし。

929 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 07:40:21 ID:rXmm+vQl]
ゲームやる人はたいてい暇人だから大丈夫だろ。
それより.net無しで作る苦労に耐えられない。



930 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 07:58:27 ID:lb64ehz2]
Seleneの.net用ラッパーがあれば…
c++でコード書いてると色々面倒な事が多くてイライラする

931 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 12:15:30 ID:Wxxlx4d8]
いい加減、MSはC#用のMDX復活させろよ。
一応Slimあるから何とかなるけどさ。
Slim使うと

ゲーム本体 + .Net Framework + Direct X + SlimDx + VC++ Runtime

とこれだけ必要になるんだよな。

932 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 14:15:34 ID:UMLodiAV]
Unityで作ろう

933 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 19:39:02 ID:Wxxlx4d8]
うに見てきたけど、あれはいいね。
ただ、自分の今考えてるゲームはあそこまで要らないw

934 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 21:52:45 ID:DrVMr9mA]
いつまでもSlimがどうとか言ってばかりで、
スレのゲームを作ろうって話はいつになったら始まるの?

935 名前:名前は開発中のものです。 mailto:sage [2010/09/04(土) 22:01:27 ID:Wxxlx4d8]
スレのゲームって、どのスレ?

936 名前:名前は開発中のものです。 mailto:sage [2010/09/05(日) 22:50:18 ID:kEyh+xD6]
スレのゲームっていったい何の話だ?

937 名前:名前は開発中のものです。 mailto:sage [2010/09/05(日) 23:07:10 ID:R7D4jB8/]
>>934
妄想乙

938 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 10:24:29 ID:3n9eK35D]
>>931
MDXがあったところでSlimDXのところがそのままMDXに置き換わるだけだよ
他のはどっちみち必要

939 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 11:06:06 ID:ZKzOmPtM]
んぁでいいじゃん



940 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 14:37:28 ID:/C6LMsvz]
そろそろDirectX9を切り捨ててWindows API Codepackにしてしまうとか

941 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 16:31:59 ID:1J+eOJaA]
切り捨てたところでslimdxの方が全然マシだよ・・・

942 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 21:59:10 ID:MjG/Yix3]
>>938
MDXになればSlimDXとVC++ Runtimeが不要になるから、それだけ楽になるだろ。

943 名前:名前は開発中のものです。 [2010/09/06(月) 22:04:18 ID:QbiA981K]
1000

944 名前:名前は開発中のものです。 mailto:sage [2010/09/06(月) 23:51:34 ID:1J+eOJaA]
>>942
必要項目の「SlimDX」が「MDX」になるだけだし
ぼくのかんがえたみらいのMDXがVC++ランタイム不要になる保証もないでしょ・・・
少なくともC++/CLIで実装する限りは漏れなくついてきちゃう

945 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 01:36:19 ID:RTG8q0fQ]
まずは面白いゲーム作ってから心配しろよ

946 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 13:50:50 ID:xkqHmaNh]
うむ
しかしMDXの利点はDirectX入れると一緒に入ってることだったけどな

947 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 14:21:33 ID:OoJ6h8mx]
C++/CLIで作ったものはCLRのバージョン間の互換性が無いから
MS自ら今MDXを提供するなら必然的に.NET4専用になるわけで
現状、要件としてはSlimDXよりもはるかに厳しいと思うよ

948 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 14:22:16 ID:YP8WYV53]
結局現時点で一番良さげなのはXNAっぽいな
もちろんゲームの種類やらプレイヤー層にもよるけど

949 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 16:21:48 ID:OoJ6h8mx]
C++/CLIは排除して、純粋なアンマネージC++でラッパー書いて
C#でdllimportするのが一番良い形なんだけどな
なんせめんどくさい



950 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 18:46:55 ID:kKB13GEZ]
SWIGを使うってのはどうだろう?
完全じゃないがめんどくささは軽減されそう。

951 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 19:38:10 ID:uuzAzAn8]
まぁ素直にC++で作った方がいいと思うね。後々を考えるなら。
あと2年もすれば2000、XPは少数派になってDirect11が主流に。C++ + Direct11みたいな感じになるでしょ?
逆に2年以内のことを考えたら別にMDXでいいじゃないとか思うけど。

952 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 21:33:27 ID:eexHCZ9r]
XNA はなんかちょっと DirectX とノリが違うのがなぁ。

953 名前:名前は開発中のものです。 mailto:sage [2010/09/07(火) 22:26:03 ID:2RRYJEPp]
XNAはXNAスレへ池よ

954 名前:名前は開発中のものです。 mailto:sage [2010/09/08(水) 18:37:16 ID:tkZ7x8L5]
XNAは中途半端だよなあ
クロスプラットフォームというなら機能削りまくっていいからSilverlightと統合するくらいやってほしい

955 名前:名前は開発中のものです。 mailto:sage [2010/09/08(水) 21:16:29 ID:iLnqpgMz]
Visual Studioで適当にボタンはりつけ
適当にランダム配列用意して
ジャンケンゲームの出来上がり

簡単

956 名前:名前は開発中のものです。 mailto:sage [2010/09/08(水) 21:55:40 ID:C7ncfTRT]
出来上がりか。もうこのスレは必要無いな

957 名前:名前は開発中のものです。 mailto:sage [2010/09/30(木) 01:59:55 ID:RMd6Ohi3]
なんだ結局C++かよ。

958 名前:名前は開発中のものです。 mailto:sage [2010/09/30(木) 10:56:53 ID:00ZiBlVV]
>>956
ほんとに終わっちまったじゃねーかよ

959 名前:名前は開発中のものです。 mailto:sage [2010/10/08(金) 23:52:00 ID:caDMLVb8]
実験してみた
lteeanl.web.fc2.com/sldxlibtest/silverlightdxlibtestpage.html
SilverlightのOOBでDXライブラリを動かしてみるジョーク
要Silverlight4, .NET4
うちのWindowsXPでしか試してない



960 名前:名前は開発中のものです。 mailto:sage [2010/10/09(土) 00:19:23 ID:YjKDyiB6]
はいおわりおわり

961 名前:名前は開発中のものです。 mailto:sage [2010/10/09(土) 08:47:55 ID:ZtvvhzRO]
>>959
Win7だけど、MyDocumentsにファイル生成はされるけど
その後音沙汰がない。
OOBのウィンドウは真っ白のままで、Game.exeはダブルクリックしても動かない。

962 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 12:15:01 ID:3rB4nMfQ]
DXLibのC#のソースが多くあるなら置き換えて動かすやつ作ってみるのも
面白そうだが、動くものほとんどなさそうだな。
Cならソース公開されてるの多いのかな

963 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 12:56:21 ID:FvnyzFXY]
。。。

964 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 14:24:02 ID:7FVaL6iS]
パクリありきの生き方

965 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 16:33:23 ID:3rB4nMfQ]
そうじゃねーよ
DXLibのC#版と同じインターフェースの純粋.NET版を作れば
そのままSilverlightで動かせるだろ?
でもそのDXLibのC#版で作ったコードが少ないんじゃしょうがないなと

966 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 16:35:18 ID:3rB4nMfQ]
まあこれは>>959のレスから考えただけですがね。
自分でDXLibで書いたコードをXNAに移植するのは結構簡単だったんで

967 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 18:17:41 ID:LwYTVivq]
もうそういう口だけの話はいいから

968 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 22:07:03 ID:N1lZ8Waw]
久しぶりにwikiのほう見てみたら、更新されてるのに更新履歴に反映されてないな・・・なんでじゃろ。
気がつけばSlimDX結構情報つみあがってきてるじゃないか。

969 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 22:48:57 ID:4URr/JAv]
DXライブラリのC#インターフェイスをそのまま移植するよりも、
C#で使いやすいようにラップしたものを作ってその実装をXNAなりSilverlightなりDXライブラリなり
差し替えるようにした方がいいと思う。
そのまま使うにはあまりにも汚すぎる。



970 名前:名前は開発中のものです。 mailto:sage [2010/10/10(日) 23:01:18 ID:4URr/JAv]
それと、Silverlightサポートを前提にするならかなりフレームワーク的な感じにしたほうがいいと思うよ。
更新→描画→ウェイト→ループ のような流れを陽に書かれるとSilverlightへの移植が難しくなる。
描画も毎フレーム描き直しじゃなくて、スプライト置いといて勝手にフレームワークがそれを
描画するようなスタイルの方が移植しやすいはず。

971 名前:名前は開発中のものです。 [2010/10/11(月) 07:34:06 ID:GQ+fbaoC]









[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<255KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef