⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 play_managefish.h

📁 凌阳32位单片机开发的小游戏
💻 H
字号:
/******************************************************************************
 *
 *     The information contained herein is the exclusive property of
 *   Sunplus Technology Co. And shall not be distributed, reproduced,
 *   or disclosed in whole in part without prior written permission.
 *
 *         (C) COPYRIGHT 2005   SUNPLUS TECHNOLOGY CO.
 *                        ALL RIGHTS RESERVED
 *
 * The entire notice above must be reproduced on all authorized copies.
 *
 *****************************************************************************/

/******************************************************************************
 *  Filename:   	Play_ManageFish.h
 *  Author:     	Robin.xjliu  (eMail: xjliu@sunplus.com)
 *  Tel:        	00885-028-87848688-5884
 *  Date:       	2005-12-03
 *  Description:	fish management function
 *  Reference:
 *  Version history:
 *-----------------------------------------------------------------------------
 *	Version   YYYY-MM-DD-INDEX   Modified By         Description
 *	1.0.0     2005-12-03           xjliu               Create
 *
 *****************************************************************************/
#ifndef _PLAY_MANAGEFISH_H
#define _PLAY_MANAGEFISH_H

#include "GamePlay.h"

/**
 * foeman fish level define
 */
#define FOEMAN_LEV0		0x00
#define FOEMAN_LEV1		0x01
#define FOEMAN_LEV2		0x02
#define FOEMAN_LEV3		0x03

/**
 * fish max number define
 */
#define NUM_FISH0		64
#define NUM_FISH1		32
#define NUM_FISH2		16
#define NUM_FISH3		8
#define NUM_FISH4		1

/**
 * fish max speed index define
 */
#define MAXSPEED_LEV0	8//10
#define MAXSPEED_LEV1	8//10
#define MAXSPEED_LEV2	18//22
#define MAXSPEED_LEV3	19//24
#define MAXSPEED_LEV4	21//25

/**
 * fish movement state
 */
#define STATE_NORMAL		0x00
#define STATE_CHANGEWAY		0x01
#define STATE_ADDSPEED		0x02
#define STATE_SUBSPEED		0x03
#define STATE_CHASE			0x04
#define STATE_DODGE			0x05
#define STATE_MAXNUM		0x06

/**
 * fish control flag setting function define
 */
#define SETFISH_VX(flag,ptr)	flag = ((flag) & 0xFFFFFFE0) | ((U32)(ptr) & 0x1F)		//bit0 ~ bit4
#define GETFISH_VX(flag)		((flag) & 0x0000001F)
#define SETFISH_VY(flag,ptr)	flag = ((flag) & 0xFFFFFC1F) | (((U32)(ptr) & 0x1F)<<5)	//bit5 ~ bit9
#define GETFISH_VY(flag)		(((flag) & 0x000003E0) >> 5)
#define SETFISH_AX(flag,ptr)	flag = ((flag) & 0xFFFFFBFF) | (((U32)(ptr) & 0x01)<<10)//bit10
#define GETFISH_AX(flag)		(((flag) & 0x00000400) >> 10)
#define SETFISH_AY(flag,ptr)	flag = ((flag) & 0xFFFFF7FF) | (((U32)(ptr) & 0x01)<<11)//bit11
#define GETFISH_AY(flag)		(((flag) & 0x00000800) >> 11)
#define SETFISH_ST(flag,ptr)	flag = ((flag) & 0xFFFF8FFF) | (((U32)(ptr) & 0x07)<<12)//bit12 ~ bit14
#define GETFISH_ST(flag)		(((flag) & 0x00007000) >> 12)
#define SETFISH_LEV(flag,ptr)	flag = ((flag) & 0xFFFE7FFF) | (((U32)(ptr) & 0x03)<<15)//bit15 ~ bit16
#define GETFISH_LEV(flag)		(((flag) & 0x00018000) >> 15)
#define SETFISH_KIND(flag,ptr)	flag = ((flag) & 0xFFFDFFFF) | (((U32)(ptr) & 0x01)<<17)//bit17
#define GETFISH_KIND(flag)		(((flag) & 0x00020000) >> 17)
#define SETFISH_KEEPCNT(flag,ptr)	\
	flag = ((flag) & 0xFFC3FFFF) | (((U32)(ptr) & 0x0F)<<18)//bit18 ~ bit21
#define GETFISH_KEEPCNT(flag)		\
	(((flag) & 0x003C0000) >> 18)
#define SETFISH_OBJID(flag,ptr)	\
	flag = ((flag) & 0xF83FFFFF) | (((U32)(ptr) & 0x1F)<<22)//bit22 ~ bit26
#define GETFISH_OBJID(flag)		\
	(((flag) & 0x07C00000) >> 22)
#define SETFISH_SELFID(flag,ptr)\
	flag = ((flag) & 0x07FFFFFF) | (((U32)(ptr) & 0x1F)<<27)//bit27 ~ bit31
#define GETFISH_SELFID(flag)	\
	(((flag) & 0xF8000000) >> 27)

/**
 * Normal motion index define
 */
#define POPO1			0
#define POPO3			1
#define POPO4			2
#define OCTOPUS			3
#define COWRY			4
#define COUNTBONE		5
#define COUNTTROUGH		6
#define NORMAL_NUM		7

extern MOTION *pFish0[];
extern MOTION *pFish1[];
extern MOTION *pFish2[];
extern MOTION *pFish3[];
extern MOTION *pFish4;
extern MOTION *pNormal[];
extern U8	g_nCurrentFish0;
extern U8	g_nCurrentFish1;
extern U8	g_nCurrentFish2;
extern U8	g_nCurrentFish3;
extern U32	g_nManageFishTimer;
extern S16	g_iSharkStartX;
extern S16	g_iSharkStartY;

void Play_ManageFish(void);
void Play_InitFish(void);

//motion process function
void ProcFish1(MOTION *pMotion);
void ProcSeajelly(MOTION *pMotion);
void ProcShark(MOTION *pMotion);
void ProcPoPo(MOTION *pMotion);
void ProcOctopus(MOTION *pMotion);
void ProcCowry(MOTION *pMotion);
void ProcActor(MOTION *pMotion);

#endif	//_PLAY_MANAGEFISH_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -