; ; キー操作でカメラを移動する ; #include "e3dhsp.as" ;///////////////// ; 初期化 ; E3DInit dim keybuf, 256 ;キー入力 camdegxz = 135 ;カメラ向き ;///////////////// ; ; カメラの初期化 ; camposx = 0 : camposy = 2500 : camposz = 0 E3DSetCameraPos camposx, camposy, camposz ;カメラ座標を設定 targetx = 10 ;注視点座標 targety = camposy targetz = 10 upvecx = 0 ;カメラの上方向のベクトル upvecy = 1 upvecz = 0 E3DSetCameraTarget targetx, targety, targetz, upvecx, upvecy, upvecz ;カメラの注視点を設定 E3DSetProjection 100, 50000 ;///////////////// ; ; ライトの設定 ; E3DCreateLight lid1 ;光源を作成 lightdirx1 = 1 ;平行光の向き lightdiry1 = -1 lightdirz1 = 0 lightr1 = 255 ;平行光の色 lightg1 = 255 lightb1 = 255 E3DSetDirectionalLight lid1, lightdirx1, lightdiry1, lightdirz1, lightr1, lightg1, lightb1 ;光源を平行光源に設定 ;///////////////// ; ; 地面の作成 ; sdim pathbuf, 2048, 4 pathbuf.0 = curdir + "\\yama.bmp" ;地面の座標情報 pathbuf.1 = curdir + "\\michi.bmp" ;地面の道の情報 pathbuf.2 = curdir + "\\kawa.bmp" ;地面の川の情報 pathbuf.3 = curdir + "\\bazou.bmp" ;地面、道、川の模様を決める、BMPファイル ;地面作成用の値 mapsize = 60000 ;X,Z座標の最大値 mapdiv = 60 ;座標の分割数 mapheight = 3000 ;高さの最大値 E3DLoadGroundBMP pathbuf.0, pathbuf.1, pathbuf.2, pathbuf.3, mapsize, mapsize, mapdiv, mapdiv, mapheight, hsid0 ; posx0 = 0 : posy0 = 0 : posz0 = 0 ; degx0 = 0 : degy0 = 0 : degz0 = 0 ; E3DSetPos hsid0, posx0, posy0, posz0 地面表示位置を設定 ; E3DSetDir hsid0, degx0, degy0, degz0 地面の向きを設定 frameno0 = 0 ;モーションは使用しない。 ;///////////////// ; メインループ ; *main E3DGetKeyboardState keybuf ;キー状態取得 E3DChkInView hsid0 ;モデルが、視野内にあるか判定 E3DBeginScene ;-----シーンスタート ;バックバッファへの書き込み作業を行う if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了 gosub *MoveCamera ;カメラ移動 E3DRender hsid0, 0, frameno0, 0 ;バックバッファにレンダリングする。(地面描画) E3DEndScene ;-----シーン終了 E3DPresent ;バックバッファの内容を、プライマリバッファに転送。描画する。 E3DWaitbyFPS 60 : await 0 goto *main ;///////////////// ; 終了処理 ; *bye E3DDestroyLight lid1 ;ライトを破棄 E3DBye end ;///////////////// ; カメラ移動 ; *MoveCamera if keybuf.VK_UP = 1 : camdegy-- ;矢印上 if keybuf.VK_DOWN = 1 : camdegy++ ;矢印下 if keybuf.VK_LEFT = 1 : camdegxz++ ;矢印左 if keybuf.VK_RIGHT = 1 : camdegxz-- ;矢印右 if keybuf.'Z' = 1 : camstep=100 ;z 前進 if keybuf.'X' = 1 : camstep=-100 ;x 後退 E3DCameraPosForward camstep ;カメラの向いている方向に移動 E3DSetCameraDeg camdegxz,camdegy ;カメラの向きを変更 camstep=0 return |
定数 | キー操作 | キー操作 |
---|---|---|
VK_LBUTTON | マウス 左クリック | |
VK_RBUTTON | マウス 右クリック | |
VK_CANCEL | ホイールクリック | |
VK_MBUTTON | ||
VK_BACK | Back Space | |
VK_TAB | Tabキー | |
VK_CLEAR | ||
VK_RETURN | Enter | |
VK_SHIFT | Shift | |
VK_CONTROL | Ctrl | |
VK_MENU | Alt | |
VK_PAUSE | Pause | Ctrl + NumLock |
VK_CAPITAL | Shift + CapsLock | |
VK_KANA | KANA | |
VK_HANGEUL | HANGEUL | |
VK_HANGUL | HANGUL | |
VK_JUNJA | ||
VK_FINAL | ||
VK_HANJA | Alt + 半角/全角(漢字) | |
VK_KANJI | Alt + 半角/全角(漢字) | |
VK_ESCAPE | Esc | |
CONVERT | 前候補、変換(次候補) | |
NONCONVERT | 無変換 | |
ACCEPT | ||
MODECHANGE | ||
VK_SPACE | スペースキー | |
VK_PRIOR | PageUp | |
VK_NEXT | PageDown | |
VK_END | End | Shift + テンキー1 |
VK_HOME | Home | Shift + テンキー7 |
VK_LEFT | 左矢印キー | Shift + テンキー4 |
VK_UP | 上矢印キー | Shift + テンキー8 |
VK_RIGHT | 右矢印キー | Shift + テンキー6 |
VK_DOWN | 下矢印キー | Shift + テンキー2 |
VK_SELECT | ||
VK_PRINT | ||
VK_EXECUTE | ||
VK_SNAPSHOT | PrintScreen | |
VK_INSERT | Insert | Shift + テンキー0 |
VK_DELETE | Delete | Shift + テンキー. |
VK_HELP | ||
'0' | 0 | |
... | ... | |
'9' | 9 | |
'A' | A | |
... | ... | |
'Z' | Z | |
VK_LWIN | ウィンドウズキー(左) | |
VK_RWIN | ウィンドウズキー(右) | |
VK_APPS | Applicationキー (右クリックと同等機能のキーのことです。) | |
VK_SLEEP | ||
VK_NUMPAD0 | テンキーの0 | |
VK_NUMPAD1 | テンキーの1 | |
VK_NUMPAD2 | テンキーの2 | |
VK_NUMPAD3 | テンキーの3 | |
VK_NUMPAD4 | テンキーの4 | |
VK_NUMPAD5 | テンキーの5 | |
VK_NUMPAD6 | テンキーの6 | |
VK_NUMPAD7 | テンキーの7 | |
VK_NUMPAD8 | テンキーの8 | |
VK_NUMPAD9 | テンキーの9 | |
VK_MULTIPLY | テンキーの * | |
VK_ADD | テンキーの + | |
VK_SEPARATOR | ||
VK_SUBTRACT | テンキーの - | |
VK_DECIMAL | テンキーの . | |
VK_DIVIDE | テンキーの / | |
VK_F1 | F1 | |
VK_F2 | F2 | |
VK_F3 | F3 | |
VK_F4 | F4 | |
VK_F5 | F5 | |
VK_F6 | F6 | |
VK_F7 | F7 | |
VK_F8 | F8 | |
VK_F9 | F9 | |
VK_F10 | F10 | |
VK_F11 | F11 | |
VK_F12 | F12 | |
VK_F13 | ||
VK_F14 | ||
VK_F15 | ||
VK_F16 | ||
VK_F17 | ||
VK_F18 | ||
VK_F19 | ||
VK_F20 | ||
VK_F21 | ||
VK_F22 | ||
VK_F23 | ||
VK_F24 | ||
VK_NUMLOCK | NumLock | |
VK_SCROLL | ScrollLock |
定数 | キー操作 | キー操作 |
---|---|---|
VK_LSHIFT | Shift(左) | |
VK_RSHIFT | Shift(右) | |
VK_LCONTROL | Ctrl(左) | |
VK_RCONTROL | Ctrl(右) | |
VK_LMENU | Alt(左) | |
VK_RMENU | Alt(右) | |
VK_OEM_1 | ';:' for US | : |
VK_OEM_PLUS | '+' any country | ; |
VK_OEM_COMMA | ',' any country | , |
VK_OEM_MINUS | '-' any country | - |
VK_OEM_PERIOD | '.' any country | . |
VK_OEM_2 | '/?' for US | / |
VK_OEM_3 | '`~' for US | @ |
VK_OEM_4 | '[{' for US | [ |
VK_OEM_5 | '\|' for US | \ | |
VK_OEM_6 | ']}' for US | ] |
VK_OEM_7 | ''"' for US | ^ |
VK_OEM_8 |
定数 | キー操作 | キー操作 |
---|---|---|
VK_OEM_AX | 'AX' key on Japanese AX kbd | |
VK_OEM_102 | "<>" or "\|" on RT 102-key kbd. | ろ |
VK_ICO_HELP | Help key on ICO | |
VK_ICO_00 | 00 key on ICO | |
VK_ICO_CLEAR |
定数 | キー操作 | キー操作 |
---|---|---|
VK_OEM_NEC_EQUAL | '=' key on numpad |
定数 | キー操作 | キー操作 |
---|---|---|
VK_OEM_FJ_JISHO | Dictionary キー | |
VK_OEM_FJ_MASSHOU | Unregister word キー | |
VK_OEM_FJ_TOUROKU | Register word キー | |
VK_OEM_FJ_LOYA | 左親指 キー | |
VK_OEM_FJ_ROYA | 右親指 キー |
定数 | キー操作 | キー操作 |
---|---|---|
VK_OEM_RESET | ||
VK_OEM_JUMP | ||
VK_OEM_PA1 | ||
VK_OEM_PA2 | ||
VK_OEM_PA3 | ||
VK_OEM_WSCTRL | ||
VK_OEM_CUSEL | ||
VK_OEM_ATTN | ||
VK_OEM_FINISH | ||
VK_OEM_COPY | ||
VK_OEM_AUTO | ||
VK_OEM_ENLW | ||
VK_OEM_BACKTAB | ||
VK_ATTN | ||
VK_CRSEL | ||
VK_EXSEL | ||
VK_EREOF | ||
VK_PLAY | ||
VK_ZOOM | ||
VK_NONAME | ||
VK_PA1 | ||
VK_OEM_CLEAR |