马里奥吃金币消失

#include <yzkgame.h>
#pragma comment( linker, "/subsystem:\"console\" /entry:\"mainCRTStartup\"" )
#pragma comment(lib, "YZKGame.lib")
int beginGameText = 0;

void gameMain1(void)
{   int distance_1 = 1000;
    int distance = 100000;
	int mario=0;
	int bgImg=0;
	int ch;
	int x;
	int y;
    int i;
	int coinNum[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int coinXs[10] = { 100,222,310,402,515,604,708,786,590,600 };
	int coinYs[10] = { 100,222,300,412,505,164,578,586,480,590 };
	int coinX, coinY;
char*music;
		music="毛泽少 - 告白气球 (伴奏).mp3";
	setGameTitle("控制");
	setGameSize(800, 600);
	playSound(music,0);
	createImage(bgImg,"大片草地.png");
	createSprite(mario, "mario");
	playSpriteAnimate(mario, "walk");
	hideText(beginGameText);
	for (i = 0;i < 10;i++) {
		createSprite(coinNum[i],"coin");
		playSpriteAnimate(coinNum[i],"rotate");
		setSpritePosition(coinNum[i],coinXs[i],coinYs[i]);
	}
	while (TRUE) {
		ch=getPressedKeyCode();
		x=getSpriteX(mario);
		y=getSpriteY(mario);
		if(ch==RP_KEY_LEFT) {
			x=x - 1;
			setSpritePosition(mario, x, y);
			setSpriteFlipX(mario, FALSE);
			for ( i = 0; i < 10; i++){
				coinX = getSpriteX(coinNum[i]);
				coinY = getSpriteY(coinNum[i]);
			    distance = (x - coinX)*(x - coinX) + (y - coinY)*(y - coinY);
				if (distance < distance_1){
					hideSprite(coinNum[i]);
				}
			
			}
			pauseGame(10);
		}
		else if (ch==RP_KEY_RIGHT) {
			x++;
			setSpritePosition(mario, x, y);
			setSpriteFlipX(mario, TRUE);
			for ( i = 0; i < 10; i++){
			  coinX = getSpriteX(coinNum[i]);
			  coinY = getSpriteY(coinNum[i]);
			  distance = (x - coinX)*(x - coinX) + (y - coinY)*(y - coinY);
				if (distance < distance_1){
					hideSprite(coinNum[i]);
				}
			
			}
			pauseGame(10);
		}
		else if (ch==RP_KEY_UP)
		{
			y++;
			setSpritePosition(mario, x, y);
			setSpriteFlipX(mario, FALSE);
			for (i = 0; i < 10; i++){
				 coinX = getSpriteX(coinNum[i]);
				 coinY = getSpriteY(coinNum[i]);
				 distance = (x - coinX)*(x - coinX) + (y - coinY)*(y - coinY);
				if (distance < distance_1){
					hideSprite(coinNum[i]);
				}
			
			}
			pauseGame(10);
		}
		else if (ch==RP_KEY_DOWN) {
			y--;
			setSpritePosition(mario, x, y);
			setSpriteFlipX(mario, TRUE);
			for (i = 0; i < 10; i++){
				 coinX = getSpriteX(coinNum[i]);
				 coinY = getSpriteY(coinNum[i]);
				 distance = (x - coinX)*(x - coinX) + (y - coinY)*(y - coinY);
				if (distance < distance_1){
					hideSprite(coinNum[i]);
				}
			}
			pauseGame(10);
		}
	}

	pauseGame(10000);
}

void gameMain(void){
    setGameTitle("马里奥吃金币");
	setGameSize(300, 300);
	createText(beginGameText,"开始游戏");
	setTextPosition(beginGameText,110,160);
	while(TRUE){
	int mouseX = getMousePositionX();
    int mouseY = getMousePositionY();
    if (mouseX > 110 && mouseX < 190 && mouseY > 160 && mouseY < 180 && isMouseLeftButtonDown()){ 
        gameMain1();
}
     pauseGame(10);
	}
}

int main(void)
{
	rpInit(gameMain);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值