» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

PS3,XO// [BURNOUT 5] 首批画面公布~~~~

引用:
原帖由 carnon 于 2007-4-3 22:13 发表
PS3对应1080p,xo无
对应6轴,xo无
用spe更精确的计算物理效果,xo无

翻译完毕:D
很明显,
XO对应震动,PS3无

anything make sense ?


TOP

引用:
原帖由 ffcactus 于 2007-4-3 22:30 发表
多平台游戏的效果差别,估计要随着时间慢慢转向了。
祝你成功:D



TOP

引用:
原帖由 doomking 于 2007-4-3 22:26 发表
又一个系列在某集团嘴里没落了
我代表该集团承认这个事实
怎样?


TOP

引用:
原帖由 RestlessDream 于 2007-4-3 22:33 发表


第三张图实在看不清……

TakeDown的时候没有震动……嗯,不想象了……
PS3对应六轴...
可以拿着六轴自己摇的,


可以左右摇:
喏,就好像这样

也可以上下摇:
喏,就好像那样

还可以侧着摇:
喏:好像这样

实在不爽,
咱就这么滚着摇

[ 本帖最后由 大家好我是小叮当 于 2007-4-3 22:38 编辑 ]

TOP

六轴有个P用...
这话是我说的,:D
咋的?
六轴难道真的有用吗?
哦对,COD3里似乎用过,
就是这么这么这么这么 玩的...
六轴有啥用?

至于啥SPE活用的事儿,
嘿嘿...
我就记得PS2上的256阶感应力度...
还是那句话:有个P用

等有了真实画面比较再吹吧...
某些索饭现在真是饥不择食了...
BO这样的游戏也可以用来那个那个...

大家都悠着点儿...
急啥捏?

TOP

引用:
原帖由 solopain 于 2007-4-3 23:21 发表
说实话,我感觉目前三个主机没多少好玩的,尤其是ps3和xo,一提到xo就是gow,就象一提到psp,就mhp一样.ps3就更别说了,游戏才20几个,也是,发售时间短,
很好...
"我感觉"这三个字用得很好...:D
有进步.

TOP

引用:
原帖由 ffcactus 于 2007-4-3 23:48 发表


调用个东西都要用汇编?
好吧,您这个NB就用汇编写个windows下的"扫雷"吧.
给你个高级点的吧.
我正好玩过,你还要什么?
纸牌要吗?

// MineDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Mine.h"
#include "MineDlg.h"
#include "GDIObjects.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CPen Pen1,Pen2,Pen3,Pen4,Pen5,Pen6,Pen7;
int nDigitFont[11][7]={
        { 1, 2, 3, 4, 5, 6,-7},
        {-1,-2, 3, 4,-5,-6,-7},
        {-1, 2, 3,-4, 5, 6, 7},
        {-1, 2, 3, 4, 5,-6, 7},
        { 1,-2, 3, 4,-5,-6, 7},
        { 1, 2,-3, 4, 5,-6, 7},
        { 1, 2,-3, 4, 5, 6, 7},
        {-1, 2, 3, 4,-5,-6,-7},
        { 1, 2, 3, 4, 5, 6, 7},
        { 1, 2, 3, 4, 5,-6, 7},
        {-1,-2,-3,-4,-5,-6, 7}
};
/////////////////////////////////////////////////////////////////////////////
// CDigitCalculator
void CDigitCalculator::Create(CWnd *pWnd,int nX,int nY,
                long lOriginal, int nMaxNumbers, int nSepMics,
                COLORREF crColor,COLORREF crBkColor)
{
        m_nMaxNumber = nMaxNumbers;
        m_nSepMics = nSepMics;
        m_nX = nX;
        m_nY = nY;
        m_pWnd = pWnd;
        m_nCalculator = lOriginal;
        m_crColor = crColor;
        m_crBkColor = crBkColor;
       
}

void CDigitCalculator::ReShow()
{
        CClientDC ClientDC(m_pWnd);
        ClientDC.SelectObject(&Brush);
        ClientDC.SelectObject(&Pen1);
        ClientDC.Rectangle(m_nX,m_nY,
                                                m_nX+(11+m_nSepMics)*m_nMaxNumber+m_nSepMics,
                                                m_nY+25);
       
        ClientDC.SelectObject(&Pen2);
        ClientDC.SelectStockObject(NULL_BRUSH);
        ClientDC.MoveTo(m_nX,m_nY+25);
        ClientDC.LineTo(m_nX,m_nY);
        ClientDC.LineTo(m_nX+(11+m_nSepMics)*m_nMaxNumber+m_nSepMics,m_nY);
        ShowDigit();
}

void CDigitCalculator::ShowOneDigit(int nWhichDigit,int nWhichBit)
{
        CClientDC ClientDC(m_pWnd);
        int nI;
        for (nI=0;nI<7;nI++)
        {
                char nTmp = nDigitFont[nWhichDigit][nI];
                if(nTmp>0)
                {
                        ClientDC.SelectObject(&Pen3);
                }
                else
                {
                        ClientDC.SelectObject(&Pen4);
                        nTmp = -nTmp;
                }
                ClientDC.SelectStockObject(NULL_BRUSH);
               
                int        nStartPosX, nStartPosY,        nJ;

                switch(nTmp)
                {
                case 1:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics;
                        nStartPosY = m_nY+3;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX+nJ,nStartPosY+nJ);
                                ClientDC.LineTo(nStartPosX+nJ,nStartPosY-nJ+9);
                        }
                        break;
                case 2:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics+1;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX+nJ,m_nY+nJ+2);
                                ClientDC.LineTo(nStartPosX-nJ+9,m_nY+nJ+2);
                        }
                        break;
                case 3:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics+10;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX-nJ,m_nY+nJ+3);
                                ClientDC.LineTo(nStartPosX-nJ,m_nY-nJ+9+3);
                        }
                        break;
                case 4:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+10+m_nSepMics;
                        nStartPosY = m_nY+13;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX-nJ,nStartPosY+nJ);
                                ClientDC.LineTo(nStartPosX-nJ,nStartPosY-nJ+9);
                        }
                        break;
                case 5:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics+1;
                        nStartPosY = m_nY+22;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX+nJ,nStartPosY-nJ);
                                ClientDC.LineTo(nStartPosX-nJ+9,nStartPosY-nJ);
                        }
                        break;
                case 6:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics;
                        nStartPosY = m_nY+13;
                        for (nJ=0;nJ<3;nJ++)
                        {
                                ClientDC.MoveTo(nStartPosX+nJ,nStartPosY+nJ);
                                ClientDC.LineTo(nStartPosX+nJ,nStartPosY-nJ+9);
                        }
                        break;
                       
                case 7:
                        nStartPosX = m_nX+(11+m_nSepMics)*nWhichBit+m_nSepMics+1;
                        nStartPosY = m_nY+12;
                        ClientDC.MoveTo(nStartPosX,nStartPosY);
                        ClientDC.LineTo(nStartPosX+9,nStartPosY);

                        ClientDC.MoveTo(nStartPosX+1,nStartPosY+1);
                        ClientDC.LineTo(nStartPosX+8,nStartPosY+1);

                        ClientDC.MoveTo(nStartPosX+1,nStartPosY-1);
                        ClientDC.LineTo(nStartPosX+8,nStartPosY-1);
                        break;
                }
        }
}

void CDigitCalculator::ShowDigit()
{
        int nI,nJ;
        char cTmp[20];
        if(m_nCalculator<0)
        {
                nJ=1;
                ShowOneDigit(10,0);
                sprintf(cTmp,"%d",-m_nCalculator);
        }
        else
        {
                nJ=0;
                sprintf(cTmp,"%d",m_nCalculator);
        }
        int nLen=strlen(cTmp);
        for (nI=0;nJ<m_nMaxNumber;nJ++)
        {
                if(nJ>=m_nMaxNumber-nLen)
                {
                        ShowOneDigit(cTmp[nI]-'0',nJ);
                        nI++;
                }
                else
                        ShowOneDigit(0,nJ);
        }
}

void CDigitCalculator::Increase()
{
        m_nCalculator++;
        ShowDigit();
}

void CDigitCalculator::Decrease()
{
        m_nCalculator--;
        ShowDigit();
}

long CDigitCalculator::GetNumber()
{
        return m_nCalculator;
}
void CDigitCalculator::SetNumber(long lOriginal)
{
        m_nCalculator = lOriginal;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
        CAboutDlg();

// Dialog Data
        //{{AFX_DATA(CAboutDlg)
        enum { IDD = IDD_ABOUTBOX };
        //}}AFX_DATA

        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CAboutDlg)
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        //}}AFX_VIRTUAL

// Implementation
protected:
        //{{AFX_MSG(CAboutDlg)
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
        //{{AFX_DATA_INIT(CAboutDlg)
        //}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CAboutDlg)
        //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
        //{{AFX_MSG_MAP(CAboutDlg)
                // No message handlers
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()



void CMyButton::DrawItem( LPDRAWITEMSTRUCT lpDIS)
{
        // use the main bitmap for up, the selected bitmap for down
        CBitmap* pBitmap = m_pBitmap;
        CPen m_Pen1,m_Pen2;
        m_Pen1.CreatePen(PS_SOLID,1,RGB(128,128,128));
        m_Pen2.CreatePen(PS_SOLID,1,RGB(255,255,255));
        UINT state = lpDIS->itemState;
        if ((state & ODS_SELECTED) && m_pBitmapSel->m_hObject != NULL)
                pBitmap = m_pBitmapSel;

        // draw the whole button
        CDC* pDC = CDC::FromHandle(lpDIS->hDC);
        CDC memDC;
        memDC.CreateCompatibleDC(pDC);
        CBitmap* pOld = memDC.SelectObject(pBitmap);
        if (pOld == NULL)
                return;     // destructors will clean up

        CRect rect;
        rect.CopyRect(&lpDIS->rcItem);
        if (state & ODS_SELECTED)
        {
                pDC->BitBlt(rect.left+4, rect.top+2, rect.Width()-3, rect.Height()-3,
                        &memDC, 0, 0, SRCCOPY);
                memDC.SelectObject(pOld);
                pDC->SelectObject(m_Pen1);
                pDC->MoveTo(rect.right-1,0);
                pDC->LineTo(0,0);
                pDC->LineTo(0,rect.bottom-1);
                pDC->SelectObject(m_Pen2);
                pDC->LineTo(rect.right-1,rect.bottom-1);
                pDC->LineTo(rect.right-1,0);
        }
        else
        {
                pDC->BitBlt(rect.left+3, rect.top+3, rect.Width()-3, rect.Height()-3,
                        &memDC, 0, 0, SRCCOPY);
                memDC.SelectObject(pOld);
                pDC->SelectObject(m_Pen2);
                pDC->MoveTo(rect.right-1,0);
                pDC->LineTo(0,0);
                pDC->LineTo(0,rect.bottom-1);
                pDC->SelectObject(m_Pen1);
                pDC->LineTo(rect.right-1,rect.bottom-1);
                pDC->LineTo(rect.right-1,0);
        }
};
void CMyButton::SetBitmap(CBitmap *pBitmap,CBitmap *pBitmapSel)
{
        m_pBitmap = pBitmap;
        if (pBitmapSel==NULL)
                m_pBitmapSel = pBitmap;
        Invalidate();
};



/////////////////////////////////////////////////////////////////////////////
// CMineDlg dialog

CMineDlg::CMineDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CMineDlg::IDD, pParent)
{
        //{{AFX_DATA_INIT(CMineDlg)
                // NOTE: the ClassWizard will add member initialization here
        //}}AFX_DATA_INIT
        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}


void CMineDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CMineDlg)
        DDX_Control(pDX, IDC_FACE, m_Face);
        //}}AFX_DATA_MAP
}

void CMineDlg::OnCommandExit()
{
        EndDialog(1);
}
void CMineDlg::OnCommandAbout()
{
        CAboutDlg ABOUT;
        ABOUT.DoModal();
}
void CMineDlg::OnCommandRestart()
{
        bFail = FALSE;
        if(bStart)
                KillTimer(1);
        bStart = FALSE;
        LandMine.Reset(LandMine.GetRow(),LandMine.GetCol(),LandMine.GetMineNum());
        TimeCount.SetNumber(0);
        MineCount.SetNumber(LandMine.GetMineNum());
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}
void CMineDlg::OnCommandPrimary()
{
        LandMine.Reset(8,8,10);
        m_DlgReSize=TRUE;
        if(bStart)
                KillTimer(1);
        bFail = FALSE;
        bBothDown = FALSE;
        bStart = FALSE;
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}
void CMineDlg::OnCommandMiddle()
{
        LandMine.Reset(16,16,40);
        m_DlgReSize=TRUE;
        if(bStart)
                KillTimer(1);
        bFail = FALSE;
        bBothDown = FALSE;
        bStart = FALSE;
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}
void CMineDlg::OnCommandAdvanced()
{
        LandMine.Reset(16,30,100);
        m_DlgReSize=TRUE;
        if(bStart)
                KillTimer(1);
        bFail = FALSE;
        bBothDown = FALSE;
        bStart = FALSE;
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}
void CMineDlg::OnCommandCustom()
{
        m_DlgReSize=TRUE;
        if(bStart)
                KillTimer(1);
        CCustom CustomDlg;
        CustomDlg.m_Height = LandMine.GetRow();
        CustomDlg.m_Width = LandMine.GetCol();
        CustomDlg.m_MineNum = LandMine.GetMineNum();
        CustomDlg.DoModal();
        LandMine.Reset(CustomDlg.m_Height,CustomDlg.m_Width,CustomDlg.m_MineNum);
        bFail = FALSE;
        bBothDown = FALSE;
        bStart = FALSE;
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}

afx_msg void CMineDlg::OnUpdatePrimary(CCmdUI* pCmdUI)
{
        ::CheckMenuItem( m_hMainMenu,IDM_ADVANCED,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_CUSTOM,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_PRIMARY,MF_CHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_MIDDLE,MF_UNCHECKED);

};

afx_msg void CMineDlg::OnUpdateMiddle(CCmdUI* pCmdUI)
{
        ::CheckMenuItem( m_hMainMenu,IDM_ADVANCED,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_CUSTOM,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_PRIMARY,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_MIDDLE,MF_CHECKED);

};
afx_msg void CMineDlg::OnUpdateAdvanced(CCmdUI* pCmdUI)
{
        ::CheckMenuItem( m_hMainMenu,IDM_ADVANCED,MF_CHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_CUSTOM,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_PRIMARY,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_MIDDLE,MF_UNCHECKED);
};
afx_msg void CMineDlg::OnUpdateCustom(CCmdUI* pCmdUI)
{
        ::CheckMenuItem( m_hMainMenu,IDM_ADVANCED,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_CUSTOM,MF_CHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_PRIMARY,MF_UNCHECKED);
        ::CheckMenuItem( m_hMainMenu,IDM_MIDDLE,MF_UNCHECKED);
};

BEGIN_MESSAGE_MAP(CMineDlg, CDialog)
        //{{AFX_MSG_MAP(CMineDlg)
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_WM_TIMER()
        ON_BN_CLICKED(IDC_FACE, OnFace)
        ON_WM_LBUTTONDOWN()
        ON_WM_MOUSEMOVE()
        ON_WM_LBUTTONUP()
        ON_WM_RBUTTONDOWN()
        ON_WM_RBUTTONDBLCLK()
        ON_COMMAND(IDM_RESTART,OnCommandRestart)
        ON_COMMAND(IDM_EXIT,OnCommandExit)
        ON_COMMAND(IDM_ABOUT,OnCommandAbout)
        ON_COMMAND(IDM_PRIMARY,OnCommandPrimary)
        ON_UPDATE_COMMAND_UI(IDM_PRIMARY,OnUpdatePrimary)
        ON_COMMAND(IDM_MIDDLE,OnCommandMiddle)
        ON_UPDATE_COMMAND_UI(IDM_MIDDLE,OnUpdateMiddle)
        ON_COMMAND(IDM_ADVANCED,OnCommandAdvanced)
        ON_UPDATE_COMMAND_UI(IDM_ADVANCED,OnUpdateAdvanced)
        ON_COMMAND(IDM_CUSTOM,OnCommandCustom)
        ON_UPDATE_COMMAND_UI(IDM_CUSTOM,OnUpdateCustom)
        ON_WM_RBUTTONUP()
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMineDlg message handlers

BOOL CMineDlg::OnInitDialog()
{
        CDialog::OnInitDialog();
        CMenu MainMenu;
        if(!MainMenu.LoadMenu(IDR_MAINFRAME))
        {
                AfxMessageBox("Can't load main menu!",MB_OK|MB_ICONEXCLAMATION);
                return FALSE;
        }
        SetMenu(&MainMenu);
        m_hMainMenu=MainMenu.Detach();

        // Set the icon for this dialog.  The framework does this automatically
        //  when the application's main window is not a dialog
        SetIcon(m_hIcon, TRUE);                        // Set big icon
        SetIcon(m_hIcon, FALSE);                // Set small icon
       
        // TODO: Add extra initialization here
        int nRow=10, nCol=10, nMineNum=10;
        bStart = FALSE;
        bFail = FALSE;
        bBothDown = FALSE;
        LandMine.Create(nRow,nCol,nMineNum,12,53,this);
        m_DlgReSize = TRUE;
       
        if(m_FaceNormal.LoadBitmap(IDB_NORMAL) &&
                m_FaceCry.LoadBitmap(IDB_CRY) &&
                m_FaceSad.LoadBitmap(IDB_SAD) &&
                m_FaceHappy.LoadBitmap(IDB_HAPPY))
        {
                m_Face.SetBitmap(&m_FaceNormal);
                return TRUE;  // return TRUE  unless you set the focus to a control
        }
        else
        {
                AfxMessageBox("Can't load Bitmap!",MB_OK|MB_ICONEXCLAMATION);
                return FALSE;
        }
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMineDlg::OnPaint()
{
        if (IsIconic())
        {
                CPaintDC dc(this); // device context for painting

                SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

                // Center icon in client rectangle
                int cxIcon = GetSystemMetrics(SM_CXICON);
                int cyIcon = GetSystemMetrics(SM_CYICON);
                CRect rect;
                GetClientRect(&rect);
                int x = (rect.Width() - cxIcon + 1) / 2;
                int y = (rect.Height() - cyIcon + 1) / 2;

                // Draw the icon
                dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
                CDialog::OnPaint();
        }
        if(m_DlgReSize)
        {
                int nRow,nCol,nMineNum;
                nRow = LandMine.GetRow();
                nCol = LandMine.GetCol();
                nMineNum = LandMine.GetMineNum();
                RECT DlgRect;
                GetWindowRect(&DlgRect);
                SetWindowPos(&wndTop,DlgRect.left,DlgRect.top,
                        16*nCol+30, 109+16*nRow, SWP_NOMOVE);
                MineCount.Create(this,17,15,nMineNum,3);
                GetClientRect(&DlgRect);
                TimeCount.Create(this,DlgRect.right-58,15,0,3);
                m_Face.SetWindowPos(&wndTop,(DlgRect.right-27)/2,14,
                27,27,SWP_FRAMECHANGED);
                m_DlgReSize = FALSE;
        }
        RECT ClientRect;
        GetClientRect(&ClientRect);
        CClientDC ClientDC(this);

        //drawing the whole area
        ClientDC.SelectObject(Pen2);
        ClientDC.MoveTo(ClientRect.right-3,1);
        ClientDC.LineTo(1,1);
        ClientDC.LineTo(1,ClientRect.bottom-1);
       
        ClientDC.SelectObject(Pen1);
        ClientDC.MoveTo(ClientRect.right-2,1);
        ClientDC.LineTo(ClientRect.right-2,ClientRect.bottom-1);
        ClientDC.LineTo(1,ClientRect.bottom-1);
        ClientDC.MoveTo(ClientRect.right-3,2);
        ClientDC.LineTo(ClientRect.right-3,ClientRect.bottom-2);
        ClientDC.LineTo(2,ClientRect.bottom-2);

        //drwaing status area
        ClientDC.MoveTo(ClientRect.right-10,9);
        ClientDC.LineTo(10,9);
        ClientDC.LineTo(10,44);
        ClientDC.MoveTo(ClientRect.right-11,10);
        ClientDC.LineTo(11,10);
        ClientDC.LineTo(11,43);
       
        ClientDC.SelectObject(Pen3);
        ClientDC.LineTo(ClientRect.right-11,43);
        ClientDC.LineTo(ClientRect.right-11,10);
        ClientDC.MoveTo(10,44);
        ClientDC.LineTo(ClientRect.right-10,44);
        ClientDC.LineTo(ClientRect.right-10,9);
       
        //drawing the mine area
        ClientDC.MoveTo(ClientRect.right-10,51);
        ClientDC.LineTo(ClientRect.right-10,ClientRect.bottom-9);
        ClientDC.LineTo(10,ClientRect.bottom-9);
        ClientDC.MoveTo(ClientRect.right-11,52);
        ClientDC.LineTo(ClientRect.right-11,ClientRect.bottom-10);
        ClientDC.LineTo(11,ClientRect.bottom-10);
        ClientDC.SelectObject(Pen1);
        ClientDC.MoveTo(ClientRect.right-10,51);
        ClientDC.LineTo(10,51);
        ClientDC.LineTo(10,ClientRect.bottom-9);
        ClientDC.MoveTo(ClientRect.right-11,52);
        ClientDC.LineTo(11,52);
        ClientDC.LineTo(11,ClientRect.bottom-10);


        MineCount.ReShow();
        TimeCount.ReShow();
        LandMine.ReDraw(bFail);
       
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMineDlg::OnQueryDragIcon()
{
        return (HCURSOR) m_hIcon;
}

void CMineDlg::OnTimer(UINT nIDEvent)
{
        // TODO: Add your message handler code here and/or call default
        if (nIDEvent==1)
                TimeCount.Increase();
        CDialog::OnTimer(nIDEvent);
}



void CMineDlg::OnFace()
{
        // TODO: Add your control notification handler code here
        bFail = FALSE;
        if(bStart)
                KillTimer(1);
        bStart = FALSE;
        LandMine.Reset(LandMine.GetRow(),LandMine.GetCol(),LandMine.GetMineNum());
        TimeCount.SetNumber(0);
        MineCount.SetNumber(LandMine.GetMineNum());
        m_Face.SetBitmap(&m_FaceNormal);
        RedrawWindow();
}

void CMineDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        if(bFail==0)
        {
                m_Face.SetBitmap(&m_FaceCry);
                if(nFlags&MK_RBUTTON)
                {       
                        bBothDown = 2;
                        LandMine.BothButtonDown(point);
                }
                else
                {
                        bBothDown = FALSE;
                        LandMine.LButtonDown(point);
                }
        }
        CDialog::OnLButtonDown(nFlags, point);
}

void CMineDlg::OnMouseMove(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        if(bFail==0)
        {
                if(nFlags&MK_LBUTTON)
                        if(nFlags&MK_RBUTTON)
                                LandMine.MouseMove(point,2);    // both key down
                        else
                                LandMine.MouseMove(point,0);    //left key down
                        else
                                LandMine.MouseMove(point,1);                //right key down
        }
        CDialog::OnMouseMove(nFlags, point);
}

void CMineDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        if(bFail==0)
        {
                m_Face.SetBitmap(&m_FaceNormal);
                if(bBothDown)
                {
                        bBothDown--;
                        int nStatus = LandMine.BothButtonUp(point);
                        if(nStatus==-1)
                        {
                                bFail = TRUE;
                                KillTimer(1);
                                m_Face.SetBitmap(&m_FaceSad);
                        }
                        else
                                if(LandMine.IsSuccess())
                                {       
                                        KillTimer(1);
                                        m_Face.SetBitmap(&m_FaceHappy);
                                        AfxMessageBox("祝贺您!挖雷任务胜利完成!",MB_OK);
                                        bFail = -1;
                                }
                }
                else
                {
                        int nStatus = LandMine.LButtonUp(point);
                        if(nStatus==-1)
                        {
                                bFail = TRUE;
                                KillTimer(1);
                                m_Face.SetBitmap(&m_FaceSad);
                        }
                        else
                                if(LandMine.IsSuccess())
                                {       
                                        KillTimer(1);
                                        m_Face.SetBitmap(&m_FaceHappy);
                                        AfxMessageBox("祝贺您!挖雷任务胜利完成!",MB_OK);
                                        bFail = -1;
                                }
                }
                if(!bStart)
                {
                        bStart = TRUE;
                        SetTimer(1, 1000, NULL);
                }
        }
        CDialog::OnLButtonUp(nFlags, point);
}

void CMineDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        if(bFail==0)
        {
                if(nFlags&MK_LBUTTON)
                {        bBothDown = 2;
                        LandMine.BothButtonDown(point);
                }
                else
                {
                        bBothDown = FALSE;
                        switch(LandMine.RButtonDown(point))
                        {
                        case 0:
                                break;
                        case 1:
                                MineCount.Increase();
                                break;
                        case -1:
                                MineCount.Decrease();
                                break;
                        };
                }
                if(LandMine.IsSuccess())
                {       
                        KillTimer(1);
                        m_Face.SetBitmap(&m_FaceHappy);
                        AfxMessageBox("祝贺您!挖雷任务胜利完成!",MB_OK);
                        bFail = -1;
                }

        }
        CDialog::OnRButtonDown(nFlags, point);
}


void CMineDlg::OnRButtonDblClk(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        OnRButtonDown(nFlags,point);
        CDialog::OnRButtonDblClk(nFlags, point);
}


void CMineDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
        // TODO: Add your message handler code here and/or call default
        if(bFail==0)
        {
                if(bBothDown)
                {
                        bBothDown--;
                        if(LandMine.BothButtonUp(point)==-1)
                                bFail = TRUE;
                        else
                                if(LandMine.IsSuccess())
                                {       
                                        KillTimer(1);
                                        AfxMessageBox("祝贺您!挖雷任务胜利完成!",MB_OK);
                                        bFail = -1;
                                }
                }
        }
       
        CDialog::OnRButtonUp(nFlags, point);
}
/////////////////////////////////////////////////////////////////////////////
// CCustom dialog


CCustom::CCustom(CWnd* pParent /*=NULL*/)
        : CDialog(CCustom::IDD, pParent)
{
        //{{AFX_DATA_INIT(CCustom)

        //}}AFX_DATA_INIT
}


void CCustom::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CCustom)
        DDX_Text(pDX, IDC_WIDTH, m_Width);
        DDV_MinMaxInt(pDX, m_Width, 1, 30);
        DDX_Text(pDX, IDC_HEIGHT, m_Height);
        DDV_MinMaxInt(pDX, m_Height, 1, 30);
        DDX_Text(pDX, IDC_MINENUM, m_MineNum);
        DDV_MinMaxInt(pDX, m_MineNum, 1, m_Height*m_Width-1);
        //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCustom, CDialog)
        //{{AFX_MSG_MAP(CCustom)
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCustom message handlers

BOOL CCustom::OnInitDialog()
{
        CDialog::OnInitDialog();
       
        // TODO: Add extra initialization here
       
        ::SendMessage(::GetDlgItem(m_hWnd,IDC_HEIGHT),
                EM_LIMITTEXT,
                (WPARAM)2,
            (LPARAM)0);
        ::SendMessage(::GetDlgItem(m_hWnd,IDC_WIDTH),
                EM_LIMITTEXT,
                (WPARAM)2,
            (LPARAM)0);
        ::SendMessage(::GetDlgItem(m_hWnd,IDC_MINENUM),
                EM_LIMITTEXT,
                (WPARAM)3,
            (LPARAM)0);

        return TRUE;  // return TRUE unless you set the focus to a control
                      // EXCEPTION: OCX Property Pages should return FALSE
}

TOP

引用:
原帖由 DigMoonX 于 2007-4-3 23:56 发表



我的开发费用。。。。。。。 精神损失费以及财产损失费!!!
人家要的是底层,
我这个还是不合格.

TOP

引用:
原帖由 ffcactus 于 2007-4-3 23:56 发表


大傻可以看出你这不是用汇编去调用功能嘛.
原来你看出来了...

TOP

引用:
原帖由 DigMoonX 于 2007-4-3 23:58 发表



你编译一下,不要运行,可以提取机器码。
我说了,
给他个高级点的.
还有,
人家连"调用"都搞不明白.
拿这东西去糊弄他,
不厚道...那个...不厚道啊...

TOP

祝大家成功,
我等着凌晨看球.
可惜没索饭陪俺聊天

TOP

引用:
原帖由 ffcactus 于 2007-4-4 00:06 发表

我便贴了 ...
     领导《Motorstorm》开发的Scott Kirkland说,Motostorm中有众多的环境互动和物体的相互碰撞,各种混乱破碎的场面,这都需要很多物理处理能力,感谢Havok提供了这一出色产品,我们期待和Havok团队合作
拜托,别提MOTORSTORM了,
你玩过吗?
此时我正在1080P motor storm

TOP

引用:
原帖由 ffcactus 于 2007-4-4 00:16 发表


你此时正在玩"调用"吧.
呵呵,
没见过人指着自个头上的瘌痢,
拖着别人硬要告诉大家这玩意儿叫瘌痢的.

你别恶心了:D

TOP

引用:
原帖由 ffcactus 于 2007-4-4 00:06 发表

关于SPE活用,我便贴了 ...
     领导《Motorstorm》开发的Scott Kirkland说,Motostorm中有众多的环境互动和物体的相互碰撞,各种混乱破碎的场面,这都需要很多物理处理能力,感谢Havok提供了这一出色产品,我们期待和Havok团队合作
嘿嘿,
真的需要很多物理处理能力吗?
SPE就是这样吗?
现拍的,1080P: 草从车中间穿过,


还有车从人丛中穿过,人照样站着傻笑鼓掌,嘛事儿也没有的图没抓到.

比较一下,还是家里的灯比较好看些...:D


SPE难道只是这样?
拜托,别这么折磨自己!!

TOP

发新话题
     
官方公众号及微博