Shade Dungeon
scene = xshade.scene() #シーンのインスタンス化 scene.figure_view_mode = 3 #透視図のみに設定 scene.camera.eye = (750, 125, -750) #視点設定 scene.camera.target = (750, 125, -1250) #注視点設定 scene.camera.zoom = 17 #画角設定 scene.display.set_shading_mode(3, 5) #テクスチャ+ワイヤフレーム scene.grid = False #グリッドオフ scene.work_plane = False #作業平面オフ scene.cursor_position = (-1000, 0, 1000) #カーソル位置移動 xshade.scene().distant_light.distant_light_item(0).direction = (0.0, 0.24, 0.96)
def get_sub_vec(va, vb): return (va[0]-vb[0], va[1]-vb[1], va[2]-vb[2]) def get_add_vec(va, vb): return (va[0]+vb[0], va[1]+vb[1], va[2]+vb[2]) scene = xshade.scene() e_v = scene.camera.eye t_v = scene.camera.target goal_v = (4750, -3250) import random walk_vec = get_sub_vec(t_v, e_v) if walk_mode == 0: #forward int_t_v = (int(round(t_v[0])), int(round(t_v[2]))) if map_data.count(int_t_v) == 0: e_v = get_add_vec(e_v, walk_vec) t_v = get_add_vec(t_v, walk_vec) else: n = random.randint(0,3) if n == 0: xshade.show_message_box('', False) elif n == 1: xshade.show_message_box('', False) elif n == 2: xshade.show_message_box('', False) elif n == 3: xshade.show_message_box('', False) elif walk_mode == 1: #left_turn t_v = (t_v[2]-e_v[2]+e_v[0], t_v[1], e_v[0]-t_v[0]+e_v[2]) elif walk_mode == 2: #right_turn t_v = (e_v[2]-t_v[2]+e_v[0], t_v[1], t_v[0]-e_v[0]+e_v[2]) elif walk_mode == 3: #back sub_v = get_sub_vec(e_v, walk_vec) int_t_v = (int(round(sub_v[0])), int(round(sub_v[2]))) if map_data.count(int_t_v) == 0: e_v = get_sub_vec(e_v, walk_vec) t_v = get_sub_vec(t_v, walk_vec) else: n = random.randint(0,3) if n == 0: xshade.show_message_box('', False) elif n == 1: xshade.show_message_box('', False) elif n == 2: xshade.show_message_box('', False) elif n == 3: xshade.show_message_box('', False) scene.camera.eye = e_v scene.camera.target = t_v if (int(round(t_v[0])), int(round(t_v[2]))) == goal_v: xshade.show_message_box('おめでとう!無事脱出できました。', False)
#◆◆ここにリストを貼り付ける◆◆