/*==================================================================================
l_directdraw.cpp
CDirectDrawクラスの基本的な部分。
主に初期化や破棄等の部分を記述
MFCアプリケーションで使用する場合は「プリコンパイルヘッダーを使用しない」にする
====================================================================================*/
#ifndef GCD_EDITER
#include "stdafx.h" //本体の場合
#include "jpeglib.h"
#include "task_loading.h"
#else
enum NowLoading_IconItem {
NowLoading_DLL,
NowLoading_Image,
NowLoading_GCD,
};
#endif
#include <setjmp.h>
#include "png.h"
#include "dx_draw.h"
#define HALF_HEIGHT (g_DISPLAYHEIGHT * 0.5f)
#define HALF_HEIGHT2 (240.0f)
// もうちょっと早く対応して欲しかった…
#if _MSC_VER < 1910
#pragma push_macro("constexpr")
#define constexpr const
#define GSL_USE_STATIC_CONSTEXPR_WORKAROUND
#endif // _MSC_VER < 1910
/*---------------------------------------------------------------------------------
エディターの場合の設定
-----------------------------------------------------------------------------------*/
#ifdef GCD_EDITER //■エディタの場合-------------------------------------------------
#ifndef RELEASE
#define RELEASE(a) \
if (a != NULL) { \
a->Release(); \
a = NULL; \
}
#endif
extern int g_DISPLAYWIDTH;
extern int g_DISPLAYHEIGHT;
#define ASPECTRATIO ((float)g_DISPLAYWIDTH / (float)g_DISPLAYHEIGHT)
class CDummyCfg {
public:
BOOL NoAlphaTest() { return FALSE; }
D3DFORMAT TexFormat() { return D3DFMT_A1R5G5B5; }
BOOL IsHalfMode() { return FALSE; }
D3DDEVTYPE DeviceType() { return D3DDEVTYPE_HAL; }
};
CDummyCfg g_config;
#define ODS(a) OutputDebugString(a)
#else //■Goluah本体の場合-----------------------------------------------------------
#include "define_const.h"
#include "define_macro.h"
#include "global.h" //configが必要
#ifdef _DEBUG
#define ODS(a) gbl.ods2(a)
#else
#define ODS(a) ((void)0)
#endif
#endif
/*!
* 構築。
* パラメータのリセットを行うのみ
*/
CDirectDraw::CDirectDraw() {
//パラメータリセット
state = CDDSTATE_NOINITIALIZE;
dd = NULL;
d3ddev = NULL;
// pSprite = NULL;
pMyVertex = NULL;
ZeroMemory(ms, sizeof(MYSURFACE) * MAXNUMGOLUAHTEXTURES);
clearbgcolor = 0;
ZeroMemory(lpFont, sizeof(LPD3DXFONT) * 3);
}
/*!
* 初期化
* Direct3Dの初期化を行う。
* フルスクリーンモードの場合、この時点でフルスクリーン状態になる
*
* @param hwnd アプリケーションのメインウインドウハンドル
* @param win TRUE:ウインドウモード, FALSE:フルスクリーン
* @return TRUE:成功, FALSE:失敗
*/
BOOL CDirectDraw::Initialize(HWND hwnd, BOOL win) {
Destroy();
m_is_win = win;
stencil_enable = false;
if (!InitDirectDraw(hwnd, win)) {
Destroy();
return FALSE;
}
//最大テクスチャサイズ取得
D3DCAPS8 cap8;
if (dd->GetDeviceCaps(D3DADAPTER_DEFAULT, devtypenow, &cap8) != D3D_OK) {
Destroy();
return FALSE;
}
maxtexturewidth = cap8.MaxTextureWidth;
maxtextureheight = cap8.MaxTextureHeight;
// ステート初期化
InitStates();
// x,y平面のデータセット
d3dxplane_x.a = -1.0f; // x平面 (x=0)
d3dxplane_x.b = 0;
d3dxplane_x.c = 0;
d3dxplane_x.d = 0;
d3dxplane_y.a = 0; // y平面 (y=0)
d3dxplane_y.b = -1.0f;
d3dxplane_y.c = 0;
d3dxplane_y.d = 0;
//テクスチャに用いるフォーマット
if (devtypenow == D3DDEVTYPE_HAL)
texformat = g_config.TexFormat();
else
texformat = d3dpp.BackBufferFormat;
//フォントの作成
lpFont[0] = CreateMyFont(8);
lpFont[1] = CreateMyFont(16);
lpFont[2] = CreateMyFont(22);
lpFont[3] = CreateMyFont(32);
D3DXMATRIXA16 mat;
D3DXMatrixIdentity(&mat);
SetParentMatrix(mat, TRUE);
constexpr float EPS = 0.05f;
center_x = 0;
camera_x = 0;
camera_y = 0;
camera_z = -3.0f + EPS;
camera_zurax = 0;
camera_zuray = 0;
ResetTransformMatrix();
// スプライト製造
/*if ( FAILED(D3DXCreateSprite(d3ddev, &pSprite)) )
{
Destroy();
return FALSE;
}*/
// 描画用の頂点バッファ
if (FAILED(d3ddev->CreateVertexBuffer(sizeof(MYVERTEX3D) * 4, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY,
FVF_3DVERTEX, D3DPOOL_DEFAULT, &pMyVertex))) {
Destroy();
return FALSE;
}
// ガンマランプを設定してみる
/* D3DGAMMARAMP gr;
for (int i = 0; i < 256; i++)
{
double gout = pow(i / 255.0, 1.0 / 2.2);
gr.red[i] = gr.green[i] = gr.blue[i] = (WORD)(gout * 0xFFFF);
}
d3ddev->SetGammaRamp(D3DSGR_CALIBRATE, &gr);
*/
return TRUE;
}
void CDirectDraw::InitStates() {
d3ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); //カリングなし
d3ddev->SetRenderState(D3DRS_LIGHTING, FALSE); //ライティング無し
if (devtypenow != D3DDEVTYPE_HAL) {
d3ddev->SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT); //点だけ
d3ddev->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT); //フラットシェーディング
} else {
//アルファブレンディング有効
d3ddev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
d3ddev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
d3ddev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
//これをやらないとディフューズ色が有効にならない
d3ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
d3ddev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
d3ddev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
//アルファテスト
if (!g_config.NoAlphaTest()) {
if (d3ddev->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE) == D3D_OK) {
d3ddev->SetRenderState(D3DRS_ALPHAREF, 0x02);
d3ddev->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
}
}
//ポイントスプライト
d3ddev->SetRenderState(D3DRS_POINTSPRITEENABLE, TRUE);
//マルチ
// d3ddev->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, TRUE);
// ステンシル
if (stencil_enable) {
d3ddev->SetRenderState(D3DRS_STENCILENABLE, TRUE);
d3ddev->SetRenderState(D3DRS_STENCILFUNC, D3DCMP_ALWAYS);
}
}
d3ddev->SetVertexShader(FVF_3DVERTEX); //とりあえず設定しとく
}
/*!
* Direct3D初期化部分
*
* Initializeのうち、Direct3D、Direct3DDeviceの生成部
*
* @param hwnd アプリケーションのメインウインドウハンドル
* @param win TRUE:ウインドウモード, FALSE:フルスクリーン
* @return TRUE:成功, FALSE:失敗
*/
BOOL CDirectDraw::InitDirectDraw(HWND hwnd, BOOL win) {
// Direct3D オブジェクトを作成
dd = Direct3DCreate8(D3D_SDK_VERSION);
if (NULL == dd) {
MessageBox(hwnd, "Direct3DCreate8に失敗\nDirectXのバージョンが古いと思われ", "エラー",
MB_OK | MB_ICONSTOP);
return (FALSE);
}
// Direct3D 初期化パラメータの設定
ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// デバイスタイプ所得
devtypenow = g_config.DeviceType();
//ウインドウモードの場合の初期化
if (win) {
// 現在の画面モードを取得
D3DDISPLAYMODE d3ddm;
if (dd->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm) != D3D_OK) {
MessageBox(hwnd, "GetAdapterDisplayModeに失敗", "エラー", MB_OK | MB_ICONSTOP);
RELEASE(dd);
return (FALSE);
没有合适的资源?快使用搜索试试~ 我知道了~
哇! ソーコード一式.zip
共689个文件
h:164个
cpp:150个
html:125个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 36 浏览量
2024-11-27
19:11:01
上传
评论
收藏 3.43MB ZIP 举报
温馨提示
akiさん制作の2ちゃんねる格闘ゲーム「Goluah!!」の独立拡张版です。ソーコードの设置き场所として良さそうなので、ここを间借りしてキャラ・本体まとめて置くことにいたしました。内部の构成について、详细しくはdevkit100/readme.txt(Shift_JIS形式です)をお読みください。ビルドにはVisualC++とDirectX9 SDK(2007年4月以前の古いもの)が必要です。VCは2010(以前は2003)の专业版を使っていますが、うまくいけばExpress版でも动くようになるのではと思います。(本体exeなら、MFCを使わない设定にするなど。)私としては、これ以上手を加えることはほとんど无いと思います。开発プロジェクトとしての运営も行わないので、手を加えたい方はfo rkして胜手にどんどんいじっちゃってください。(Gitが必要です)プルrikエsuto大歓迎画像fuァイルなど、実行环境は别个にダウンロードする必要がありますので、ホームページURLをたどってuririsu版を入手してください。附记诸事によりソーsuを纷失してしまったの
资源推荐
资源详情
资源评论
收起资源包目录
哇! ソーコード一式.zip (689个子文件)
僗僩乕儕乕僗僋儕僾僩1.1捛壛巇條 2KB
gcd_tool03.aps 59KB
Script1.aps 24KB
Script1.aps 20KB
task_simpleoptsel.cpp.b 7KB
task_simpleoptsel.h.b 2KB
dx_draw.cpp 130KB
gobjbase.cpp 125KB
gobjbase.cpp 125KB
gobjbase.cpp 124KB
task_battle.cpp 107KB
task_battle_net.cpp 77KB
gauge.cpp 65KB
task_select.cpp 60KB
gobjbase.cpp 59KB
battleTaskBase.cpp 49KB
object.cpp 49KB
el_character.cpp 44KB
character.cpp 44KB
bullets.cpp 43KB
gcdhandler.cpp 42KB
task_select_story.cpp 41KB
system.cpp 38KB
gauge_dll.cpp 37KB
character.cpp 34KB
character.cpp 33KB
global.cpp 32KB
character.cpp 32KB
character.cpp 30KB
character.cpp 29KB
charlist.cpp 27KB
dx_input.cpp 27KB
efct_sys.cpp 27KB
efct_sys.cpp 27KB
stage.cpp 26KB
l_directdraw3.cpp 25KB
aki3d_internal.cpp 24KB
character.cpp 23KB
mimikaki.cpp 22KB
task_storymode.cpp 22KB
export.cpp 22KB
l_directdraw2.cpp 21KB
script_story.cpp 20KB
main.cpp 19KB
el_bullets.cpp 19KB
action_hissatu.cpp 18KB
task_demo.cpp 18KB
stage.cpp 18KB
task_items.cpp 18KB
action_hissatu.cpp 17KB
adaptor.cpp 17KB
efct_other.cpp 16KB
efct_other.cpp 16KB
action_hissatu.cpp 15KB
dx_sound.cpp 15KB
action_normal.cpp 15KB
bullets.cpp 14KB
action_attack.cpp 13KB
action_attack.cpp 13KB
task_title.cpp 13KB
action_attack.cpp 12KB
stage.cpp 11KB
function_gcd.cpp 11KB
function_gcd.cpp 11KB
Child.cpp 11KB
character.cpp 11KB
task.cpp 11KB
character.cpp 11KB
gcd_tool03.cpp 10KB
action_hissatu.cpp 10KB
action_attack.cpp 10KB
task_optselecter.cpp 10KB
action_hissatu.cpp 9KB
character.cpp 9KB
bullets.cpp 9KB
aki3d.cpp 9KB
action_attack.cpp 9KB
config.cpp 9KB
task_pause.cpp 9KB
action_normal.cpp 9KB
action_normal.cpp 9KB
bullets.cpp 9KB
child.cpp 9KB
Main.cpp 9KB
storylist.cpp 9KB
battle_load_info.cpp 9KB
bullets.cpp 8KB
el_action_hissatu.cpp 8KB
adapt_main.cpp 8KB
stage.cpp 8KB
action2.cpp 8KB
action_attack.cpp 8KB
l_directdraw.cpp 8KB
efctlist.cpp 8KB
efctlist.cpp 8KB
el_action_attack.cpp 8KB
script_loader.cpp 8KB
action_attack.cpp 8KB
limcut.cpp 8KB
gcd_tool03Dlg.cpp 8KB
共 689 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
徐浪老师
- 粉丝: 8188
- 资源: 9015
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功