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

📄 createcenterforce.cpp

📁 这是一款游戏中的粒子系统
💻 CPP
字号:
// CreateCenterForce.cpp : 实现文件
//

#include "stdafx.h"
#include "PerfectParticle.h"
#include "CreateCenterForce.h"
#include ".\createcenterforce.h"

#include "PerfectParticleDlg.h"

// CCreateCenterForce 对话框

IMPLEMENT_DYNAMIC(CCreateCenterForce, CDialog)
CCreateCenterForce::CCreateCenterForce(CWnd* pParent /*=NULL*/)
	: CDialog(CCreateCenterForce::IDD, pParent)
{
}

CCreateCenterForce::~CCreateCenterForce()
{
}

void CCreateCenterForce::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST1, m_list);
}


BEGIN_MESSAGE_MAP(CCreateCenterForce, CDialog)
	ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3)
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
END_MESSAGE_MAP()


// CCreateCenterForce 消息处理程序

BOOL CCreateCenterForce::OnInitDialog()
{
	CDialog::OnInitDialog();
	HICON icon=::LoadIcon(theApp.m_hInstance,MAKEINTRESOURCE(IDR_MAINFRAME));
	SetIcon(icon,TRUE);
	SetIcon(icon,FALSE);
	CRect rect;
	int num=0;
	m_list.GetWindowRect (rect);
	int width=rect.right -rect.left ;
	m_list.SetBkColor(RGB(177,151,240));
	m_list.SetTextColor (RGB(255,0,0));
	m_list.SetTextBkColor (RGB(177,151,240));
	m_list.SetExtendedStyle (LVS_EX_FULLROWSELECT| LVS_REPORT|LVS_EX_GRIDLINES );

	m_list.InsertColumn(num,"序号");
	num++;
	m_list.InsertColumn(num,"外力大小");
	num++;
	m_list.InsertColumn(num,"衰减速度");
	num++;
	m_list.InsertColumn(num,"开始半径");
	num++;
	m_list.InsertColumn(num,"结束半径");

	for(int i=0;i<=num;i++)
		m_list.SetColumnWidth (i,width/(num+1));
	m_list.DeleteAllItems ();

	ShowData();
	return TRUE;  
}

void CCreateCenterForce::ShowData(){
	CString string;
	POSITION pos=m_dlg->m_forceParam.GetHeadPosition();
	for(int i=0;i<m_dlg->m_forceParam.GetCount();i++){
		CPerfectParticleDlg::CenterForce data=(CPerfectParticleDlg::CenterForce)(m_dlg->m_forceParam.GetNext(pos));
		string.Format("影响子%d",i+1);
		m_list.InsertItem(i,string);

		string.Format("%f",data.force);
		m_list.SetItemText(i,1,string);

		string.Format("%f",data.nr);
		m_list.SetItemText(i,2,string);

		string.Format("%f",data.fr);
		m_list.SetItemText(i,3,string);

		string.Format("%f",data.cut);
		m_list.SetItemText(i,4,string);
	}
}

INT_PTR CCreateCenterForce::DoModal(CPerfectParticleDlg *dlg)
{
	m_dlg=dlg;
	return CDialog::DoModal();
}

void CCreateCenterForce::OnBnClickedButton1()
{
	CCenterData dlg;
	dlg.DoModal();
	if(dlg.dataSucc){
		CPerfectParticleDlg::CenterForce data;
		data.force=dlg.force;
		data.nr=dlg.nr;
		data.fr=dlg.fr;
		data.cut=dlg.cut;
		m_dlg->m_forceParam.AddTail(data);
		m_list.DeleteAllItems ();
		ShowData();
	}
}

void CCreateCenterForce::OnBnClickedButton2()
{
	int index=m_list.GetSelectionMark ();
	if(index>=0){
		m_dlg->m_forceParam.RemoveAt(m_dlg->m_forceParam.FindIndex(index));
		m_list.DeleteAllItems();
		ShowData();
	}
	else{
		MessageBox("请选择删除项","错误");
	}
}

void CCreateCenterForce::OnBnClickedButton3()
{
	OnCancel();
}

⌨️ 快捷键说明

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