当前位置:首页 > 破解接单 > 正文内容

制作小游戏代码(小游戏设计代码)

hacker2年前 (2022-06-10)破解接单54
本文导读目录:

怎样用C语言编写一个小游戏?

“贪吃蛇”C代码:

#include stdio.h

#include stdlib.h

#include conio.h

#include time.h

#include Windows.h

#define W 78  //游戏框的宽,x轴

#define H 26  //游戏框的高,y轴

int dir=3;    //方向变量,初值3表示向“左”

int Flag=0;   //吃了食物的标志(1是0否)

int score=0;  //玩家得分

struct food{ int x;  //食物的x坐标

                  int y;  //食物的y坐标

                 }fod;  //结构体fod有2个成员

struct snake{ int len;  //身长

                   int speed;  //速度

                   int x[100];

                   int y[100];

                  }snk;  //结构体snk有4个成员

void gtxy( int x,int y)  //控制光标移动的函数

{ COORD coord;

coord.X=x;

coord.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

void gtxy( int x,int y);  //以下声明要用到的几个自编函数

void csh( );  //初始化界面

void keymove( ); //按键操作移动蛇

void putFod( );  //投放食物

int  Over( );   //游戏结束(1是0否)

void setColor(unsigned short p, unsigned short q); //设定显示颜色

int main( )   //主函数

{ csh( );

  while(1)

    { Sleep(snk.speed);

      keymove( );

      putFod( );

      if(Over( ))

       {system(“cls”);

        gtxy(W/2+1,H/2); printf(“游戏结束!T__T”);

        gtxy(W/2+1,H/2+2); printf(“玩家总分:%d分”,score);

        getch( );

        break;

       }

   }

   return 0;

}

void csh( )  //初始化界面

{ int i;

gtxy(0,0);

CONSOLE_CURSOR_INFO cursor_info={1,0};  //以下两行是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

for(i=0;i=W;i=i+2)  //横坐标要为偶数,因为这个要打印的字符占2个位置

{ setColor(2, 0);  //设定打印颜色为绿字黑底

  gtxy(i,0);  printf("■");  //打印上边框

  gtxy(i,H); printf("■");  //打印下边框

}

for(i=1;iH;i++)

{ gtxy(0,i); printf("■");  //打印左边框

   gtxy(W,i); printf("■");  //打印右边框

}

while(1)

  { srand((unsigned)time(NULL));  //初始化随机数发生器srand( )

  fod.x=rand()%(W-4)+2;  //随机函数rand( )产生一个从0到比”(W-4)”小1的数再加2

  fod.y=rand()%(H-2)+1;  //随机函数rand( )产生一个从0到比”(H-2)”小1的数再加1

  if (fod.x%2==0) break;  //fod.x是食物的横坐标,要是2的倍数(为偶数)

}

setColor(12, 0);  //设定打印颜色为淡红字黑底

gtxy(fod.x,fod.y); printf("●");  //到食物坐标处打印初试食物

snk.len=3;      //蛇身长

snk.speed=350;  //刷新蛇的时间,即是移动速度

snk.x[0]=W/2+1;  //蛇头横坐标要为偶数(因为W/2=39)

snk.y[0]=H/2;    //蛇头纵坐标

setColor(9, 0);  //设定打印颜色为淡蓝字黑底

gtxy(snk.x[0], snk.y[0]);  printf("■");  //打印蛇头

for(i=1;isnk.len;i++)

    { snk.x[i]=snk.x[i-1]+2;  snk.y[i]=snk.y[i-1];

      gtxy(snk.x[i],snk.y[i]);  printf("■");  //打印蛇身

   }

setColor(7, 0);  //恢复默认的白字黑底

return;

}

void keymove( )  //按键操作移动蛇

{ int key;

if( kbhit( ) )    //如有按键输入才执行下面操作

   { key=getch( );

     if (key==224)  //值为224表示按下了方向键,下面要再次获取键值

       { key=getch( );

         if(key==72dir!=2)dir=1;  //72表示按下了向上方向键

         if(key==80dir!=1)dir=2;  //80为向下

         if(key==75dir!=4)dir=3;  //75为向左

         if(key==77dir!=3)dir=4;  //77为向右

       }

   if (key==32)

      { while(1) if((key=getch( ))==32) break; }  //32为空格键,这儿用来暂停

  }

if (Flag==0)  //如没吃食物,才执行下面操作擦掉蛇尾

  { gtxy(snk.x[snk.len-1],snk.y[snk.len-1]);  printf("  "); }

int i;

for (i = snk.len - 1; i 0; i--)  //从蛇尾起每节存储前一节坐标值(蛇头除外)

{ snk.x[i]=snk.x[i-1];  snk.y[i]=snk.y[i-1]; }

switch (dir)  //判断蛇头该往哪个方向移动,并获取最新坐标值

{ case 1: snk.y[0]--; break;   //dir=1要向上移动

  case 2: snk.y[0]++; break;  //dir=2要向下移动

  case 3: snk.x[0]-=2; break;  //dir=3要向左移动

  case 4: snk.x[0]+=2; break;  //dir=4要向右移动

}

setColor(9, 0);

gtxy(snk.x[0], snk.y[0]); printf("■");  //打印蛇头

if (snk.x[0] == fod.x snk.y[0] == fod.y)  //如吃到食物则执行以下操作

   { printf("\007"); snk.len++; score += 100; snk.speed -= 5; Flag = 1; } //007是响铃

else Flag = 0;   //没吃到食物Flag的值为0

if(snk.speed150) snk.speed= snk.speed+5;  //作弊码,不让速度无限加快

}

void putFod( )  //投放食物

{ if (Flag == 1)  //如吃到食物才执行以下操作,生成另一个食物

   { while (1)

  { int i,n= 1;

   srand((unsigned)time(NULL));  //初始化随机数发生器srand( )

   fod.x = rand( ) % (W - 4) + 2;  //产生在游戏框范围内的一个x坐标值

   fod.y = rand( ) % (H - 2) + 1;  //产生在游戏框范围内的一个y坐标值

   for (i = 0; i snk.len; i++)   //随机生成的食物不能在蛇的身体上

 { if (fod.x == snk.x[i] fod.y == snk.y[i]) { n= 0; break;} }

   if (n fod.x % 2 == 0) break;  //n不为0且横坐标为偶数,则食物坐标取值成功

  }

 setColor(12, 0);

      gtxy(fod.x, fod.y);  printf("●");   //光标到取得的坐标处打印食物

   }

return;

}

int Over( )  //判断游戏是否结束的函数

{ int  i;

setColor(7, 0);

gtxy(2,H+1); printf(“暂停键:space.”);  //以下打印一些其它信息

gtxy(2,H+2); printf(“游戏得分:%d”,score);

if (snk.x[0] == 0 || snk.x[0] == W) return 1;  //蛇头触碰左右边界

if (snk.y[0] == 0 || snk.y[0] == H) return 1;  //蛇头触碰上下边界

for (i = 1; i snk.len; i++)

{ if (snk.x[0] == snk.x[i] snk.y[0] == snk.y[i]) return 1; }  //蛇头触碰自身

return 0;   //没碰到边界及自身时就返回0

}

void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)

{  HANDLE  handle = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute( handle, ForeColor + BackGroundColor * 0x10 );

}   //用来设定颜色的函数

制作游戏代码

Dim game(3,2),i,j,result,num '定义二维数组 二维长度3, 一维长度2

Dim fso ,ws,f ,logFileWrite,logFileRead, fileStr,flag,flagFailNum, flagIndex ' 定义日志文件

set ws = CreateObject("wscript.shell")

Set fso = CreateObject("scripting.filesystemobject")

If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then

Else

Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",true)

'If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then

' Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)

' logFileWrite.writeLine "数字猜猜猜小游戏-游戏日志"

' end if

End If

For i=0 To 2 ' 关卡赋值

For j=4 To 5

game(i,j-4)= i*3+j

Next

Next

'For i=0 To 2

' For j=0 To 1

'MsgBox "game("i","j"): " game(i,j)

'Next

'Next

' 选择操作

Dim cnum, failNum, sucFlag,t

failNum =0

sucFlag =0

Do While 1=1

If sucFlag=1 Then

Exit Do

End if

If failNum =3 Then

MsgBox "您有连续三次操作失误,系统将直接退出..."

Exit do

end if

cnum = InputBox( "欢迎来到 数字猜猜猜小游戏 请选择操作:"chr(10)" 1.注册 2.登录 3.退出","数字猜猜猜小游戏")

If cnum ="" Then

cnum = "-1"

End if

Select Case cnum

Case 1

' 账户注册

Dim juname, upwd,regStr

regStr = ""

do while regStr = ""

uname = InputBox("请输入注册账号: ","数字猜猜猜小游戏-注册")

upwd = InputBox("请输入注册密码: ","数字猜猜猜小游戏-注册")

If uname "" Then

If upwd "" Then

regStr = uname"#"upwd

Else

regStr =""

MsgBox "您输入的注册账号密码有误,请重新输入"

End If

Else

regStr =""

MsgBox "您输入的注册账号密码有误,请重新输入"

End If

If regStr "" Then

If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then

Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)

t= Year(now)"-"month(now)"-"day(now)" " Hour(now)":"minute(now)":"second(now)

'logFileWrite.WriteBlankLines 1

logFileWrite.writeLine regStr " "t

logFileWrite.close

MsgBox "注册成功!"

exit do

else

Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",true)

If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then

Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)

logFileWrite.writeLine "数字猜猜猜小游戏-用户数据"

logFileWrite.writeLine regStr

logFileWrite.close

MsgBox "注册成功!"

exit do

end if

End If

end if

loop

'wscript.sleep 1000

case 2

自己如何制作小游戏?

《自己动手制作小游戏》说明:一直在玩别人做的FLASH游戏么?现在给你个机会大显身手!来吧,制作自己的游戏!只是刚来时需要熟悉一下制作流程,

NEW是开始制作新游戏,点下去,用鼠标在蓝色区增加障碍,右下角是关数可设,下边有个SPECS按钮,里面有游戏非常详细的设置项,按加减号即可。上边还可以写上你的名字游戏名字,分数设定等。全部设置好了之后按MENU,点一下出现的按钮,会出现空白处很多文字,这个可以复制下来留存,然后按右边的钮,再点右边的PLAY,哈哈,竟然可以玩自己制作的游戏啦!!真是好神奇啊!

记得把自己制作游戏复制下来的文字保存,在一开始的界面有个LOAD,在空白处贴上这些文字,就可以再次重玩你自己制作的游戏啦!还可以把这个复制下来发给别人分享哦!

至于第三个按钮GO,可以玩玛里奥,索尼克之类的经典的小游戏啦!

回答者:741625911

vb小游戏源代码

Rem 窗体创建三个单选框按钮,Option1、Option2、Option3

Private Sub Form_Activate()

Option1.Caption = "石头"

Option2.Caption = "剪刀"

Option3.Caption = "布"

Option1.Value = False

Option2.Value = False

Option3.Value = False

End Sub

Private Sub Option1_Click()

Randomize

Select Case Int(3 * Rnd)

Case 0: MsgBox "对方也出石头!继续!"

Case 1: MsgBox "哈哈!你赢了!对方出的是剪刀!奖励你一个苹果!"

Case 2: MsgBox "你输了!对方出的是布哦!不好意思,苹果给对方了哈!"

End Select

Option1.Value = False

End Sub

Private Sub Option2_Click()

Randomize

Select Case Int(3 * Rnd)

Case 0: MsgBox "你输了!对方出的是石头哦!不好意思,苹果给对方了哈!"

Case 1: MsgBox "对方也出剪刀!继续!"

Case 2: MsgBox "哈哈!你赢了!对方出的是布!奖励你一个苹果!"

End Select

Option2.Value = False

End Sub

Private Sub Option3_Click()

Randomize

Select Case Int(3 * Rnd)

Case 0: MsgBox "哈哈!你赢了!对方出的是石头!奖励你一个苹果!"

Case 1: MsgBox "你输了!对方出的是剪刀哦!不好意思,苹果给对方了哈!"

Case 2: MsgBox "对方也出布!继续!"

End Select

Option3.Value = False

End Sub

如何自制游戏?

大致方法/步骤

通过参考不同的游戏,写出想要制作的游戏的剧情和脚本。

游戏的种类有多种,根据自己喜欢的游戏种类,通过参考不同的游戏,写出要制作游戏的剧情和脚本。

2 根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。

接着,根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。可以使用多种手绘软件相结合,提高手绘的效果。

3 通过建模的软件把平面图形创建为立体模型效果。

有多种建模软件,可以通过建模的软件把平面图形创建为立体模型效果。比如使用常用的建模软件3dmax软件。

4 熟悉游戏制作软件的操作,这样制作游戏的效率高些。

游戏制作的软件有多种,比如用Unity3D开发游戏,熟悉游戏制作软件的操作,这样制作游戏的效率高些。

5 创建一个游戏的项目工程,在制作游戏时方便查找。

根据游戏的设计,创建一个游戏的项目工程。这样把游戏中所使用的资源文件和模型都放在一个目录下,在制作游戏时方便查找。

6 把创建好的模型导入到游戏制作软件中,构建游戏场景。

接着,可以把创建好的模型导入到游戏制作软件中,构建游戏场景。比如可以把3dmax软件创建的多种模型导入到Unity3D软件中。

7 在游戏制作软件使用透视与正交摄像机来查看场景。

不同的游戏场景需要使用不同的角度来查看,可以创建透视或正交摄像机来查看游戏场景。比如在Unity3D软件中添加摄像机。这样可以象游戏者的视角一样看物体和场景。

8 根据游戏的设计,添加合适的背景音乐与台词语音。

好的游戏都会有独特的音乐背景,游戏人物的语音生效有特点。可以请朋友帮忙添加合适的背景音乐与台词语音。

9 使用游戏制作的软件进行代码编写,并进行测试。

当游戏中的前台资源都整理好后,通过使用游戏制作的软件进行代码编写,用面向对象的方式封装不同类。比如在Unity3D可以使用编辑器,编写和运行游戏。好的游戏需要不断的测试,这样制作出来的游戏才稳定,不会出错。

10 全流程的测试游戏,找到不足的地方进行修改调整。

当游戏基础测试结束后,需要全流程的测试游戏,找到不足的地方进行修改调整。这样制作出来的游戏才经典。

11 分享和发布制作好的游戏,体验游戏设计和制作的乐趣。

当游戏制作好了,需要分享给朋友们,这样可以体验游戏设计和制作的乐趣。还可以听听游戏玩家给的建议,不断修改一下游戏设计中所没有的场景和脚步,使制作的游戏越来越好玩了

用C++编写的小游戏源代码

以下是贪吃蛇源代码:

#includeiostream.h

#includewindows.h

#includetime.h

#includestdlib.h

#includeconio.h

#define N 21

void gotoxy(int x,int y)//位置函数

{

COORD pos;

pos.X=2*x;

pos.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

void color(int a)//颜色函数

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);

}

void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果)

{

int i,j;//初始化围墙

int wall[N+2][N+2]={{0}};

for(i=1;i=N;i++)

{

for(j=1;j=N;j++)

wall[i][j]=1;

}

color(11);

for(i=0;iN+2;i++)

{

for(j=0;jN+2;j++)

{

if(wall[i][j])

cout"■";

else cout"□" ;

}

coutendl;

}

gotoxy(N+3,1);//显示信息

color(20);

cout"按 W S A D 移动方向"endl;

gotoxy(N+3,2);

color(20);

cout"按任意键暂停"endl;

gotoxy(N+3,3);

color(20);

cout"得分:"endl;

apple[0]=rand()%N+1;//苹果

apple[1]=rand()%N+1;

gotoxy(apple[0],apple[1]);

color(12);

cout"●"endl;

}

int main()

{

int i,j;

int** snake=NULL;

int apple[2];

int score=0;

int tail[2];

int len=3;

char ch='p';

srand((unsigned)time(NULL));

init(apple);

snake=(int**)realloc(snake,sizeof(int*)*len);

for(i=0;ilen;i++)

snake[i]=(int*)malloc(sizeof(int)*2);

for(i=0;ilen;i++)

{

snake[i][0]=N/2;

snake[i][1]=N/2+i;

gotoxy(snake[i][0],snake[i][1]);

color(14);

cout"★"endl;

}

while(1)//进入消息循环

{

tail[0]=snake[len-1][0];

tail[1]=snake[len-1][1];

gotoxy(tail[0],tail[1]);

color(11);

cout"■"endl;

for(i=len-1;i0;i--)

{

snake[i][0]=snake[i-1][0];

snake[i][1]=snake[i-1][1];

gotoxy(snake[i][0],snake[i][1]);

color(14);

cout"★"endl;

}

if(kbhit())

{

gotoxy(0,N+2);

ch=getche();

}

switch(ch)

{

case 'w':snake[0][1]--;break;

case 's':snake[0][1]++;break;

case 'a':snake[0][0]--;break;

case 'd':snake[0][0]++;break;

default: break;

}

gotoxy(snake[0][0],snake[0][1]);

color(14);

cout"★"endl;

Sleep(abs(200-0.5*score));

if(snake[0][0]==apple[0]snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1

{

score++;

len++;

snake=(int**)realloc(snake,sizeof(int*)*len);

snake[len-1]=(int*)malloc(sizeof(int)*2);

apple[0]=rand()%N+1;

apple[1]=rand()%N+1;

gotoxy(apple[0],apple[1]);

color(12);

cout"●"endl;

gotoxy(N+5,3);

color(20);

coutscoreendl;

}

if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败

{

gotoxy(N/2,N/2);

color(30);

cout"失败!!!"endl;

for(i=0;ilen;i++)

free(snake[i]);

Sleep(INFINITE);

exit(0);

}

}

return 0;

}参考资料:从C++吧看来的

分享给朋友:

评论列表

依疚轻禾
2年前 (2022-06-10)

olor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0){  HANDLE  handle = GetStdHandle(STD

莣萳心児
2年前 (2022-06-11)

关数可设,下边有个SPECS按钮,里面有游戏非常详细的设置项,按加减号即可。上边还可以写上你的名字游戏名字,分数设定等。全部设置好了之后按MENU,点一下出现的按钮,会出现空白处很多文字,这个可以复制下来留存,然后按右边的钮,再点右边的PLA

颜于謓念
2年前 (2022-06-10)

%2==0) break;  //fod.x是食物的横坐标,要是2的倍数(为偶数) } setColor(12, 0);  //设定打印颜色为淡红字黑底 gtxy(fod.x,fod.y); printf("●");  //到食物坐标处打印

余安戈亓
2年前 (2022-06-10)

断修改一下游戏设计中所没有的场景和脚步,使制作的游戏越来越好玩了用C++编写的小游戏源代码以下是贪吃蛇源代码:#includeiostream.h#include

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。