1.怎么在电脑制作小游戏?
正好我现在也在学习CE3,我也是一个刚上路的新手,知道的也不是很多,大概是需要一个游戏引擎,例如:虚幻3 cryengine3
游戏引擎负责建立游戏中复杂的关系以及数据,还可以进行场景、关卡、环境、效果的制作。
人物模型和人物表情、动作一类需要用maya软件制作并导入到游戏引擎中。
静态物体、建筑物可以用3DSMAX来制作,并导入到游戏引擎中。
电脑编程用与实现游戏中对逻辑控制和各种计算的实现。建议学C或C++
如今一个好的电脑游戏的制作,仅仅一个或几个人来做的话 确实是非常麻烦而且耗时的一件事情,比如我现在用游戏引擎做一个比较大而且逼真的游戏地形,并对其进行修改就需要2-3天时间,而一个游戏所需要的工作量确实非常多,如果是想自己娱乐的话,建议学FLASH制作简单的小游戏,如果你对电脑制作游戏有很大执念的话,欢迎你~~兄弟 呵呵
2.电脑上怎么制作游戏
那要看你做什么游戏了,如果像俄罗斯方块这样的小游戏,VB和Flash就可以做。
如果是大的3D游戏,那很可能就要用到C++和Direct3D什么的。总之都是要编程的。
还有要制作大型的3D游戏有时还会用到3DMAX的
总之,游戏编程是一个很漫长的过程,在开始这个过程之前,请你一定要做好心理准备。
如果你没有接触过任何相关的知识的话,那么,一定要做好1~2年的准备,应为在开始正式开发游戏之前,你还有很多的工作要做。我的建议是,最好要从一些简单的编程做起。编程的语言有很多种,有简单,有难,但是如果可以的话,最好还是从C语言开始把,毕竟这是一门很实用的语言,而且他的移植性很好,学完后也便于一些更高级语言的学习,如C++,VC++或者JAVA。
当你有了一定的编程基础后(往往这是很不够的),不要急于求成,因为你至少还要了解很多的相关知识,比如说你可以先看看操作系统是如何运作的,在通过学习一下计算机组成来了解一下各个部件的关系和执行方式,如果可以的话,在看看汇编吧,毕竟知道更多的东西会有助于你其他方面的提高。
其实开发一个游戏真是一件很辛苦的事情,要学习的东西真的很多。在享受最终那份成就感之前,需要熬过无数枯燥的日子。
3.如何制作电脑简易命令小游戏
简单的Dos小游戏开始学习java,这周只简单的学习了C++的基本语法:输入输出,判断循环,因此用这些东西在java上瞎写了一个DOS小游戏。
import java.util.*;public class Demo {static int A=0,D=0,H=10,MONEY=0;static int a1=1,d1=1,h1=5,lv1;static String receive;//用来接收指令public static void main(String[] args){sop("输入star开始游戏");receive=in();//调用命令行输入方法if(receive.equals("star")){star("");}else{sop("error:"+receive);}}public static void star(String flag){//开始1sop("输入1,2,3中的一个值领取物品");flag=in();if(flag.equals("1")){A+=4;D++;show();}else if(flag.equals("2")){A+=3;D+=2;show();}else{MONEY+=50;show();}star2("");}public static void star2(String flag){//开始2sop("输入f/S决定去战斗/商店");flag=in();if(flag.equals("f")){f("");}else if(flag.equals("s")){s("");}else{star2("");}}public static void f(String flag){//战斗//int key=0;a1=1;//初始化botd1=1;h1=5;lv1=1;do{sop("当前战斗等级为:"+lv1);a1=2*lv1;d1=2*lv1;h1=5*lv1;sop("bot为:");showbot();sop("是否开始战斗?y/n");flag=in();if(flag.equals("y")){//输入y,继续H=fight(H);//进入fight模式if(H>0){//判断HMONEY+=5*lv1;lv1++;sop("win");show();}else{over();}}else{//输入其他,退回到satr2star2("");}if(lv1==9){boss("");}sop("继续?\ny/n");flag=in();}while(flag.equals("y"));star2("");}public static void s(String flag){//商店sop("输入1/2/3选择攻击/防御/生命,任意键退出");flag=in();if(flag.equals("1")&&MONEY>=10){A++;MONEY-=10;show();s("");}else if(flag.equals("2")&&MONEY>=10){D++;MONEY-=10;show();s("");}else if(flag.equals("3")&&MONEY>=10){H+=10;MONEY-=10;show();s("");}else if(flag.equals("pay")){sop("这位土豪选择了充钱,攻击+10,防御+5");A+=50;D+=25;show();s("");}else if(MONEY<10){sop("你的钱不够");star2("");}else{star2("");}}public static void boss(String flag){//BOSSflag=in();if(flag.equals("y")){h1=100;d1=30;h1=500;fight(H);}else{sop("你被抓到了,GG");try{Thread.sleep(1000);}catch(Exception e){}over();}if(H>0){win();}else{over();}}public static int fight(int H){//fight模式while(true){if(A<=d1){sop("你被一招秒了");try{Thread.sleep(1000);}catch(Exception e){}over();}h1=h1-(A-d1);sop("你对bot造成了"+(A-d1)+"点伤害");try{Thread.sleep(1000);}catch(Exception e){}if(h1<=0){sop("bot被打败了");try{Thread.sleep(1000);}catch(Exception e){}h1=5;//return H;break;}H=H-(a1-D);//???????????????????????????sop("bot对你造成了"+(a1-D)+"点伤害");try{Thread.sleep(1000);}catch(Exception e){}if(H<=0){sop("你死了");try{Thread.sleep(1000);}catch(Exception e){}over();break;}}return H;}public static void show(){//显示自己数值sop("A值为:"+A+"\nD值为:"+D+"\nH值为:"+H+"\nMONEY:"+MONEY);}public static void showbot(){//显示bot数值sop("A值为:"+a1+"\nD值为:"+d1+"\nH值为:"+h1);}public static String in(){//命令行输入方法Scanner sc=new Scanner(System.in);String str=sc.next();return str;}public static void sop(Object obj){//输出语句方法System.out.println(obj);}public static void over(){//失败,结束sop("饮恨,游戏结束");System.exit(0);}public static void win(){//胜利sop("通关!游戏结束");System.exit(0);}}很多地方都是凭感觉写的,有些地方不会写就百度了一下。最后写完,发现如下问题:1,没有了解静态和非静态的区别,因此只写了一个类,方法都是静态的。
2,注释????的地方想了很久,为什么我的H值在每次战斗后又会被重置为10,后来发现只写了fight(H),应该写为H=fight(H)。3,商店部分“你的钱不够”语句有点小问题,不想改了。
4,刚开始没有在每次战斗后初始化bot的生命值h1,导致在攻击过高时,h1会变为负值的BUG,后来在每次bot被打败后添加了一条:h1=5;。5,刚开始没有在win(),over()方法中添加System.exit(0);,导致死亡后还会继续执行战斗方法的尴尬场面。
学习到的知识:1,静态方法只能调用静态成员,因为静态成员是随着类的加载而加载的,此时非静态成员可能还未加载,因此不能调用非静态成员。非静态方法实例化之后,可以被静态成员调用。
2,问题2我想了很久,最后发现原来是自己忘记了成员变量和局部变量的区别。figth(H)中的H是局部变量和成员变量H不是一回事,局部变量和成员变量可以同名,在使用时,局部变量具有更高的优先级,直接使用同名访问时,访问的是局部变量,如果要访问成员变量,可以用this.变量名访问。
(this的用法并不是很清楚)。
4.如何制作电脑简易命令小游戏
简单的Dos小游戏 开始学习java,这周只简单的学习了C++的基本语法:输入输出,判断循环,因此用这些东西在java上瞎写了一个DOS小游戏。
import java.util.*; public class Demo { static int A=0,D=0,H=10,MONEY=0; static int a1=1,d1=1,h1=5,lv1; static String receive;//用来接收指令 public static void main(String[] args){ sop("输入star开始游戏"); receive=in();//调用命令行输入方法 if(receive.equals("star")){ star(""); }else{ sop("error:"+receive); } } public static void star(String flag){//开始1 sop("输入1,2,3中的一个值领取物品"); flag=in(); if(flag.equals("1")){ A+=4; D++; show(); }else if(flag.equals("2")){ A+=3; D+=2; show(); }else{ MONEY+=50; show(); } star2(""); } public static void star2(String flag){//开始2 sop("输入f/S决定去战斗/商店"); flag=in(); if(flag.equals("f")){ f(""); }else if(flag.equals("s")){ s(""); }else{ star2(""); } } public static void f(String flag){//战斗//int key=0; a1=1;//初始化bot d1=1; h1=5; lv1=1; do{ sop("当前战斗等级为:"+lv1); a1=2*lv1; d1=2*lv1; h1=5*lv1; sop("bot为:"); showbot(); sop("是否开始战斗?y/n"); flag=in(); if(flag.equals("y")){//输入y,继续 H=fight(H);//进入fight模式 if(H>0){//判断H MONEY+=5*lv1; lv1++; sop("win"); show(); }else{ over(); } }else{//输入其他,退回到satr2 star2(""); } if(lv1==9){ boss(""); } sop("继续?\ny/n"); flag=in(); }while(flag.equals("y")); star2(""); } public static void s(String flag){//商店 sop("输入1/2/3选择攻击/防御/生命,任意键退出"); flag=in(); if(flag.equals("1")&&MONEY>=10){ A++; MONEY-=10; show(); s(""); }else if(flag.equals("2")&&MONEY>=10){ D++; MONEY-=10; show(); s(""); }else if(flag.equals("3")&&MONEY>=10){ H+=10; MONEY-=10; show(); s(""); }else if(flag.equals("pay")){ sop("这位土豪选择了充钱,攻击+10,防御+5"); A+=50; D+=25; show(); s(""); }else if(MONEY<10){ sop("你的钱不够"); star2(""); }else{ star2(""); } } public static void boss(String flag){//BOSS flag=in(); if(flag.equals("y")){ h1=100; d1=30; h1=500; fight(H); }else{ sop("你被抓到了,GG"); try{ Thread.sleep(1000); }catch(Exception e){} over(); } if(H>0){ win(); }else{ over(); } } public static int fight(int H){//fight模式 while(true){ if(A<=d1){ sop("你被一招秒了"); try{ Thread.sleep(1000); }catch(Exception e){} over(); } h1=h1-(A-d1); sop("你对bot造成了"+(A-d1)+"点伤害"); try{ Thread.sleep(1000); }catch(Exception e){} if(h1<=0){ sop("bot被打败了"); try{ Thread.sleep(1000); }catch(Exception e){} h1=5;//return H; break; } H=H-(a1-D);//???????????????????????????sop("bot对你造成了"+(a1-D)+"点伤害"); try{ Thread.sleep(1000); }catch(Exception e){} if(H<=0){ sop("你死了"); try{ Thread.sleep(1000); }catch(Exception e){} over(); break; } } return H; } public static void show(){//显示自己数值 sop("A值为:"+A+"\nD值为:"+D+"\nH值为:"+H+"\nMONEY:"+MONEY); } public static void showbot(){//显示bot数值 sop("A值为:"+a1+"\nD值为:"+d1+"\nH值为:"+h1); } public static String in(){//命令行输入方法 Scanner sc=new Scanner(System.in); String str=sc.next(); return str; } public static void sop(Object obj){//输出语句方法 System.out.println(obj); } public static void over(){//失败,结束 sop("饮恨,游戏结束"); System.exit(0); } public static void win(){//胜利 sop("通关!游戏结束"); System.exit(0); } } 很多地方都是凭感觉写的,有些地方不会写就百度了一下。最后写完,发现如下问题:1,没有了解静态和非静态的区别,因此只写了一个类,方法都是静态的。
2,注释????的地方想了很久,为什么我的H值在每次战斗后又会被重置为10,后来发现只写了fight(H),应该写为H=fight(H)。3,商店部分“你的钱不够”语句有点小问题,不想改了。
4,刚开始没有在每次战斗后初始化bot的生命值h1,导致在攻击过高时,h1会变为负值的BUG,后来在每次bot被打败后添加了一条:h1=5;。5,刚开始没有在win(),over()方法中添加System.exit(0);,导致死亡后还会继续执行战斗方法的尴尬场面。
学习到的知识:1,静态方法只能调用静态成员,因为静态成员是随着类的加载而加载的,此时非静态成员可能还未加载,因此不能调用非静态成员。非静态方法实例化之后,可以被静态成员调用。
2,问题2我想了很久,最后发现原来是自己忘记了成员变量和局部变量的区别。figth(H)中的H是局部变量和成员变量H不是一回事,局部变量和成员变量可以同名,在使用时,局部变量具有更高的优先级,直接使用同名访问时,访问的是局部变量,如果要访问成员变量,可以用this.变量名访问。
(this的用法并不是很清楚)。
转载请注明出处windows之家 » 电脑win10怎么制作小游戏