トップページgamedev
1001コメント309KB

DXライブラリ 総合スレッド その12

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2012/02/23(木) 21:35:32.53ID:Si08WDH/
Cを習得した程度のスキルでも、
ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
DXライブラリ 総合スレッド その10
http://hibari.2ch.net/test/read.cgi/gamedev/1313655495/
DXライブラリ 総合スレッド その11
http://toro.2ch.net/test/read.cgi/gamedev/1322844235/
0002名前は開発中のものです。2012/02/23(木) 21:38:30.82ID:NAt0MKlN
>>1
0003名前は開発中のものです。2012/02/23(木) 21:39:27.00ID:Si08WDH/
立てました
そろそろ過去スレを>>2に持ってこないと改行制限で辛そう
0004名前は開発中のものです。2012/02/23(木) 21:45:57.64ID:aVCkizLT
斜面こわいよー
0005名前は開発中のものです。2012/02/23(木) 21:50:15.75ID:GfO9a+tk
次スレの時期だというのに無駄に加速しやがって・・・
>>1
0006名前は開発中のものです。2012/02/23(木) 21:52:32.12ID:Si08WDH/
まあ1000と気付かずに書き込んじゃったのが俺なので
0007名前は開発中のものです。2012/02/23(木) 22:25:46.56ID:rTB5y/aj
前スレの>>998なんだけど何があほくさかったのか後学のために教えてくれないかな。
こんなこと混ぜ返すのもなんだけど、個人的にかなり大事なことだと思ってるんで。
0008名前は開発中のものです。2012/02/23(木) 22:30:39.00ID:aVCkizLT
物理法則がゲームをつまらなくした
アニメ的なデフォルメこそゲームに必要な要素だったのだ
0009名前は開発中のものです。2012/02/23(木) 22:31:55.46ID:Si08WDH/
前スレでID:00uFnE+fが言ってるのは「現実と同じ重力バランスにすれば強い重力によって坂でも問題は起こらない」ということ

坂で浮かないようにする方法が重力を強くするだけでは、
ゲーム特有のふわりとしたジャンプは実装できなくなってしまう

とかそういうこと
0010名前は開発中のものです。2012/02/23(木) 22:44:21.41ID:rTB5y/aj
ああ、そうだったのかなんか勘違いしてたよ
0011名前は開発中のものです。2012/02/24(金) 00:12:24.79ID:TJKzJquS
//#include <windows.h>
#include "dxlib.h"

#define CX 1024
#define CY 768
#define BPP 16
#define WHITE GetColor( 255, 255, 255 )
#define GRAY(a) GetColor( a, a, a )

#define ACCELL 7.5
#define GRAVITY 15.0
#define CSLOPE 7.5
#define RESIST 2.5
#define JUMP 300.0
#define FERROR 2.5
#define PSIZE 8

double GetSlope( VECTOR* fdata, int numdata, int x );
int GetFloor( VECTOR* fdata, int numdata, int x );

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
SetGraphMode( CX, CY, BPP );
ChangeWindowMode( TRUE );
if( DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
0012名前は開発中のものです。2012/02/24(金) 00:14:19.57ID:TJKzJquS
VECTOR floors[] = { { 0, 64, 0 }, { 100, 64, 0 }, { 200, 96, 0 }, { 250, 104, 0 },
{ 500, 32, 0 }, { 800, 32, 0 }, { 1000, 256, 0 }, { 1500, 128, 0 }, { 2000, 64, 0 },
{ 2500, 96, 0 }, { 3000, 128, 0 }, { 3200, 160, 0 }, { 3400, 10, 0 }, { 5000, 64, 0 } };
int elements = sizeof(floors) / sizeof(VECTOR);
VECTOR player = { 50, 100, 0 };
VECTOR vec = { 0, 0 };
int cam_x;
double floor_y;
int pre_time, cur_time;
double past_time;
int bOnTheFloor = FALSE;
int bDrawAll = TRUE;
int bPreDKey = FALSE;
int bPreSPKey = FALSE;

pre_time = GetCurrentTime();
while ( ProcessMessage() != -1 ) {
ClearDrawScreen();
// 終了判定、表示切替
if ( CheckHitKey( KEY_INPUT_ESCAPE ) )
break;
if ( CheckHitKey( KEY_INPUT_D ) ) {
if ( !bPreDKey )
bDrawAll = !bDrawAll;
bPreDKey = TRUE;
}
else
bPreDKey = FALSE;
0013名前は開発中のものです。2012/02/24(金) 00:15:00.45ID:TJKzJquS
// 経過時間の計測
cur_time = GetCurrentTime();
past_time = (double)( cur_time - pre_time) / 1000.0;
pre_time = cur_time;

// 計算、判定
if ( CheckHitKey( KEY_INPUT_RIGHT ) ) vec.x += ( bOnTheFloor ? ACCELL : (ACCELL * 0.25) );
if ( CheckHitKey( KEY_INPUT_LEFT ) ) vec.x -= ( bOnTheFloor ? ACCELL : (ACCELL * 0.25) );
if ( CheckHitKey( KEY_INPUT_SPACE ) ) {
if ( !bPreSPKey && bOnTheFloor )
vec.y += JUMP;
bPreSPKey = TRUE;
}
else
bPreSPKey = FALSE;
if ( bOnTheFloor )
vec.x -= GetSlope( floors, elements, player.x ) * CSLOPE;
if ( vec.x > 0.0 ) {
if ( ( vec.x -= ( bOnTheFloor ? RESIST : (RESIST * 0.25) ) ) < 0.0 ) vec.x = 0.0;
}
if ( vec.x < 0.0 ) {
if ( ( vec.x += ( bOnTheFloor ? RESIST : (RESIST * 0.25) ) ) > 0.0 ) vec.x = 0.0;
}

player.x += vec.x * past_time;
player.y += vec.y * past_time;

vec.y -= GRAVITY;
■ このスレッドは過去ログ倉庫に格納されています