c编游戏手机
A. C语言如何开发手机游戏
有,iPhone就是,不过不是C,是Object C,是面向对象的C。到iPhone的开发网站上有SDK和各类开发向导。
B. c/c++可以编写手机游戏吗
不是的,任何语言都可以编写手机程序,这个只是手机是否支持的一个问题。(C语言可以编写塞班、Windowsmobile等等手机软件)java只是应用的范围比较广,可移植性强,而多数手机都有java支持库,所以多数手机上都可以安装JAVA软件。。。
C. 怎么设计一个手机游戏
如何设计一个好的手游主界面及其交互?
没有什么思路的话,建议你去玩玩这5个游戏,里面的交互和设计风格都值得思考。
TOP 1 —— 纪念碑谷
Ustwo games开发的一款解谜类手机游戏,于2014年正式发行。 游戏通过探索隐藏小路、发现视力错觉以及击败神秘的乌鸦人来帮助沉默公主艾达走出纪念碑迷阵。游戏一共有18关,包括“被遗忘的海岸”和原作,还有一关艾滋病援助版本:艾达的梦。本游戏获得2014年度App Store精选榜单中国区iPad年度最佳游戏。同时,也是GDC2015(全球游戏开发者大会)移动游戏方面,《纪念碑谷》成为了最大赢家,成功拿下“最佳创意”、“最佳移动游戏”和“最佳视觉艺术”三项大奖。这样的游戏如果不玩真的是人生一大遗憾。
这款游戏最棒的地方不只是其游戏性,更加值得把玩的是空间的设计,这种视觉错位空间让你脑洞大开才能通关,并且从配色到建筑物的设计上都表现出非常棒的艺术性。玩过的用户都会有这样的感觉:随便截屏一下,都能当做手机壁纸。
TOP 2 —— 收割者:苍白剑客
由英国的传奇游戏工作室Hexage独立开发的一款横版ARPG游戏,风格独特,玩法新奇。之所以说Hexage是个传奇的工作室,那是因为该工作室的工作人员少的离谱从以前的2人到现在的5人,开发的游戏风格奇异,口碑奇佳,在国外知名度很高。该工作室在沉寂了两年之久,终于又推出了这款游戏。
游戏从人设到场景到操作性都可以说非常值得一玩,畅快淋漓并且风格独特,相比较现在大量的3D酷炫技能 *** 炸天的游戏来说,绝对是一个特异的存在,也让人忍俊不住这种爱。游戏中的小怪物造型也是各有特色,从小道具到服装配色都是顶级的棒。
TOP 3 —— 地狱边境
又名LIMBO,由Playdead Studios开发的一款2D冒险游戏,PC版于2011年8月3日发行,XBOX 360版于2010年7月21日发行。 玩家在游戏里扮演一名小男孩,在地狱的边缘寻求希望。不要小看这个类似剪影的小游戏,绝对让你爱不释手,它所获得奖项足够摆的满满的……超过100个游戏奖项,包括GameInformer最佳下载游戏、GameSpot最佳解密游戏、Kotaku最佳另类游戏、GameReactor年度最佳数字下载游戏、Spike TV最佳独立开发游戏、X-Play最佳下载游戏、IGN最佳恐怖游戏等等。
游戏看似没什么设计,然而这样觉得你就错了,舍掉了颜色,但是加入了光影、运动模糊、快慢延时等特效,让玩家在玩的时候专注你的游戏角色,你只会有一个感觉:为什么没有颜色的游戏也能做的这么棒!!之所以排在第三位,只能怪我阿B比较偏心,设计师们在玩的时候不能学到配色相关。
TOP 4 —— 阿尔托的冒险
独立游戏开发团队Snowman。打造的滑雪游戏《阿尔托的冒险 Alto’s Adventure》令无数玩家沉浸在如痴如醉的美妙世界之中。如果要评价这款游戏,那么可以简单粗暴的一句话概括:玩法无亮点,胜在画面赞。是的,游戏性相对一般,但是画面真的很赞,如果不喜欢常见钻研或者费脑子,那么可以轻松的玩玩这款滑雪小游戏,因为画面真的很赞,并且搭配悦耳的音乐,不失为手机上必留小游戏之一。
TOP 5 —— 疯狂来往
一款国内公司开发的游戏,同样也是为聚会打造的游戏。之所以能上榜并不是因为它的交互和设计做的多么极致,重要的是它能启动设计师们的脑洞大开!游戏不仅仅是手柄上、手机上的产物,更重要的也是脑洞和行为表演上的“玩”,所以如果还没有下载这个小游戏的话,强烈推荐,几个人一起玩真的能感受到设计师们的无底线无节操深脑洞的……节奏。
......
怎么做一个手机游戏
做手机游戏还是很难的呢
首先你得熟悉Java编程语言
还有一些经常用的安卓系统的API接口
而且游戏的话还得有一定的美术功底才可以的
所以一般游戏开发都是一个团队在做
个人想做好还是有很大难度的呢
如果你想要学习安卓开发的话
你可以先去应用宝这些地方下载一些Java学习手册的软件
平时闲着的时候拿出来看一看,对学习编程有很大帮助的
Java语言是基础,也是游戏开发里边最重要的东西
希望可以对你有帮助哦
手机上的游戏是怎么制作出来的
在制作游戏之前,必须有一套经过长期测试并且适用的游戏引擎。
数位红用了两年的时间总结开发出一套基于移动设备的游戏引擎:dragon bone game engine for mobile phone(龙骨),他可以支持目前大部分的高端移动设备,它不仅可以使程序开发人员及游戏项目节省了大量的时间,另外还可以让美术人员最直观的看到其设计效果。它最大的价值就是可以使开发人员的一套代码在不需要改动程序的情况下编译运行在不同设备平台上(改动不超过20%)。目前数位红及其他公司已经使用它开发游戏超过了30款。
引擎提供了非常完善的9个模块与3个增强模块,可以完全满足各类游戏开发的需要。游戏引擎可以直接嵌入到开发者的程序中,不需要额外的支持程序即可使所开发的游戏独立运行。游戏引擎简单、易用,编译后体积很小,占用内存也很小,可以节省玩家的内存空间及无线下载费用。基本引擎包含9个模块,引擎函数界面提供了类似windows的使用模式:
1、 文件操作模块:提供类似标准c的fopen,fclose等函数。
2、 内存管理模块
3、 2d图形图象模块
4、 对话框模块
5、 *** s操作模块:可以在程序内部对 *** s的收发进行截获处理。
6、 加密模块:提供识别使用设备的imei功能,用于软件的加密目的。
7、 声音模块
8、 资源打包及压缩模块:可是使最后发售的软件包体积变小,尽量少的占用用户的内存空间。
9、 常用函数:如字符串操作等函数。
10、例子:提供一套完整游戏magicline的源程序。 引擎增强模块构成 其增强部分,包含三个模块: 1、 实时3d增强模块 2、 声音增强模块 3、 图形文件增强模块
ii. 正式开发的前期工作 a. 开发工具的准备 在很多人看来,手机游戏还是一种很新鲜时尚的玩意儿,所以,谈起手机游戏的时候难免有种莫测高深的感觉。其实,手机游戏的整个制作过程十分简单。从某种角度而言,它是一种传统的回归,同时也是新旧技术的相互融合。最常用的开发工具有vc++,j builder及codewarrior,在设计工具上则更是和普通的pc游戏制作软件没有大的区别。有的设计人员更愿意使用“骨灰级”的二维设计工具dp,也有人愿意用3dmax、maya建模之后再进行二维修改,当然所有这些方法都要根据游戏的最终设定来决定。我们在做java游戏的时,一般都是采用像素级的二维绘制完成图片,即逐个像素点的完成。但在制作pda等类似设备的游戏时,就会采用3dmax或者maya建立模型,渲染后再修整。在设计过程中,我们也与大多数游戏公司一样使用了maya、3dmax、photoshop、painter等工具。 b. 确定游戏的各项参数及目标设备
自己怎么做一个手游
算了吧,别人都是一个公司,一个团队
有谁知道一个游戏可以在手机上自己设计房子
《minecraft》 中文译 《我的世界》这款游戏原在电脑上的 移植到了手机
怎么制作一款手机游戏
楼主你好:
从题目看,你是想制作一款 游戏,但是我要告诉你的是,一个人完成一款游戏的概率是0.0000001%(哈哈,夸张了一点),游戏不是一个人能完成的。任何一款游戏制作软件要想很好的应用它,都是需要专业的指导和不断的针对练习的。
好了,让我来介绍下游戏制作里会用到哪些制作软件吧。
游戏制作至少要有,游戏建模和游戏程序编写。
3D游戏建模:要会3d *** ax或maya
游戏编程的话你要会一门编程语言,一般是C++,C++大学有学,但不教怎么做游戏。培训学校有教游戏编程的专业。当然有兴趣,可以看看这几本书:《C++Primer》,《windows游戏编程大师技巧》,《3D游戏编程大师技巧》,还有数据结构,算法,DirectX 和OpenGL。
最后说一句,游戏不是一个人做的。
如果你对游戏制作有兴趣,又不知道怎么涉足的话,可以点阅博思游戏教育的官方网站,也可以关注我们的新浪微博,微博ID:博思游戏教育基地”,相信你会有更多的收获。
如何制作手机游戏???
Java学到什么程度 C++学到什么程度?软件制作这些都不会别谈什么开发安卓游戏 android开发建议你先从java学起,java的好书有很多,但是我建议您先专注研究一本,等把这本吃透了再看其他的就容易的多了
Java类的推荐书籍:
HeadFirst java、 Java编程思想、Java2核心技术、Java程序设计经典教程
Android类的推荐书籍:
Android应用开发详解、 Android应用开发揭秘、 Android游戏开发详解
Java类的书我建议您先看HeadFirst Java,这本书是美国人写的有中文版,文风诙谐幽默又不失专业,有助于培养学习的兴趣
Android类的书我建议您先看 Android应用开发详解,内容很细代码也全,注释很多,可读性强
所有人在学习任何新知识时都是从零开始,head first java这本书有很多例子,至少可以通过复制书上代码编写一两个小程序,这就是很好的开始啊。 你先看看这些把 开发安卓软件以及游戏没点基础不行的 再说要人人都能开发安卓软件 为什么有那么多科技公司 招聘安卓软件开发 安卓工程师 月薪有那么的高
如何做一个手机游戏?一个人做可能吗?
至少要一个团队
做一个手机游戏需要什么东西大概
做手机游戏,首先你有编程基础是再好不过的了。手机游戏开发的平台是JME,一般不会用到C++。当然学过C++的更好。
做手机游戏,首先你有编程基础是再好不过的了。手机游戏开发的平台是JME,一般不会用到C++。当然学过C++的更好。
你学的可能是JEE,所以你一定要把JME好好学一下,重点是MIDlet,CANVAS,RecordStore。此外MIDP1.0和2.0的特性要搞清楚,如果做和网络有关的还要学习MIDP网络编程。掌握这些就基本上门什么问题了,学的不多,对于一个会C++/JEE的人来说,应该可以在1个月左右学完。和其他语言一样,JME关键是要多练,自己试着开发几个小游戏出来是不错的练习办法,可以找出你学习上的不足点。有条件的话,做出来的游戏应该拿到真机上运行,因为在模拟器上运行和真机有区别。
如果是独立开发手游,那么还要掌握一些基本的软件,如PhotoShop,Mappy,和简单的声效处理。另外有需求的话可以学学JTWI,特别是Mobile 3D Graphics(M3G)技术,这是以后发展的趋势,总之,你就再需要学JME和多练习,就够了。PS.一般来说JME工程师比JSE和JEE的待遇要好一些。
怎样制作手机游戏
手机游戏的整个制作过程十分简单。从某种角度而言,它是一种传统的回归,同时也是新旧技术的相互融合。最常用的开发工具有vc++,j builder及codewarrior,在设计工具上则更是和普通的pc游戏制作软件没有大的区别。有的设计人员更愿意使用“骨灰级”的二维设计工具dp,也有人愿意用3dmax、maya建模之后再进行二维修改,当然所有这些方法都要根据游戏的最终设定来决定。我们在做java游戏的时,一般都是采用像素级的二维绘制完成图片,即逐个像素点的完成。但在制作pda等类似设备的游戏时,就会采用3dmax或者maya建立模型,渲染后再修整。在设计过程使用了maya、3dmax、photoshop、painter等工具。
D. 请问如何用c语言编写手机游戏
java不好编写,因为java是专门编写网络脚本的,用java编写佷麻烦,c语言编写需要c4dioid软件,这是一个编写软件的环境,利用c语言编好游戏,然后选择导出,导出之后就是apk(软件安装包)了,只有编写了正确c语言格式的文本,才能导出成apk。
最后说一句,java也可以编写手机游戏,但不适合初学者,因为java比c语言要难,还是先学习c语言再学java吧。
E. 手机怎么编程游戏
首先我们进入手机游戏版首先,我们使用手指打开设置找到代码之后滑动屏幕的悬浮球即可使用代码
F. 如何用c语言编一个完整的游戏
可以看看windows的API啊,编界面的,如果只用命令行的话……orz……
手机游戏C不如java强大的说
G. c语言能编写手机游戏吗
C语言可以编手机游戏. 你叫他去死 不过我这有 贪吃蛇的代码,你倒可以看看 (用TC 编译一定过)
#include <stdlib.h>
#include <graphics.h>
#include <bios.h>
#include <dos.h>
#include <conio.h>
#define Enter 7181
#define ESC 283
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
void interrupt (*oldhandler)(__CPPARGS);
void interrupt newhandler(__CPPARGS);
void SetTimer(void interrupt (*IntProc)(__CPPARGS));
void KillTimer(void);
void Initgra(void);
void TheFirstBlock(void);
void DrawMap(void);
void Initsnake(void);
void Initfood(void);
void Snake_Headmv(void);
void Flag(int,int,int,int);
void GameOver(void);
void Snake_Bodymv(void);
void Snake_Bodyadd(void);
void PrntScore(void);
void Timer(void);
void Win(void);
void TheSecondBlock(void);
void Food(void);
void Dsnkorfd(int,int,int);
void Delay(int);
struct Snake
{int x;int y;int color;}Snk[12];
struct Food
{int x;int y;int color;}Fd;
int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,
checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse;
char Sco[2],Time[6];
void main()
{ Initgra();
SetTimer(newhandler);
TheFirstBlock();
while(1)
{DrawMap();
Snake_Headmv();
GameOver();
Snake_Bodymv();
Snake_Bodyadd();
PrntScore();
Timer();
Win();
if(key==ESC)
break;
if(key==Enter)
{cleardevice();
TheFirstBlock();
}
TheSecondBlock();
Food();
Delay(Snkspeed);
}
closegraph();
KillTimer();
}
void interrupt newhandler(__CPPARGS)
{
TimerCounter++;
oldhandler();
}
void SetTimer(void interrupt (*IntProc)(__CPPARGS))
{
oldhandler=getvect(0x1c);
disable();
setvect(0x1c,IntProc);
enable();
}
void KillTimer()
{
disable();
setvect(0x1c,oldhandler);
enable();
}
void Initgra()
{int gd=DETECT,gm;
initgraph(&gd,&gm,"d:\\tc");
}
void TheFirstBlock()
{setcolor(11);
settextstyle(0,0,4);
outtextxy(100,220,"The First Block");
loop:key=bioskey(0);
if(key==Enter)
{cleardevice();
Initsnake();
Initfood();
Score=0;
Hscore=1;
Snkspeed=10;
num=2;
Times=0;
key=0;
TureorFalse=1;
TimerCounter=0;
Time[0]='0';Time[1]='0';Time[2]=':';Time[3]='1';Time[4]='0';Time[5]='\0';
}
else if(key==ESC) cleardevice();
else goto loop;
}
void DrawMap()
{line(10,10,470,10);
line(470,10,470,470);
line(470,470,10,470);
line(10,470,10,10);
line(480,20,620,20);
line(620,20,620,460);
line(620,460,480,460);
line(480,460,480,20);
}
void Initsnake()
{randomize();
num=2;
Snk[0].x=random(440);
Snk[0].x=Snk[0].x-Snk[0].x%20+50;
Snk[0].y=random(440);
Snk[0].y=Snk[0].y-Snk[0].y%20+50;
Snk[0].color=4;
Snk[1].x=Snk[0].x;
Snk[1].y=Snk[0].y+20;
Snk[1].color=4;
}
void Initfood()
{randomize();
Fd.x=random(440);
Fd.x=Fd.x-Fd.x%20+30;
Fd.y=random(440);
Fd.y=Fd.y-Fd.y%20+30;
Fd.color=random(14)+1;
}
void Snake_Headmv()
{if(bioskey(1))
{key=bioskey(0);
switch(key)
{case UP:Flag(1,0,0,0);break;
case DOWN:Flag(0,1,0,0);break;
case LEFT:Flag(0,0,1,0);break;
case RIGHT:Flag(0,0,0,1);break;
default:break;
}
}
if(flag1)
{checkx=Snk[0].x;
checky=Snk[0].y;
Dsnkorfd(Snk[0].x,Snk[0].y,0);
Snk[0].y-=20;
Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);
}
if(flag2)
{checkx=Snk[0].x;
checky=Snk[0].y;
Dsnkorfd(Snk[0].x,Snk[0].y,0);
Snk[0].y+=20;
Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);
}
if(flag3)
{checkx=Snk[0].x;
checky=Snk[0].y;
Dsnkorfd(Snk[0].x,Snk[0].y,0);
Snk[0].x-=20;
Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);
}
if(flag4)
{checkx=Snk[0].x;
checky=Snk[0].y;
Dsnkorfd(Snk[0].x,Snk[0].y,0);
Snk[0].x+=20;
Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);
}
}
void Flag(int a,int b,int c,int d)
{flag1=a;flag2=b;flag3=c;flag4=d;}
void GameOver()
{int i;
if(Snk[0].x<20||Snk[0].x>460||Snk[0].y<20||Snk[0].y>460)
{cleardevice();
setcolor(11);
settextstyle(0,0,4);
outtextxy(160,220,"Game Over");
loop1:key=bioskey(0);
if(key==Enter)
{cleardevice();
TheFirstBlock();
}
else
if(key==ESC)
cleardevice();
else
goto loop1;
}
for(i=3;i<num;i++)
{if(Snk[0].x==Snk[i].x&&Snk[0].y==Snk[i].y)
{cleardevice();
setcolor(11);
settextstyle(0,0,4);
outtextxy(160,220,"Game Over");
loop2:key=bioskey(0);
if(key==Enter)
{cleardevice();
TheFirstBlock();
}
else
if(key==ESC)
cleardevice();
else goto loop2;
}
}
}
void Snake_Bodymv()
{int i,s,t;
for(i=1;i<num;i++)
{Dsnkorfd(checkx,checky,Snk[i].color);
Dsnkorfd(Snk[i].x,Snk[i].y,0);
s=Snk[i].x;
t=Snk[i].y;
Snk[i].x=checkx;
Snk[i].y=checky;
checkx=s;
checky=t;
}
}
void Food()
{if(flag5)
{randomize();
Fd.x=random(440);
Fd.x=Fd.x-Fd.x%20+30;
Fd.y=random(440);
Fd.y=Fd.y-Fd.y%20+30;
Fd.color=random(14)+1;
flag5=0;
}
Dsnkorfd(Fd.x,Fd.y,Fd.color);
}
void Snake_Bodyadd()
{if(Snk[0].x==Fd.x&&Snk[0].y==Fd.y)
{if(Snk[num-1].x>Snk[num-2].x)
{num++;
Snk[num-1].x=Snk[num-2].x+20;
Snk[num-1].y=Snk[num-2].y;
Snk[num-1].color=Fd.color;
}
else
if(Snk[num-1].x<Snk[num-2].x)
{num++;
Snk[num-1].x=Snk[num-2].x-20;
Snk[num-1].y=Snk[num-2].y;
Snk[num-1].color=Fd.color;
}
else
if(Snk[num-1].y>Snk[num-2].y)
{num++;
Snk[num-1].x=Snk[num-2].x;
Snk[num-1].y=Snk[num-2].y+20;
Snk[num-1].color=Fd.color;
}
else
if(Snk[num-1].y<Snk[num-2].y)
{num++;
Snk[num-1].x=Snk[num-2].x;
Snk[num-1].y=Snk[num-2].y-20;
Snk[num-1].color=Fd.color;
}
flag5=1;
Score++;
}
}
void PrntScore()
{if(Hscore!=Score)
{setcolor(11);
settextstyle(0,0,3);
outtextxy(490,100,"SCORE");
setcolor(2);
setfillstyle(1,0);
rectangle(520,140,580,180);
floodfill(530,145,2);
Sco[0]=(char)(Score+48);
Sco[1]='\0';
Hscore=Score;
setcolor(4);
settextstyle(0,0,3);
outtextxy(540,150,Sco);
}
}
void Timer()
{if(TimerCounter>18)
{Time[4]=(char)(Time[4]-1);
if(Time[4]<'0')
{Time[4]='9';
Time[3]=(char)(Time[3]-1);
}
if(Time[3]<'0')
{Time[3]='5';
Time[1]=(char)(Time[1]-1);
}
if(TureorFalse)
{setcolor(11);
settextstyle(0,0,3);
outtextxy(490,240,"TIMER");
setcolor(2);
setfillstyle(1,0);
rectangle(490,280,610,320);
floodfill(530,300,2);
setcolor(11);
settextstyle(0,0,3);
outtextxy(495,290,Time);
TureorFalse=0;
}
if(Time[1]=='0'&&Time[3]=='0'&&Time[4]=='0')
{setcolor(11);
settextstyle(0,0,4);
outtextxy(160,220,"Game Over");
loop:key=bioskey(0);
if(key==Enter)
{cleardevice();
TheFirstBlock();
}
else if(key==ESC) cleardevice();
else goto loop;
}
TimerCounter=0;
TureorFalse=1;
}
}
void Win()
{if(Score==3)
Times++;
if(Times==2)
{cleardevice();
setcolor(11);
settextstyle(0,0,4);
outtextxy(160,220,"You Win");
loop:key=bioskey(0);
if(key==Enter)
{cleardevice();
TheFirstBlock();
key=0;
}
else if(key==ESC) cleardevice();
else goto loop;
}
}
void TheSecondBlock()
{if(Score==3)
{cleardevice();
setcolor(11);
settextstyle(0,0,4);
outtextxy(100,220,"The Second Block");
loop:key=bioskey(0);
if(key==Enter)
{cleardevice();
Initsnake();
Initfood();
Score=0;
Hscore=1;
Snkspeed=8;
num=2;
key=0;
}
else if(key==ESC) cleardevice();
else goto loop;
}
}
void Dsnkorfd(int x,int y,int color)
{setcolor(color);
setfillstyle(1,color);
circle(x,y,10);
floodfill(x,y,color);
}
void Delay(int times)
{int i;
for(i=1;i<=times;i++)
delay(15000);
}
H. 如何制作手机游戏
手机游戏制作
全球手机顶尖游戏3d motoracer 制作全揭密
图文_吴刚 北京数位红软件应用技术有限公司执行董事
林志强 数位红nightmare ii首席三维美术设计师
王科 数位红motoracer3d首席三维美术设计师
3d motoracer 是数位红公司开发的一款针对nokia s60设备及sony ericsson p800 (uiq)的3d游戏,该游戏上市几个月来,已经成为全球最畅销的nokia s60、p800游戏应用前三名之一。本文就是对3d motoracer 的开发过程进行大致的介绍。
i. 游戏引擎的准备
在制作游戏之前,必须有一套经过长期测试并且适用的游戏引擎。
数位红用了两年的时间总结开发出一套基于移动设备的游戏引擎:dragon bone game engine for mobile phone(龙骨),他可以支持目前大部分的高端移动设备,它不仅可以使程序开发人员及游戏项目节省了大量的时间,另外还可以让美术人员最直观的看到其设计效果。它最大的价值就是可以使开发人员的一套代码在不需要改动程序的情况下编译运行在不同设备平台上(改动不超过20%)。目前数位红及其他公司已经使用它开发游戏超过了30款。
引擎提供了非常完善的9个模块与3个增强模块,可以完全满足各类游戏开发的需要。游戏引擎可以直接嵌入到开发者的程序中,不需要额外的支持程序即可使所开发的游戏独立运行。游戏引擎简单、易用,编译后体积很小,占用内存也很小,可以节省玩家的内存空间及无线下载费用。基本引擎包含9个模块,引擎函数界面提供了类似windows的使用模式:
1、 文件操作模块:提供类似标准c的fopen,fclose等函数。
2、 内存管理模块
3、 2d图形图象模块
4、 对话框模块
5、 sms操作模块:可以在程序内部对sms的收发进行截获处理。
6、 加密模块:提供识别使用设备的imei功能,用于软件的加密目的。
7、 声音模块
8、 资源打包及压缩模块:可是使最后发售的软件包体积变小,尽量少的占用用户的内存空间。
9、 常用函数:如字符串操作等函数。
10、例子:提供一套完整游戏magicline的源程序。
引擎增强模块构成
其增强部分,包含三个模块:
1、 实时3d增强模块
2、 声音增强模块
3、 图形文件增强模块
ii. 正式开发的前期工作
a. 开发工具的准备
在很多人看来,手机游戏还是一种很新鲜时尚的玩意儿,所以,谈起手机游戏的时候难免有种莫测高深的感觉。其实,手机游戏的整个制作过程十分简单。从某种角度而言,它是一种传统的回归,同时也是新旧技术的相互融合。最常用的开发工具有vc++,j builder及codewarrior,在设计工具上则更是和普通的pc游戏制作软件没有大的区别。有的设计人员更愿意使用“骨灰级”的二维设计工具dp,也有人愿意用3dmax、maya建模之后再进行二维修改,当然所有这些方法都要根据游戏的最终设定来决定。我们在做java游戏的时,一般都是采用像素级的二维绘制完成图片,即逐个像素点的完成。但在制作pda等类似设备的游戏时,就会采用3dmax或者maya建立模型,渲染后再修整。在设计过程中,我们也与大多数游戏公司一样使用了maya、3dmax、photoshop、painter等工具。
b. 确定游戏的各项参数及目标设备
这要求程序人员能给出准确的图片限制大小,即所有图片允许美工占用多少空间。由于手机游戏的制作受数据量的限制很大,所以我们在设计游戏时,经常为减少1k空间大小而大伤脑筋。另外,就是需要准确了解该手机允许的色彩数、分辨率、整屏刷新率,其实这也是对游戏引擎的一种测试。
以motoracer 3d为例,我们设想使其运行在nokia 9210、nokia 7650/3650、sony ericsson p800、pocket pc平台上。在数位红,由于我们拥有了自主开发引擎dragon bone game engine for mobile phone,游戏引擎是跨平台的,所以这一步骤我们就省去了不少时间。我们以nokia 7650/3650为最初调试蓝本,原因是在这些设备中,nokia 7650/3650的速度相对较慢,屏幕尺寸也相对其他设备小,因此以它为基础设备最为合适。
如下表,我们设计了motoracer 3d的基本技术参数。
技术参数 达成目标及要求
图像刷新速度 >18/fps
文件安装完成大小 <1000k
文件未安装大小 <400k
占用内存峰值 <700k
使用过程中游戏占用内存 <700k
游戏与操作系统兼容性 nokia 9210、nokia 7650/3650、sony ericsson p800、pocket pc
游戏图形特效清单 无 alpha
图形文件
声音文件 .wav
数据自定义
目录结构/变动文件清单
使用的动态链接库 未知
下面是经过初步估计的基本图片清单:
跑道外面的沙地草地元素
跑道的边上的指示方向的牌。(左右)
跑道地面元素
背景的天空图。
起跑线。
选择的时候得车图(4张)
比赛开始前站立的背面图(4张)。
比赛时候得车加人背面图(4套,每套9张,分别9个角度,从直立开始,每15度一张。)
撞车后的图(3桢)
比赛完毕名次画面。
速度仪表图。
数字(0至9等宽横排,分别有4套,速度数字,档位数字,排位数字)
菜单背景
top ten
按钮
巡回赛排名的背景
c. 准备游戏策划
很多开发者认为,手机游戏的策划不重要,这个观点是严重错误的,手机游戏的美术与程序开发工作量都非常有限,其表现力也受非常大的制约,因此一款手机游戏的可完性如何在某种意义上完全取决于游戏策划本身。
在此过程中,手机游戏策划基本同传统游戏策划无异。但游戏策划必须要对游戏的操作做出准确的设计,每个手机的键盘都不太相同,毕竟pc上的键盘基本都是101键。
再就是根据上面第一步给定的美工空间限制,美工要同策划共同商议,严格计算每张图片占用的空间,甚至是一个小图标都是不可以漏掉的。
以motoracer 3d为例,我们的游戏策划做了大量有关物理力学方面的公式,使其美工在设计图片时更符合真实的效果。
如下表:我们将每种赛车的速度特性均体现出来。
gear 1 gear 2 gear 3 gear 4 gear 5 grip 颜色
车1 最大速度(mph) 97 107 135 156 176 0.45 绿黄
加速度(mph/秒) 21 18 16 12 8
车2 最大速度(mph) 90 102 127 148 168 0.25 紫黄
加速度(mph/秒) 23 20 18 14 10
车3 最大速度(mph) 102 112 140 160 180 0.65 蓝黄
加速度(mph/秒) 20 16 13 10 7
车4 最大速度(mph) 94 105 133 152 172 0.35 黄蓝
加速度(mph/秒) 22 19 17 13 9
车5 最大速度(mph) 104 115 145 166 182 0.75 黑红
加速度(mph/秒) 19 17 14 10 7
车6 最大速度(mph) 92 105 133 152 178 0.5 红黄
加速度(mph/秒) 21 18 15 11 8
d. 美术及程序开发工作
motoracer 的贴图设计
建立摩托车的模型与赛手
调整运行时的动作
另外最重要的就是如果想做一款motoracer这样的游戏,首先自己就应该是摩托车的行家,我们motoracer 3d的首席美术设计师王科,就是一个疯狂的摩托车发烧友,他可以为了攒钱买机车,啃一年的馒头。呵…
e. demo测试
测试工作以motoracer 3d为例,我们开发周期6个月,因为有了引擎的缘故,使主代码开发周期缩短至3个月,为了保证这款产品具备国际水准,剩余的3个月我们基本都在找问题、鸡蛋里挑骨头。于是一款位列全球手机游戏销售前三名的motoracer 3d终于出炉了。
当然,在数位红像motoracer 3d的幸运产品并不多,数位红有30%的产品在demo期间就因为可完性、操作感等问题最终没有面世。毕竟想要打造一个优秀的品牌是要做出很大牺牲的。
iii. 手机游戏制作宝典
由于手机硬件设备方面的诸多限制和性能差异,我们在游戏的开发和制作过程中无法天马行空般的进行创作,而不得不综合考虑到多方因素的平衡。下面列出的是一些关键的性能参数,这些参数都直接影响游戏的效果。
分辨率
手机的屏幕大小各有不同,从80*30到320*240,就好比在pc发展过程中的cga、ega乃至vga,分辨率的高低直接导致了造型的大小及表现力,这点相信每个设计人员都有所体会。另外,由于手机型号及操作系统的多样性,导致了一款游戏并不能不加改动的在不同的手机上运行。对于美术设计人员而言,就要在设计之初考虑屏幕的自适应问题。比如在128×128分辨率下与200×200的分辨率下,如何可以不重新更换图片,但又达到同样的效果?
色彩数量
目前手机能达到的色彩数量也是限制美术人员发挥的一个重要瓶颈。从过去几年的黑白屏幕手机到现今256色、4096色及真彩色。digital-red在开发游戏时接触过非常多的手机,其中有的手机号称能显示4096色,但我们将一张4096色的色阶图进行显示,便发现有的颜色根本无法区分,更让人吃惊的是,个别手机还色偏严重。所以,设计人员是一定要根据实际手机进行图片绘制,在此,digital-red有过非常多的教训。
明亮度
液晶屏幕由于其独特的发光原理,并不能达到传统显示器的亮度,同时也就导致了很多色彩丰富的图案在强光下,不能显示出原有的效果,这点在手机户外显示时尤其明显。因此设计人员在设计手机游戏图片时一定要考虑这点,不能将色彩对比度设置的过于接近、图片设计一定要简洁明快,避免过小的图片。
显示速度
在我们接触的手机里,很多由于运算速度的问题,导致动画帧数并不能流畅,甚至达到不了10帧/秒,这对于游戏动画而言是致命的,我们一般采取局部刷帧或者尽量避免全屏幕动画来尽量达到预期效果。而且液晶屏幕本身也有显示速度问题,我们就发现过很多手机都有影像“拖尾”情况。这种情况,在实际游戏中很容易造成玩家的视觉疲劳,尤其在颠簸的车上或者是行动中,游戏时间过长,就有头晕目眩的感觉。如此,即使是一款优秀的游戏也无法留住玩家了。
电力
由于手机是液晶屏幕,大多数设备在高亮度的像素显示与一般像素显示上,两者耗电量是有所区别的,例如白色背景就要比黑色背景消耗更多的电池能量。因此,对于手机游戏而言,要尽可能节省玩家的电池,也算是对玩家的一种体贴吧。
手机游戏开发过程中的一些错误观念
很多想开发手机游戏的朋友们对于手机游戏都充满了幻想,digital-red也曾与这些朋友们一样,在脑海中有非常多的想法等待实现,但一旦真正开发游戏的时候我们就发现很不现实,这里将几个常见的错误认识与诸位分享:
移植pc游戏到手机上
pc上的游戏已经以百兆来计算其占用空间了,而很多手机游戏是以k来计算,大多数的手机游戏能安装60k的游戏就算不错了。
j2me游戏不用改动可以运行在各种手机上
j2me在移动设备上有一个midp 1.0标准,但各个手机厂商在推出支持j2me的手机上都对其进行了扩充甚至改动,一个程序想要达到最理想的效果就一定要针对不同型号的手机。
用java开发手机游戏要比用c++好
使用java开发手机游戏的确非常方便,但在效果与性能上很难与c++代码实现效果比拟。如在symbian os/wince设备上我们还是推荐尽量使用c++来开发为好。
java开发出的应用程序占用的空间小
在开发小型应用时,java程序的确空间占用较小,但如果游戏项目过大,java游戏的小巧优势就很难体现了。
手机游戏策划与传统游戏策划无异
手机游戏的策划禁忌非常多,要求策划人员必须全面了解手机的技术性能才能做出针对性的优秀游戏。
美术可以画大图,然后再缩小
一张大图如果缩成12*12大小,效果就可想而知了。
I. 如何用手机进行编程
这里介绍3种可以在手机上编程的app,分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python),都不需要root,可以直接编写程序并运行,下面我简单介绍一下这3个app的安装和简单使用,主要内容如下:
1.下载安装,这里以我的vivo手机为例,直接打开“应用商店”,搜索“C语言编译器”,如下,直接点击下载安装:
测试代码如下,这里编写了2个函数,分别是2数之和和2数只差,很简单:
程序运行截图如下,需要先输入2个数,才能正常运行:
1.下载安装,这直接在应用商店里搜素“AIDE”就行,直接下载安装,如下:
这里测试一下,主要代码如下,官方自带的例子:
程序运行截图如下:
1.下载安装,这里直接在应用商店里搜索“QPython3”就行,直接下载安装,如下:
主界面如下,主要分为“终端”、“编辑器”、“程序”、“QPYPI”、“课程”、“社区”这6个模块,终端类似IDLE,编辑器类似记事本,QPYPI是第三方包和工具,程序存储官方自带的示例,课程是一些教学案例:
这里测试一下官方自带的例子—speaky.py,在“程序”这个模块下,代码如下:
点击运行按钮,程序运行截图如下:
至此,这3个app都介绍完毕。总的来说,使用起来都不错,各有各的功能,当然,还有许多其他的app也可以在手机上进行编程,像c4droid(c/c++),termux(高级终端,类似linux)等,这里我就不详细介绍了,感兴趣的可以在网上搜索一下,有相关教程和示例可供参考,希望以上分享的内容能对你有所帮助吧。
很高兴能回答你的问题
我就自己使用过的一些手机编程软件来进行说明。之前学习网页开发,为了让自己随时随地使用编程,携带方便。
第一种 html-css-js
这款软件,看着名字就知道是和html相关的网页开发,它是由踏宇 科技 开发的一款手机开发网页的APP。不仅有编程、编译功能,还可以进行网页开发学习,内附很多关于网页设计(css,js)。真正做到编写,学习两不误。
这是代码编写界面:
这是学习界面:
但哎,我现在基本不使用它来编程了,当你使用到手机键盘里的,你就知道为啥了。
第二种,C++pro
这一款手持编程APP软件,是我比较喜欢的一款,功能很强大,不仅可以编写C语言、C++、C#而且还可以编写PHP、Nodejs、go等。可以说,你拥有了这一款APP,就相当于同时拥有了多个编程APP软件啦。
这是打开后的主界面。不难发现有很多种语言的编写模块。更加强大的是,它还可以在编写代码后做一个选择,选择要运行的语言工具。
当然如果大量代码运行的话,可能会比较迟缓。
两款手机编程APP分享给大家!
这里介绍3种可以在手机上编程的app,分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python),都不需要root,可以直接编写程序并运行,下面我简单介绍一下这3个app的安装和简单使用,主要内容如下:
1.下载安装,这里以我的vivo手机为例,直接打开“应用商店”,搜索“C语言编译器”,如下,直接点击下载安装:
测试代码如下,这里编写了2个函数,分别是2数之和和2数只差,很简单:
程序运行截图如下,需要先输入2个数,才能正常运行:
1.下载安装,这直接在应用商店里搜素“AIDE”就行,直接下载安装,如下:
这里测试一下,主要代码如下,官方自带的例子:
程序运行截图如下:
1.下载安装,这里直接在应用商店里搜索“QPython3”就行,直接下载安装,如下:
主界面如下,主要分为“终端”、“编辑器”、“程序”、“QPYPI”、“课程”、“社区”这6个模块,终端类似IDLE,编辑器类似记事本,QPYPI是第三方包和工具,程序存储官方自带的示例,课程是一些教学案例:
这里测试一下官方自带的例子—speaky.py,在“程序”这个模块下,代码如下:
点击运行按钮,程序运行截图如下:
至此,这3个app都介绍完毕。总的来说,使用起来都不错,各有各的功能,当然,还有许多其他的app也可以在手机上进行编程,像c4droid(c/c++),termux(高级终端,类似linux)等,这里我就不详细介绍了,感兴趣的可以在网上搜索一下,有相关教程和示例可供参考,希望以上分享的内容能对你有所帮助吧。
用手机进行编程,也是脑洞大开了啊,不过话说回来,手机上到底能不能进行编程呢?当然是可以的,现在手机的性能可以说不亚于电脑的,那么我下面给大家分享几个用手机编程的办法。
1.c语言编译器
这个软件可以说是学习c语言的实用工具了,给大家介绍一下它的特点,就是小,没错内存只有10M左右,而且软件干净啊,使用起来没有什么广告,用起来效率也是非常高的。
2.JAVA编辑器
如果你喜欢使用JAVA这个语言的话,这款软件留非常的适合你,专门做JAVA代码开发,你可以用它做一些小 游戏 ,功能非常的强大,而且使用的功能又很简单。
可以在线编辑demo 跑基本环境 但是涉及到功能模块开发 还是需要电脑的,
手机只能简单编辑脚本 以及 代码的部分存储
坐公交坐地铁或排队等待的时候闲着没事可以在手机上编程学习,但是总得来说手机上编程不怎么舒适。
第一款: pythonista3 phython编程app,特点:编写方便,交互感强,API强大
a.编辑器包含: 1. 语法高亮 2.自动补全符号 3.个性化python键盘 等功能
b.清晰的标签,让你在各个文件间轻松切换!
c.完美的提示窗口,手机上编写命令行也能从容自如
d.方便的2d引擎库,快速写出一个小 游戏 吧
第二款: mimo 学习编程app,特点:适合学习,操作简单,界面萌化
a.趣闻教学: 可以选择一门语言进行学习,内容非常易懂,操作也简单,mimo支持23种编程语言的教程,值得玩一玩。
b.编辑也很方便
第三款:my phython quiz 帮你复习python的app。 特点:碎片化学习
没事在路上多刷刷题吧,有助于增强熟练度。
第四款: Udacity 目前最全,最优质的编程课程app。 特点:老师优质,硅谷资源,最新 科技
屏幕太小了,小心点眼睛。
网络搜索以下软件,或者编程器
NO.1 c4droid
一款手机上的c语言编译器。
个人认为手机上最好用的,没有之一!c4droid是款Android设备上的C/C++程序编译器。
NO.2 AIDE
功能强大,内置学习教程。
AIDE是一个Android Java集成开发环境,可以让你在Android系统内进行Android软件和 游戏 的开发。
NO.3 我的应用iapp
专为手机研发,代码编写简单,学习容易。
iapp还很年轻,特别需要大家的支持!
NO.4 cppdroid
和c4droid一样,是一款手机上的c语言编译器。
安卓上的C/C++编译环境,可以帮助你在手机上编写c/c++程序 ,和c4droid各有优点,cppdroid最大的优点就是可以即时报错,写一个字符就检查一遍,保证程序的正确性,而且编译速度快,虽然还有部分地方赶不上c4droid,但是和c4droid搭配还是不错的。
网络可以查查
J. 编写一个手机单机游戏回合制的,是用c 语言编写还是用c ++编写,具体是用哪个语言
你发的代码是用C语言写的,小游戏。
C和C++语言编译的exe程序是不能在手机上运行的,Java可以