亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? chsprite.cpp

?? Windows上的MUD客戶端程序
?? CPP
字號(hào):
/*----------------------------------------------------------------------------
                        _                              _ _       
        /\             | |                            | (_)      
       /  \   _ __   __| |_ __ ___  _ __ ___   ___  __| |_  __ _ 
      / /\ \ | '_ \ / _` | '__/ _ \| '_ ` _ \ / _ \/ _` | |/ _` |
     / ____ \| | | | (_| | | | (_) | | | | | |  __/ (_| | | (_| |
    /_/    \_\_| |_|\__,_|_|  \___/|_| |_| |_|\___|\__,_|_|\__,_|

    The contents of this file are subject to the Andromedia Public
	License Version 1.0 (the "License"); you may not use this file
	except in compliance with the License. You may obtain a copy of
	the License at http://www.andromedia.com/APL/

    Software distributed under the License is distributed on an
	"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
	implied. See the License for the specific language governing
	rights and limitations under the License.

    The Original Code is Pueblo client code, released November 4, 1998.

    The Initial Developer of the Original Code is Andromedia Incorporated.
	Portions created by Andromedia are Copyright (C) 1998 Andromedia
	Incorporated.  All Rights Reserved.

	Andromedia Incorporated                         415.365.6700
	818 Mission Street - 2nd Floor                  415.365.6701 fax
	San Francisco, CA 94103

    Contributor(s):
	--------------------------------------------------------------------------
	   Chaco team:  Dan Greening, Glenn Crocker, Jim Doubek,
	                Coyote Lussier, Pritham Shetty.

					Wrote and designed original codebase.

------------------------------------------------------------------------------

----------------------------------------------------------------------------*/

#include "grheader.h"
#include <ChGrVw.h>

#include "ChSpritN.h"
#include "ChSprite.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSprite

IMPLEMENT_SERIAL(CSprite, ChDibBmp, 0 /* Schema number */ )

CSprite::CSprite()
{
    m_x = 0;
    m_y = 0;
    m_z = 50;
    m_bTransIndex = 0;
    m_pNotifyObj = NULL;
}

CSprite::~CSprite()
{
}

// Set the initial state of the sprite from its DIB image.
void CSprite::Initialize()
{
    // Get the address of the top-left pixel.
    BYTE* p = (BYTE*)GetPixelAddress(0, 0);
    ASSERT(p);
    // Get the pixel value and save it.
    m_bTransIndex = *p;
}

/////////////////////////////////////////////////////////////////////////////
// CSprite serialization

void CSprite::Serialize(CArchive& ar)
{
    ChDibBmp::Serialize(ar);
    if (ar.IsStoring()) {
        ar << (DWORD) m_x;
        ar << (DWORD) m_y;
        ar << (DWORD) m_z;
    } else {
        DWORD dw;
        ar >> dw; m_x = (int) dw;
        ar >> dw; m_y = (int) dw;
        ar >> dw; m_z = (int) dw;
        // Now generate the other parameters from the DIB.
        Initialize();
    }
}

/////////////////////////////////////////////////////////////////////////////
// CSprite commands

// Render a sprite to a DIB.
void CSprite::Render(ChDibBmp* pDIB, CRect* pClipRect)
{
    ASSERT(pDIB);

    // Get the sprite rectangle.
    CRect rcDraw;
    GetRect(&rcDraw);

    // If a clip rectangle was supplied, see if the sprite
    // is visible inside the rectangle.
    if (pClipRect) {
        if (!rcDraw.IntersectRect(pClipRect, &rcDraw)) {
            return; // not visible
        }
    }
    // Copy the image of the sprite.
    CopyBits(pDIB,                         // Dest DIB
             rcDraw.left,                  // Dest x
             rcDraw.top,                   // Dest y
             rcDraw.right - rcDraw.left,   // Width
             rcDraw.bottom - rcDraw.top,   // Height
             rcDraw.left - m_x,            // Source x
             rcDraw.top - m_y,             // Source y
             PALETTEINDEX(m_bTransIndex)); // Transparent color index
}

// Load a sprite image from a disk file.
BOOL CSprite::Load(char* pszFileName)
{
    if (!ChDibBmp::Load(pszFileName)) {
        return false;
    }
    Initialize();
    return true;
}

// Load a sprite image from a disk file.
BOOL CSprite::Load(CFile* fp)
{
    if (!ChDibBmp::Load(fp)) {
        return false;
    }
    Initialize();
    return true;
}

// Load a sprite image from a resource.
BOOL CSprite::Load(WORD wResid)
{
    if (!ChDibBmp::Load(wResid)) {
        return false;
    }
    Initialize();
    return true;
}

// Map colors to palette.
BOOL CSprite::MapColorsToPalette(CPalette* pPal)
{
    BOOL bResult = ChDibBmp::MapColorsToPalette(pPal);
    // Get the transparency info again.
    // Note: Local call only; don't call any derived class.
    CSprite::Initialize();
    return bResult;
}

// Get the bounding rectangle.
void CSprite::GetRect(CRect* pRect)
{
    ASSERT(pRect);
    pRect->left = m_x;
    pRect->top = m_y;
    pRect->right = m_x + GetWidth();
    pRect->bottom = m_y + GetHeight();
}

// Test for a hit in a non-transparent area
BOOL CSprite::HitTest(CPoint point)
{
    // Test if the point is inside the sprite rectangle
    if ((point.x > m_x) 
    && (point.x < m_x + GetWidth())
    && (point.y > m_y)
    && (point.y < m_y + GetHeight())) {
        // See if this point is transparent by testing whether
        // the pixel value is the same as the top left
        // corner value. Note that top left of the
        // image is bottom left in the DIB.
        BYTE* p = (BYTE*)GetPixelAddress(point.x - m_x, point.y - m_y);
        if (*p != m_bTransIndex) {
            return true; // hit
        }
    }
    return false;
}

// Set a new x,y position.
void CSprite::SetPosition(int x, int y)
{
    // Save the current position.
    CRect rcOld;
    GetRect(&rcOld);
    // Move to new position.
    m_x = x;
    m_y = y;
    CRect rcNew;
    GetRect(&rcNew);
    // Notify that we have moved from our old position to
    // our new position.
    if (m_pNotifyObj) {
        m_pNotifyObj->Change(this, 
                             CSpriteNotifyObj::POSITION,
                             &rcOld,
                             &rcNew);
    }
}

// Set a new Z-order.
void CSprite::SetZ(int z)
{
    if (m_z != z) {
        m_z = z;
        // See if we have to notify anyone.
        if (m_pNotifyObj) {
            CRect rc;
            GetRect(&rc);
            m_pNotifyObj->Change(this,
                                 CSpriteNotifyObj::ZORDER,
                                 &rc);
        }
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产一区二区三| 91女人视频在线观看| 欧美一区二区三区免费视频| 成人免费在线视频| 国产成人精品影视| 久久综合九色欧美综合狠狠| 另类欧美日韩国产在线| 日韩亚洲电影在线| 蜜桃视频在线观看一区二区| 制服丝袜亚洲网站| 日本不卡一二三区黄网| 制服丝袜亚洲精品中文字幕| 亚洲国产cao| 在线观看日韩电影| 夜夜嗨av一区二区三区四季av| 99精品1区2区| 亚洲综合精品久久| 欧美精品自拍偷拍| 日精品一区二区| 精品国产乱码久久久久久久久| 精品一区二区三区日韩| 久久久国产精品午夜一区ai换脸| 国产一区二区三区黄视频 | 中文无字幕一区二区三区| 狠狠色狠狠色综合系列| 欧美经典一区二区三区| 色综合天天做天天爱| 亚洲电影中文字幕在线观看| 欧美一区二区三区白人| 国产一区美女在线| 中文av一区特黄| 在线视频国内一区二区| 九九九精品视频| 亚洲精品久久久蜜桃| 日韩视频永久免费| 一本色道久久加勒比精品| 日韩电影在线观看电影| 国产精品免费视频一区| 91色porny蝌蚪| 日韩精品午夜视频| 中文字幕乱码一区二区免费| 99久久亚洲一区二区三区青草| 日韩黄色一级片| 成人av资源在线观看| 男女性色大片免费观看一区二区| 久久久亚洲高清| 欧美在线看片a免费观看| 国产精品中文欧美| 奇米色777欧美一区二区| 国产精品久久久久久久第一福利| 综合电影一区二区三区 | 久久超碰97人人做人人爱| 国产精品午夜免费| 欧美一区午夜精品| 不卡的看片网站| 久久精品99久久久| 亚洲妇女屁股眼交7| 久久精品在线观看| 久久久久久久综合| 欧美精品1区2区| 99视频在线精品| 激情都市一区二区| 亚洲成人在线观看视频| 国产精品理论在线观看| 精品久久久久久久久久久久久久久久久 | av电影在线观看完整版一区二区| 强制捆绑调教一区二区| 免费成人av资源网| 亚州成人在线电影| 亚洲精品国产第一综合99久久 | 亚洲黄色小视频| 国产精品免费人成网站| 国产亚洲精品福利| 亚洲色图欧美激情| 婷婷夜色潮精品综合在线| 日韩高清欧美激情| 免费观看一级特黄欧美大片| 日韩精品一卡二卡三卡四卡无卡| 日韩精品国产精品| 国产精品一线二线三线| 97精品超碰一区二区三区| 色域天天综合网| 欧美一级国产精品| 中国av一区二区三区| 亚洲午夜久久久久久久久久久| 亚洲大片精品永久免费| 国内精品国产三级国产a久久| 粉嫩13p一区二区三区| 欧美日韩亚洲不卡| 亚洲精品在线三区| 亚洲精品福利视频网站| 肉色丝袜一区二区| 美国十次综合导航| 成人手机在线视频| 色丁香久综合在线久综合在线观看| 欧美午夜电影一区| 91玉足脚交白嫩脚丫在线播放| 一本大道久久a久久综合| 欧美福利电影网| 精品国产在天天线2019| 亚洲高清不卡在线观看| 成人性生交大片免费看视频在线| 欧美日韩国产精选| 国产日本一区二区| 日韩精品1区2区3区| 日本久久电影网| 国产成人免费视频| 精品福利一区二区三区免费视频| 亚洲一区二区三区自拍| 成人白浆超碰人人人人| 精品人在线二区三区| 日本一区中文字幕| 欧美午夜精品免费| 玉足女爽爽91| 99久久婷婷国产综合精品电影| 日本一区二区三区高清不卡| 久草这里只有精品视频| 日韩午夜在线影院| 秋霞午夜鲁丝一区二区老狼| 欧美在线观看视频在线| 亚洲综合一区二区三区| 色吊一区二区三区| 亚洲综合图片区| 精品1区2区3区| 日韩国产高清影视| 精品女同一区二区| 国产真实乱对白精彩久久| 久久日一线二线三线suv| 蜜桃av噜噜一区二区三区小说| 精品久久久久久最新网址| 精品一区二区成人精品| 国产亚洲一区二区三区| av亚洲产国偷v产偷v自拍| 亚洲色图视频网| 欧美视频在线一区| 久久国产成人午夜av影院| 久久久午夜精品| a亚洲天堂av| 天堂一区二区在线免费观看| 精品久久久久久综合日本欧美| 国产精品69久久久久水密桃| 亚洲色欲色欲www| 91.麻豆视频| 岛国一区二区在线观看| 一区二区三区日韩| 91精品国产手机| 99久久99久久久精品齐齐| 五月天婷婷综合| 中日韩av电影| 欧美日韩精品一区二区天天拍小说| 日本欧美久久久久免费播放网| 国产日韩欧美精品在线| 欧美精品在线一区二区| av午夜精品一区二区三区| 久久国产精品区| 亚洲一区二区在线视频| 国产日韩欧美亚洲| 91麻豆精品国产91久久久久久久久 | 91视频.com| 国产精品一区在线| 亚洲成人777| 亚洲精品欧美综合四区| 久久综合久久99| 老司机免费视频一区二区三区| 亚洲激情av在线| 国产亚洲人成网站| 日韩欧美一二区| 欧美日韩国产一二三| 91天堂素人约啪| 国产福利精品一区| 狠狠色综合日日| 蜜臀av一区二区| 婷婷成人综合网| 五月综合激情网| 欧美日韩一区不卡| 91精彩视频在线| 色94色欧美sute亚洲线路一久 | 国产一区二区h| 国产一区二区不卡在线| 国内精品伊人久久久久av一坑 | 日韩av一区二区三区四区| 免费久久精品视频| 久久电影国产免费久久电影| 日韩一区精品视频| 免费美女久久99| 国产成人精品亚洲日本在线桃色 | 激情久久久久久久久久久久久久久久| 日本欧美加勒比视频| 久久国产尿小便嘘嘘| 国产成人av一区二区三区在线观看| 国产一区二区三区精品视频| 国产福利91精品一区| 成人a区在线观看| 在线观看区一区二| 91麻豆精品国产91久久久| 精品欧美乱码久久久久久| 国产无遮挡一区二区三区毛片日本 | 色老汉av一区二区三区| 7777精品伊人久久久大香线蕉的 | 国产精品一区二区91|