b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

黄金矿工网页游戏源码(小游戏黄金矿工中文版)

hacker2022-10-04 18:10:30热点问题98
本文目录一览:1、用canvas写一个黄金矿工的小游戏的步骤2、

本文目录一览:

用canvas写一个黄金矿工的小游戏的步骤

S键是左边的矿工放钩子,W键是左边的矿工扔炸药;键盘下键是右边的矿工放钩子,键盘上键是右边的矿工扔炸药。

求一个黄金矿工小游戏的源代码,工程文件最好!要用win32 框架编写的,谢谢!好的一定再追加100分悬赏分!

最近在学windows游戏编程,老师布置了...求高手们给个windows 用C++编写的潜艇大战的源代码,谢谢了! ...

请给我一份黄金矿工的c语言源代码,谢谢!

你好!

具体什么要求?要和黄金矿工界面一样吗?那可是非常有难度的

用c语言在funcode上做黄金矿工的游戏 求发整个文件

//funcode黄金矿工源文件

#include "CommonAPI.h"

#include "stdio.h"

#include "string.h"

void   DrawHookLine();

int g_fGoldBornMinX = 0;

int g_fGoldBornMaxX = 0;

int g_fGoldBornMinY = 0;

int g_fGoldBornMaxY = 0;

int g_iGoldCount =  20;

int g_iGameState=2;

int flag=1; 

float Score=0.f;

int flagnum=0; 

char szGotGoldName[20] ; //当前抓到金子的名称

float g_fHookRotation = 0.f;

float g_fEmptyHookSpeed =35.f;

float fTimeDelta;

float g_fHookStartPosX; //存储钩子的初始X位置

float g_fHookStartPosY; //存储钩子的初始Y位置

///////////////////////////////////////////////////////////////////////////////////////////

//

// 主函数入口

//

//////////////////////////////////////////////////////////////////////////////////////////

int PASCAL WinMain(HINSTANCE hInstance,

                   HINSTANCE hPrevInstance,

                   LPSTR     lpCmdLine,

                   int       nCmdShow)

{

 // 初始化游戏引擎

 if( !dInitGameEngine( hInstance, lpCmdLine ) )

  return 0;

 // 游戏初始化代码 

    dSetWindowTitle("黄金矿工");

 g_fGoldBornMinX  = dGetScreenLeft() + 5;  //金子左边界

 g_fGoldBornMaxX  = dGetScreenRight() - 5;  //金子右边界

 g_fGoldBornMinY  = dGetScreenTop() + 20;  //金子上边界

 g_fGoldBornMaxY  = dGetScreenBottom() - 5; //金子下边界

 g_fHookStartPosX = dGetSpritePositionX("GoldHook"); //获取钩子的初始X坐标

 g_fHookStartPosY = dGetSpritePositionY("GoldHook"); //获取钩子的初始Y坐标

    dSetSpriteCollisionSend("goldHook", 1);

 dSetSpriteCollisionReceive("goldTemplate", 1);

 const float fRotateSpeed = 45.f;  //  摇摆速度,单位 度/秒

 int iHookRotToLeft = 1;   //钩子摆动的方向:1 ← ;0 →

 float fTimeDelta = dGetTimeDelta();

    // 引擎主循环,处理屏幕图像刷新等工作

 while( dEngineMainLoop() )

 {

  // 获取两次调用之间的时间差,传递给游戏逻辑处理

  float fTimeDelta = dGetTimeDelta();

  DrawHookLine();

        // 执行游戏主循环

  if(g_iGameState == 0)

  {

      float fThisRotate = fRotateSpeed * fTimeDelta;   

            if( iHookRotToLeft )

   {

    g_fHookRotation += fThisRotate;

    if( g_fHookRotation = 180.f )

    {

     g_fHookRotation  = 180.f;

     iHookRotToLeft = 0;

    }

   }

      else

   {

        g_fHookRotation -= fThisRotate;

       if( g_fHookRotation = 0.f )

    {

     g_fHookRotation  = 0.f;

     iHookRotToLeft = 1;

    }

   }

      dSetSpriteRotation("GoldHook",g_fHookRotation);

  }

  else if(g_iGameState == 1)

  { 

   dSetTextValue("Score",Score);

   //播放拉金块的动作

   dAnimateSpritePlayAnimation("goldMan","GolderManAnimation3", 1 );             //获取钩子X方向的速度

      float fSpeedX = dGetSpriteLinearVelocityX("GoldHook"); 

            //获取钩子Y方向的速度

       float fSpeedY = dGetSpriteLinearVelocityY("GoldHook");   

            //当速度接近为0时,即可判定其已到达初始点

            if( fSpeedX  0.00001f  fSpeedX  -0.00001f  

   fSpeedY  0.00001f  fSpeedY  -0.00001f )

   {

                //解除金块与钩子的锚定

   dSpriteDismount(szGotGoldName); 

                //删除获取的金块

   dDeleteSprite(szGotGoldName);  

                //回拉结束,设定状态为0

   g_iGameState = 0;   

        if(flagnum)

   {g_iGoldCount--;

     }

   }

  }

  // 播放挖金者的动作(恢复初始守候动作)

  dAnimateSpritePlayAnimation("goldMan", "GolderManAnimation2", 1);

  if(g_iGoldCount==0)

  {

   g_iGameState = 0;

   Score=0;

            dSetSpriteVisible("GameBegin",1); 

   g_iGoldCount =  20;

   flag=1; 

  }

 };

 dAnimateSpritePlayAnimation("goldMan", "GolderManAnimation2", 1);

 

    // 关闭游戏引擎

 dShutdownGameEngine();

 return 0;

}

//==========================================================================

//

// 引擎捕捉鼠标移动消息后,将调用到本函数

void dOnMouseMove( const float fMouseX, const float fMouseY )

{

 // 可以在此添加游戏需要的响应函数

}

//==========================================================================

//

// 引擎捕捉鼠标点击消息后,将调用到本函数

void dOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )

{

 // 可以在此添加游戏需要的响应函数

}

//==========================================================================

//

// 引擎捕捉键盘按下消息后,将调用到本函数

// iAltPress iShiftPress iCtrlPress 分别为判断Shift,Alt,Ctrl当前是否也处于按下状态。比如可以判断Ctrl+E组合键

void dOnKeyDown( const int iKey, const int iAltPress, const int iShiftPress, const int iCtrlPress )

{

 // 可以在此添加游戏需要的响应函数

  if(iKey==KEY_SPACE)

  {

       g_iGameState = 1; // 初始化之后,将游戏状态设置为进行中

       dSetSpriteVisible("GameBegin",0);

    //生成金子

     int iLoop = 0; //循环变量控制

           int iSize = 4, iPosX = 0, iPosY = 0; //iSize表示金块大小的变量

     if(flag)

   {

       for( iLoop = 0; iLoop  g_iGoldCount; iLoop++ )

    {

              if( iLoop  10 )//生成10个小金块,大小为4

     {

                iSize = 4;

     }

              else if( iLoop = 10  iLoop  16 )//生成6个中金块,大小为6

     {

                iSize = 6;

     }

              else//生成4个大金块,大小为8

     {

                   iSize = 8;

     }//初始化金子精灵实例

                    char* tmpName;

     //生成金块名字

     tmpName=dMakeSpriteName("GoldBlock",iLoop);           

     dCloneSprite("goldTemplate",tmpName);

     //设置金块的宽度

     dSetSpriteWidth(tmpName,(float)iSize);

     //设置金块的高度            

     dSetSpriteHeight(tmpName,(float)iSize);  

     //设置金子精灵位置

              iPosX =  dRandomRange(g_fGoldBornMinX, g_fGoldBornMaxX);

              iPosY =  dRandomRange(g_fGoldBornMinY, g_fGoldBornMaxY);

              dSetSpritePosition(tmpName,(float)iPosX, (float)iPosY);

        flag=0;

    }

   }

         if(g_iGoldCount==0)

   {

                flag=1;

    g_iGoldCount=20;

   }

  }

  if( iKey == KEY_S g_iGameState ==0 )

  {   //按下↓并且游戏状态为 "0" 

          g_iGameState = 2; //置游戏状态为2,可用于控制钩子是否摆动

         // 以当前朝向给钩子一个向前的速度

   dSetSpriteLinearVelocityPolar("GoldHook",g_fEmptyHookSpeed,g_fHookRotation);

         // 播放挖金者的动作(一个胳膊往下压的动作)

   dAnimateSpritePlayAnimation("goldMan","GolderManAnimation1", 0);

         //0 表示播放一次,这里胳膊往下压就是一次

  } 

}

//==========================================================================

//

// 引擎捕捉键盘弹起消息后,将调用到本函数

void dOnKeyUp( const int iKey )

{

 // 可以在此添加游戏需要的响应函数

}

//===========================================================================

//

// 引擎捕捉到精灵与精灵碰撞之后,调用此函数

void dOnSpriteColSprite( const char *szSrcName, const char *szTarName )

{

 // 发起者为GoldHook,接受者含有GoldBlock字段

 

  if(strcmp(szSrcName,"GoldHook")== 1  strstr(szTarName,"GoldBlock")!=NULL )

  {

   //将金块锚定在钩子上

      dSpriteMountToSpriteLinkPoint( szTarName, "GoldHook", 2 );

   //使钩子向初始位置移动,即会拉

   dSpriteMoveTo("GoldHook",g_fHookStartPosX,g_fHookStartPosY, g_fEmptyHookSpeed, 1);

   //复制并保存当前抓取到金块的名称

   strcpy(szGotGoldName,szTarName);    

   // 发起者为GoldHook,接受者含有GoldBlock字段

            // 根据金子大小,计算钩子的往回收的速度,越大的越慢。

   // 算法:之前设置的金子大小为4,6,8,用10减去该大小再除以10,得到3个小数:0.6,0.4,0.2.该小数乘以空钩子的速度即得到挂接不同金子后的实际速度

             float fWidth = dGetSpriteWidth( szTarName );

             float fSpeed = ((10.f - fWidth) / 10.f) * g_fEmptyHookSpeed;

   Score+=fWidth;

            // 钩子往初始位置移动  

            dSpriteMoveTo( "goldhook", g_fHookStartPosX, g_fHookStartPosY, fSpeed, 1);

   //播放拉金块的动作

   dAnimateSpritePlayAnimation("goldMan","GolderManAnimation1", 0 ); 

   g_iGameState = 1;

   flagnum=1;

  }

}

//===========================================================================

//

// 引擎捕捉到精灵与世界边界碰撞之后,调用此函数.

// iColSide : 0 左边,1 右边,2 上边,3 下边

void dOnSpriteColWorldLimit( const char *szName, const int iColSide )

{

 if(strcmp(szName,"GoldHook")!=0)

 {  

      //碰到边界的为钩子时

//同样设置为回拉,只是没有碰到金子

 dSpriteMoveTo(szName,g_fHookStartPosX,g_fHookStartPosY, g_fEmptyHookSpeed, 1);

//播放拉金块的动作

        dAnimateSpritePlayAnimation("goldMan","GolderManAnimation3", 0);    g_iGameState = 1;

     flagnum=0;

 } 

}

void DrawHookLine()

{

 // 首先,从矿工精灵上获取一个缆绳链接点作为绳子的起始点   

 float fStartX = dGetSpriteLinkPointPosX( "GoldMan", 1 );

 float fStartY = dGetSpriteLinkPointPosY( "GoldMan", 1 );

 // 绳子终点在钩子精灵上获取

 float fEndX = dGetSpriteLinkPointPosX( "GoldHook", 1 );

 float fEndY = dGetSpriteLinkPointPosY( "GoldHook", 1 );

 // 在这两点之间划线.线的颜色红绿蓝值都为50,即灰色

 dDrawLine( fStartX, fStartY, fEndX, fEndY, 2.f, 0, 50, 50, 50, 255 );

}

求黄金矿工关键代码

class文件是java编译后的文件,它不是源代码,真正的java源代码是.java文件。 java源代码是txt格式的.java文件,用记事本就可以打开。 用eclipse打开java 你可以自己下一个CE软件,想改什么都可以

黄金矿工单人版的flash源代码下半部分翻译一下谢谢了。

scaleX定义是什么你看看。。setType按照不同的物品启动gotoAndStop这个函数,里面的参数不同。。。。getScore就是取到什么物品加多少分。。。下半段就是一个switch代码。。。你搜索一下switch的用法就知道了

发表评论

评论列表

  • 酒奴听弧(2022-10-05 02:47:19)回复取消回复

    4,0.2.该小数乘以空钩子的速度即得到挂接不同金子后的实际速度             float fWidth = dGetSpriteWidth( szTarName );