游戏能在不同的操作系统下运行 是什么原理? 可以根据c++讲一些

2024-11-29 10:05:52
推荐回答(4个)
回答1:

事实的情况是,游戏也是用编程语言来开发的,假定是C++开发的吧。那你想,你C++的程序里如果写一些 i++,j++ ,a[0]=NULL;这样的语句,肯定都是能运行,没有什么操作系统之分别,甚至连操作系统都不用就能运行。

只有当一个程序跟操作系统打交道的时候,才做跟操作系统相关。例如你要计算时间、访问文件、网络通信、图形图像、声音、USB、创建线程、创建链接等等。跟操作系统打交道的方式,通常叫做API函数,不同的操作系统,API函数是不同的。

如果你是游戏开发人员,那么要开发不同的平台的程序,就要让你的程序能根据不同的平台来调用不同的API函数。比较典型的方式是利用宏定义来实现,比如我的程序要在window98和window xp下运行,window98下要调用的API函数是win98_api, xp下调用的函数是winxpsp2_api
那么我就把程序写成这样

#ifdef WINNT

#define callApi winxpsp2_api
#else
#define callApi win98_api
#endif

程序的主题部分代码都是调用函数callApi,但是根据不同的平台,给予不同的配置,它会调用不同的函数。

回答2:

原理是使用了多平台的API或环境环境。比如用OpenGL作为图像引擎,BASS(不完全是自由软件)作为音频引擎,stdio读取文件。
使用一些自定的触发器比如onexitframe, onmousedown 等。通过较少的因系统而异的包装代码,将软件移植到其他系统上。
接下来的用中文几乎没法讲。
If you need to port games to different platforms, you need to list down the functions of buttons on different pages, decide their behaviors. Then use different approaches on different platforms to you know do the same thing. Or you can use one gerneral approach then implement this approach differently on different platform.
There is one another thing is that you need to design the game differently when porting from computers to tablets, because the way users/players interact with the divice is defferent.

回答3:

大多数游戏是不能在不同系统下运行的,就像安卓的游戏如果不出ios版,苹果手机就玩不了,Windows的游戏更是绝大多数在Linux下都玩不了

回答4:

基本来说是重新编译 要是同一程序 要么用了虚拟机 模拟器之类的