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

📄 expad_spaceshadowgun.cpp

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////
// Zapper                                                               //
//////////////////////////////////////////////////////////////////////////
void	EXPAD_SpaceShadowGun::Reset()
{
	bomb_bits = 0;
	zapper_button = 0;
}

void	EXPAD_SpaceShadowGun::Strobe()
{
	bomb_bits = nes->pad->pad1bit & 0xFC;
	bomb_bits |= zapper_button & 0x02;
}

BYTE	EXPAD_SpaceShadowGun::Read4016()
{
BYTE	data = (bomb_bits & 0x01)<<1;
	bomb_bits >>= 1;
	return	data;
}

BYTE	EXPAD_SpaceShadowGun::Read4017()
{
BYTE	data = 0x08;

	if( zapper_button & 0x01 ) {
		data |= 0x10;
	}

	if( nes->GetZapperHit() ) {
		if( DirectDraw.GetZapperHit() >= 0xFE )
			data &= ~0x08;
	}
	return	data;
}

void	EXPAD_SpaceShadowGun::Sync()
{
	nes->GetZapperPos( zapper_x, zapper_y );

	zapper_button = 0;
	if( ::GetAsyncKeyState(VK_LBUTTON)&0x8000 )
		zapper_button |= 0x01;
	if( ::GetAsyncKeyState(VK_RBUTTON)&0x8000 )
		zapper_button |= 0x02;
}

void	EXPAD_SpaceShadowGun::SetSyncData( INT type, LONG data )
{
	if( type == 0 ) {
		zapper_x = data;
	} else if( type == 1 ) {
		zapper_y = data;
	} else if( type == 2 ) {
		zapper_button = data;
	}
}

LONG	EXPAD_SpaceShadowGun::GetSyncData( INT type )
{
LONG	data = 0;

	if( type == 0 ) {
		data = zapper_x;
	} else if( type == 1 ) {
		data = zapper_y;
	} else if( type == 2 ) {
		data = zapper_button;
	}
	return	data;
}

⌨️ 快捷键说明

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