3D游戏编程大师技巧+源码
首先win10的SDK里已经没有了<dmusici.h>和<dmusicf.h>,所以我在网上找了DirectX8 SDK下载下来(windows游戏编程大师技巧的源码当然也要下载下来,网上也有),然后添加到工程(直接复制到同一目录估计也可以):
Property -> Configuration Properties -> C/C++ -> Additional Include Directories.
加文件夹
…\DX8_VcSDK(DX8的SDK文件夹)\include;
Property -> Configuration Properties -> Linker -> General -> Additional Library Directories.
文件:590m.com/f/25127180-497672546-1b305d(访问密码:551685)
以下内容无关:
-------------------------------------------分割线---------------------------------------------
技术背景
在前面一篇博客我们讲到三种用python去读取一个文件的指定行的操作,最终给出的一个结论大概是,对于大型的数据而言,最快的找到指定行的方法是Linux系统自带的sed指令,那么是否只有这一种办法了呢?很显然不是,之所以采用这些方法,是因为我们被局限在数据的存储格式上,如果在处理数据或者产生数据的阶段,就把数据按照特定的数据结构进行存储,那么就能够大大的提高数据读取的效率。这里我们要介绍一个用sqlite3来读取数据用于MindSpore的训练的案例,在有限的内存空间中避免完整的去加载整个数据集。
回到顶部
Sqlite3产生随机数据
因为大部分的Python中是预装了sqlite3的,这就避免了我们自己再去重复安装的麻烦,比如Spark和PySpark就是安装起来比较麻烦的典型案例,当然其性能和分布式的处理也是非常具有优越性的。这里我们看一个用sqlite3产生训练数据的案例,这个案例的原型来自于这篇博客,其函数表达形式为:
store_data_to_db.py
import numpy as np
import sqlite3
from tqdm import trange
conn = sqlite3.connect(‘xyz.db’) # 创建或者链接一个已有db文件
cur = conn.cursor()
try:
sql_1 = ‘’‘CREATE TABLE number
(i NUMBER,
x NUMBER,
y NUMBER,
z NUMBER);’’’
cur.execute(sql_1) # 执行数据库指令,创建一个新的表单
except:
pass
def get_data(num, a=2.0, b=3.0, c=5.0):
for _ in trange(num):
x = np.random.uniform(-1.0, 1.0)
y = np.random.uniform(-1.0, 1.0)
noise = np.random.normal(0, 0.03)
z = a * x ** 2 + b * y ** 3 + c + noise # 计算数据
# 将一行数据写入数据库
cur.execute(“INSERT INTO number VALUES({},{},{},{})”.format(_, x2, y3, z))
get_data(100) # 产生100组数据
conn.commit()
cur.close()
conn.close()
在这个案例中我们一共产生了100组的测试数据,运行过程如下:
(base) dechin@ubuntu2004:~/projects/gitlab/dechin/src/mindspore$ python3 store_data_to_db.py
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 29504.11it/s]
(base) dechin@ubuntu2004:~/projects/gitlab/dechin/src/mindspore$ ll | grep xyz.db
-rw-r–r-- 1 dechin dechin 8192 6月 1 15:43 xyz.db
运行完成后,会在当前目录下产生一个名为xyz.db的数据库文件,在可迁移性上是比较灵活的。需要特别提及的是,这里我们不仅存储了x,y,z这3个变量,同时也存储了index数据,这样方便我们对数据进行检索和查找。在程序的最后一步,一定要执行commit才能够将数据保存到数据库文件中,否则不会被保存。
3D游戏编程大师技巧+源码相关推荐
- 3D游戏编程大师技巧第一章 vs2013编译书本源码问题解决方案
(书本是VC 6.0和vs2013不同) 一. 1.1.点击右键属性->配置属性->C/C++->附加包含目录:里面添加DirectX SDK的include文件路径:(如:D:\3 ...
- 3d游戏编程大师技巧 源代码_C/C++编程入门基础系列:俄罗斯方块小游戏制作,直接源代码分享...
这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph( ...
- 《3D游戏编程大师技巧》读书笔记
转转悠悠,这个坑,还没有爬出来,之前做游戏的时候以为不需要了,现在做渲染又绕回来,从另外一个角度说明,我面对的问题本质上是一类的.目录看了几遍,决定还是用"曳光弹"打法,从当前最需 ...
- 3D游戏编程大师技巧读书笔记(第一章)
1.3节代码解析 inline void Mem_Set_QUAD(void * dest, UINT data, int count) {// 这个函数填充32位对齐内存// count 为 QUA ...
- 3D游戏编程大师技巧
error:无法解析 __imp__mmioAscend@12 原因:没有相应的lib文件 解决方法:#pragma comment(lib,"Winmm.lib")
- 开始利用CSDN做学习笔记,从windows 游戏编程大师技巧和3D游戏编程大师开始
利用两个月的空余时间将windows 游戏编程大师技巧和3D游戏编程大师技巧看了一遍. 第一遍读的并不深入,代码也没有仔细研究.特别是3D下册,基本只是草草浏览了一遍而已.这一遍是为了对整体有个印象和 ...
- 游戏编程大师技巧—windows程序的基本构造
空余时间拿出来学习游戏开发时间其乐无穷的事情有木有,当然不能被导师抓住,我是专心做学术的好孩子.. 任何一个程序的人生应该是从一句dos控制台的hello word 开始的,而windows的程序应该 ...
- 《Windows游戏编程大师技巧》(第二版)第11章
第三部分:核心游戏编程 第11章 算法.数据结构.内存管理和多线程 第12章 人工智能 第13章 游戏物理 第14章 文字时代 第15章 综合运用:编写游戏! 第11章 算法.数据 ...
- 《Windows游戏编程大师技巧》(第二版)第2章
因此几乎是一夜间,Windows 95就改变了整个计算机行业.的确,目前还有一些公司仍然在使用Windows 3.1(你能相信吗?),但是Windows 95使得基于Intel的PC成为除游戏之外的所 ...
最新文章
- Chrome浏览器插件Json浏览与编辑神器
- [iphone-tabbar]如何自定义TabBarController
- 依赖注入 这样的坑游戏编程要谨慎
- wp7 视频下载 资源收集
- 如何把网址配置为http和https可以同时访问
- 如何在Vue 中管理 Mixins(搞懂这两点就足够了)
- iScroll5 API速查随记
- 案例7-2 寻找大富翁 (25 分)(STL容器)
- php未定义常量破解,如何使PHP未定义的常量注意到错误
- 解决adb devices无法连接夜神模拟器
- STC89C52单片机蜂鸣器介绍以及《卡农》歌曲代码示例
- 修改WiFi/BT模组—R329智能语音开发板入门
- 儒家学派有哪些代表人物?
- mac下报 504 Gateway Time-out
- 梁念坚与鲍尔默大唱反调
- mac 关于获取手机信息 终端指令
- cdrx8如何批量导出jpg_cdr x8批量导出插件
- i18n(国际化)地域标识码
- eclipse building workspace sleeping rapidly
- 分析师Willy Woo:最近BTC买入是由长期持有者推动的,这次暴涨远未结束