早くC++とかDXlibに詳しい人来てくれー!アッー

このエントリーをはてなブックマークに追加
1以下、名無しにかわりましてVIPがお送りします

http://sukima.vip2ch.com/up/sukima025642.png
上の画像でAの画像や文字をクリックすると次へ進むみたいな感じを作りたい
どうすりゃいいですか
2以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:20:30.05 ID:s1KBMJM+0
まず
3あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:20:49.08 ID:CmQ+1HhA0 BE:2401452858-2BP(123)

>>2
そんなに不味かったか
4あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:21:52.86 ID:CmQ+1HhA0 BE:4322614289-2BP(123)

http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N8
これを参考にしようと思っても無理だった
クリックする場所を問わないから、どこをクリックしても反応しちゃう
5あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:23:03.93 ID:CmQ+1HhA0 BE:3362033478-2BP(123)

とりあえずココまで出来てる

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;
SetMouseDispFlag( TRUE ) ;
SetGraphMode( 640 , 480 , 32 ) ;
if( DxLib_Init() == -1 ) return -1;



WaitKey() ;
DxLib_End() ;
return 0 ;
}
6あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:24:42.51 ID:CmQ+1HhA0 BE:1801089656-2BP(123)

誰か詳しい人教えてくれー
ゴクウー
7あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:29:00.54 ID:CmQ+1HhA0 BE:840508272-2BP(123)

教えてくださいお願いします
ゲーム作りたいんです
8以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:31:31.83 ID:WiLvGCyy0
とりあえずここまでできてるって
ほぼテンプレートじゃん
9あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:32:45.38 ID:CmQ+1HhA0 BE:2101270875-2BP(123)

>>8
まだウィンドウをサイズ指定して出して、マウスカーソル表示できるところまで
とりあえず>>1に書いてあることが出来れば後はもうバリバリ進む
10あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:38:48.64 ID:CmQ+1HhA0 BE:2701633695-2BP(123)

誰か教えてください
11あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:43:40.69 ID:CmQ+1HhA0 BE:1440871564-2BP(123)

本当に誰か詳しい人いませんか?
12以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:46:17.70 ID:9yzmSlWE0
あのさ、知識や技術はただじゃないんだよ
極端に言えば偉い人は何のためにシンクタンク雇うと思ってんの
13あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:47:28.77 ID:CmQ+1HhA0 BE:480291124-2BP(123)

>>12
何か対価を払わなければいけないってことですね
zip?
14以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:51:58.14 ID:HO5w8B560
WinAPIでもつかってろ
ボタン並べとけw
15あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:52:31.89 ID:CmQ+1HhA0 BE:2401452285-2BP(123)

>>14
DXlib使ってるんだけど、WinAPIも同時に使えるの?
16以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:54:52.94 ID:FtfRql/j0
>>15
使える
これ以上はzipをうpしてからだな
17以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:55:16.11 ID:WiLvGCyy0
ほらよ

#include "DxLib.h"

typedef struct{
int x;
int y;
}Mouse_t;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
SetMouseDispFlag( TRUE ) ;
Mouse_t Mouse;
while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
GetMousePoint(&Mouse.x,&Mouse.y);

DrawFormatString(0,0,GetColor(255,255,255),"x:%d,y%d",Mouse.x,Mouse.y);
ScreenFlip();
}
DxLib_End();
return 0;
}

あとはしらん
18あsd ◆.scf4uuY4pgz :2010/04/24(土) 22:57:54.73 ID:CmQ+1HhA0 BE:2701633695-2BP(123)

>>16
でもWinAPIはゲーム向きじゃないような気がする
ボタンとかなんかダサイような・・・
画像をクリックして次進むみたいな感じも出来るですか?

>>17
マウスカーソルの座標が出るだけなんだけど
19以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 22:58:48.94 ID:WiLvGCyy0
>>18
とりあえずzipをだな
え?まさか見返りなしで働けと申しますか
20あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:00:44.04 ID:CmQ+1HhA0 BE:4322614098-2BP(123)

>>19
グーグル先生って優しいよね
何でも教えてくれるよ
浅くだけど
21あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:03:20.26 ID:CmQ+1HhA0 BE:3842323788-2BP(123)

WinAPIで画像をボタン化できるっぽいね
http://www.winapi-database.com/Message/BM/BM_SETSTYLE.html

でもDXlibとWinAPIって同時に使えるものなの
22あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:12:59.42 ID:CmQ+1HhA0 BE:3782287297-2BP(123)

画像の座標を指定
画像の大きさを指定
画像の上でクリックするとX行に移動

みたいな感じにすればいいのかな?
23以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:13:09.81 ID:HO5w8B560
マウスがボタンの上でクリックされたかを判定すればいいじゃん
24以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:13:25.15 ID:9Ey0bYImP
DXLIBなんて触ったこと無いがzipのためにがんばってみるか
25以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:14:08.03 ID:xhoU2U/30
五領中不登校平田祐介(27)ニート知ってる?
26あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:15:22.13 ID:CmQ+1HhA0 BE:840509227-2BP(123)

>>23
それが出来なくて困ってます
XDlibのリファレンスを見てやってみても
どうしてもどこをクリックしても反応してしまうようになってしまう

>>24
zipでなにうpすればいいんだよ

27あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:15:51.35 ID:CmQ+1HhA0 BE:480291124-2BP(123)

>>25
友人です
嘘です
28以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:17:51.83 ID:WiLvGCyy0
仕方ねえなほらよ

#include "DxLib.h"

typedef struct{
int x;
int y;
unsigned int Botton;
}Mouse_t;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){

Mouse_t Mouse;

int Color=GetColor(255,255,255);

ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
SetMouseDispFlag( TRUE ) ;
29あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:18:12.71 ID:CmQ+1HhA0 BE:1500908055-2BP(123)

参考にしてたリファレンス
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html

SetMouseDispFlag  マウスカーソルの表示設定フラグのセット
GetMousePoint  マウスカーソルの位置を取得する
SetMousePoint  マウスカーソルの位置をセットする
GetMouseInput  マウスカーソルのボタンの状態を得る
GetMouseWheelRotVol  マウスホイールの回転量を得る

GetMousePointでマウスの位置を得る
GetMouseInputでクリックされたかどうかを得る
得た結果でいろいろする
って感じかな
30以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:19:01.09 ID:WiLvGCyy0
while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
GetMousePoint(&Mouse.x,&Mouse.y);
int MouseBotton=GetMouseInput();
if((MouseBotton)!=0)Mouse.Botton++;
else Mouse.Botton=0;
DrawFormatString(0,0,Color,"x:%d,y%d",Mouse.x,Mouse.y);
if(MouseBotton>0)
DrawFormatString(0,30,Color,"押されてます");
else
DrawFormatString(0,30,Color,"押されてません");
ScreenFlip();
}
DxLib_End();
return 0;
}
ここまでくれば後は簡単だろ
31あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:19:10.43 ID:CmQ+1HhA0 BE:720436526-2BP(123)

>>28
エラー
32以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:19:41.16 ID:Afb+a68S0
<お知らせ>
 

                rー----、
     rー--、      l゙ .,、  ヽ"''''''ー,、
    l"   `'、-,,-‐'''"l゙ l゙""'''i  i    "ー、
''゙゙''゙゙゙`l゙ r--、  ヽ   l゙ /   / ノ     .,,}} 
    l  .|   ゙l  |  l゙  ''゙゙'''" ノ     ,,,.}}
゙   ,l゙  |゙   ,!  l゙ / /''゙""i "i     ,,;"
   .|  !   ノ ,l゙´ / /   ノ  |. ,,,.,,r''″
   / ./  / / ,,/ /,,,,,,,,ノ  /""
  /  ー''" ,/'''"/___,,,,,ノ
"""ー―--ー"
                          [公正]

2008年3月より、TDNスレには上記のDBマークをテンプレに張ることが義務付けられています。
DBマークの無いスレを立てた場合、DB巨大AAで警告となります。
33あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:19:44.22 ID:CmQ+1HhA0 BE:1440871946-2BP(123)

>>30
エラー
34以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:21:08.04 ID:Afb+a68S0
<お知らせ>

    ,、                            ,,r‐---、,_ .,=@ 
    .|`゙'ー、,、                        ,/゜    ,/”,メ-,,、 
    l゙   `'''ー、,,,                _,,,,,,―ー'''",,,-┤ .,/ .│  │ 
    `''ーi、    │广''ー、  __,,,,,-‐'''゙二r‐-x、  .l゙  l ,i´ 丿   | 
      |  .广''''","   ゙l-ーl" .│ ,/゜_,,,,、 │ l゙  | ,/ /′  ,i´ 
.,,,,,,,,,,,,,,,,,,|  ,ド''゙゙゙`l゙ .,、 ││ │ ,/` ,r'"  ゙l  │ l゙  l,i´ .,/   ,,i´ 
     │ l゙   .l゙ .l゙|  .|.l゙  l゙ /` .,/   ,!  .l゙ ,l゙  ″ /`  .,,i´  
     .l゙ .l゙   ,l゙ / ゙l  .″ / .l゙  l゙   ./  ,l゙ ,i´ .,、 │ .,,r″   
     l゙  |   .|  |  |   ,i´ |  ゙l_ ,,/ ,ん┤ /゙l  .T"`     
    .|  l゙   l゙ .l゙  │  /  \,、 `^ ._,/` │ .│ |  |      
    l゙ .|   .|  l   .―''″._,,,,--'““''~`   .(,,,,_l゙  ゙l  .|      
    │ .l゙   ←″ _,,,,―¬"゛           `  !,,、.|      
   ,,,|,,-←―''''" ̄^                     ゙゙''"     

2006年4月より、TDNスレには上記のTNOKマークをテンプレに張ることが義務付けられております。
TNOKマークの無いスレを立てた場合、8点の減点または免許の剥奪となります。
35以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:21:54.56 ID:WiLvGCyy0
>>33
一緒に投下すると改行エラーが起きて書き込めないから二つに分けたんだよ
それくらいわかろうぜ

二つ繋げてやってみろ
36あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:23:33.31 ID:CmQ+1HhA0 BE:1080653663-2BP(123)

>>35
うぉ!
ちゃんとウィンドウ内でクリックしないと反応しないように出来てる!
37以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:26:11.97 ID:HO5w8B560
糸冬
38あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:28:58.29 ID:CmQ+1HhA0 BE:1620981239-2BP(123)

>>37
終わってないよ

>>35
これって右クリック、ホイールクリックでも反応しちゃうよ?
39以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:31:19.85 ID:WiLvGCyy0
>>38
本当だ
直してくる
40あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:31:59.16 ID:CmQ+1HhA0 BE:900545235-2BP(123)

int MouseBotton=GetMouseInput() & MOUSE_INPUT_LEFT;
こうすればいいのか
41あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:34:39.33 ID:CmQ+1HhA0 BE:900545235-2BP(123)

>>40
で左クリックだけ反応することは出来たや
f(MouseBotton>0)
DrawFormatString(0,30,Color,"押されてます");
else
DrawFormatString(0,30,Color,"押されてません");

DrawFormatString(0,30,Color,"押されてます");
の部分をX行に移行みたいに書き換えればクリックして次へ見たいな事ができるかな
42以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:35:23.53 ID:GFfk+2tdP
Cでやれ
43あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:36:40.23 ID:CmQ+1HhA0 BE:4862940899-2BP(123)

>>42
C言語よりもXDlib使ったほうが楽だよ
ってかXDlib使う環境はC++だけどね
44以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:36:42.58 ID:WiLvGCyy0
んんwwwww
45あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:36:56.63 ID:CmQ+1HhA0 BE:2401452858-2BP(123)

XDじゃねぇDXだ
46ウォーズマン2号 ◆WAR//5VXtk :2010/04/24(土) 23:37:24.55 ID:7p7EzTiD0
XD
↑かわいい
47あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:38:05.76 ID:CmQ+1HhA0 BE:720435762-2BP(123)

>>46
><して笑ってるみたいだな
48あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:40:44.56 ID:CmQ+1HhA0 BE:960580782-2BP(123)

>>44
なにかおかしかった?
49以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:41:17.37 ID:WiLvGCyy0
>>48
ヤルネェ!って言いたかった
50あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:44:56.56 ID:CmQ+1HhA0 BE:360218232-2BP(123)

ウィンドウ内をクリックすると反応ってのは出来たけど
画像、文字をクリックすると反応ってのはどうすればいいですか
画像や文字の座標指定すればいいんだろうけど
どこのその記述を入れればいいのかわからん
51以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:46:26.88 ID:GFfk+2tdP
DXlibなんか使ったことないから知らないけど
クリックしたらマウスの座標も送られてくるだろ
クリックされた時のメッセージを処理するところで座標毎に処理変えればいいだろ
52以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:46:52.78 ID:LSN1jU180
DXlibってそんなめんどくさいの?
何故これで作ろうとしてるのか
53あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:48:40.02 ID:CmQ+1HhA0 BE:600363252-2BP(123)

>>51
画像の座標が(0,0)
画像のサイズが100×100だったら

マウスの位置を得る
マウスの位置が(0,0)〜(100,100)
その座標でクリックすると処理

みたいな感じにすればいいのかな?
54以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:48:45.36 ID:BYf5j+RR0
>>52
DirectXより数倍楽だぞ
55あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:50:07.12 ID:CmQ+1HhA0 BE:960581344-2BP(123)

>>52
最初はCだった
Cじゃどうがんばってもコマンドプロンプトに文字表示するのが限界だったから
ググって出てきたのがDXライブラリ
運命的なのを感じて昨日から学習を始める←今ココ
56以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:50:22.62 ID:GFfk+2tdP
>>53
やってみろ
57以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:51:18.70 ID:NxlfnBDr0
HTMLですらよくね・・・?
そうでなくてもC#とかVBとかFlashとか
58あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:51:40.16 ID:CmQ+1HhA0 BE:4322614098-2BP(123)

>>56
ちょっと挑戦してくる
59以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:51:52.77 ID:a86oi1vt0
60以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:52:08.66 ID:Dm6u/6NU0
画像や文字が矩形(rx, rx, rw, rh)になっているのでいいのであれば、
クリックがあったときにマウスの位置x, yが
if(x>=rx&&x<=rx+rw&&y>=ry&&y<=ry+rh)
{
クリックされたときの処理
}
でええと思う。
61あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:52:35.94 ID:CmQ+1HhA0 BE:1921161784-2BP(123)

>>57
HTMLじゃ駄目なんだよ
なんかHTMLじゃなんか駄目なんだよ
でもフラッシュでやればよかったと後悔してる
62以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:55:05.73 ID:rVuAIAeV0
C#でよくね?
63あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:57:42.35 ID:CmQ+1HhA0 BE:3782287297-2BP(123)

画像(rx, rx, rw, rh)
x>=rx&&x<=rx+rw&&y>=ry&&y<=ry+rh

XはRX&&Xよりも大きいいか同じで
RX+RW&&YはRX&&Xよりも大きいか同じで
RY&&YはRX+RW&&Yよりも小さいか同じで
RY+RHはRY&&Yよりも大きいか同じ

どういうことだってばよ・・・
(rx, rx, rw, rh)は画像の4点の座標を表してるの?
64以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:58:12.05 ID:XKYDUB6fP
>>52
おめーDirectXやったことある?


面倒だぞー
65あsd ◆.scf4uuY4pgz :2010/04/24(土) 23:58:30.43 ID:CmQ+1HhA0 BE:3782287297-2BP(123)

>>62
だって「C言語 ゲーム」でググるとDXライブラリが出るんだもの
66ウォーズマン2号 ◆WAR//5VXtk :2010/04/24(土) 23:58:43.59 ID:7p7EzTiD0
始点と幅&高さだろ
67以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:59:27.51 ID:Dm6u/6NU0
HSP, VB, lisp, C, java, C#, phpをやった事あるけど今は殆ど使っていない。
趣味でも仕事でも殆どC++とGLSLしか使わない。
他のプログラミング言語より勉強しなきゃいけない事は多いけど
そんなに生産性の悪い言語じゃないと思う。
68以下、名無しにかわりましてVIPがお送りします:2010/04/24(土) 23:59:37.32 ID:7rz2khZz0
とりあえず
if(その画像の横幅+画像のx座標<Mouse.x && 画像のx座標>Mouse.x...(y座標の分))
みたいにかけば四角に当たり判定がとれる。

ただ、正確な(その画像の透明な部分に反応しない)ものはapiでないと無理がある。
activebasicとかflashのSuzukaとかいじってもいいんでない?
69あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:00:19.07 ID:CmQ+1HhA0 BE:240145722-2BP(123)

>>66
(rx, rx, rw, rh)
rx,rx=画像の座標
rw=画像の幅
rh=画像の高さってことか

rx,rxで座標って表すの?
rx,ryじゃない?
70以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:00:49.91 ID:Zju/RmJp0
ちゃんと読みやすく書いてやれよ・・・
if(
    (x>=rx)
 && (x<=rx+rw)
 && (y>=ry)
 && (y<=ry+rh)
) {
}
71以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:02:15.03 ID:Dm6u/6NU0
>>64
x, yはマウスの座標
rx, ryは文字とか画像の位置(最もx, yの値が小さい位置)
rw. rhは幅と高さ

x座標だけならrx<x<(rx+rw)という条件が満たされればマウスが画像の上にあるって事になるでしょ
72以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:02:30.29 ID:GFfk+2tdP
>>69
(rx, ry, rw, rh)を書き間違えたんだろ言わせんな恥ずかしい
73あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:03:37.68 ID:GlUiulfG0 BE:3241960496-2BP(123)

>>68
当たり判定を使うのか
やっぱりプログラミングに必要なのは知識じゃなくて発想だな

>>70
やっぱり座標は(rx,ry)でいいんだね
rx,rxって書かれてたから混乱してたや
74以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:04:13.22 ID:Zju/RmJp0
あー、もう、そもそも変数名がダメなんだ
if(
    (mousePositionX >= resourcePositionX)
 && (mousePositionX <= (resourcePositionX + resourceWidth))
 && (mousePositionY >= resourcePositionY)
 && (mousePositionY <= (resourcePostionY + resourceHeight))
) {
}
75以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:06:30.64 ID:U+7LDeinP
>>1くらい自分でできないとその先つくれなくね?
76あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:07:47.90 ID:GlUiulfG0 BE:1200726645-2BP(123)

アドバイス増えてうれしい感激掘られてもいい!
ちょっと作ってくる

>>75
昨日から始めたばっかだから勘弁

77以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:08:20.37 ID:UXZEXVtQ0
>>60

(rx, ry, rw, rh)
を間違えて
(rx, rx, rw, rh)
と書いてしまい、皆様にご迷惑をお掛けして申し訳御座いませんでした。
交差判定とかに興味のある人は
ttp://en.wikipedia.org/wiki/Separating_axis_theorem
も読んでね。

話はかわるけどさっき俺が建てたスレに誰もこない(;ω;)
http://yutori7.2ch.net/test/read.cgi/news4vip/1272120003/l50
ここには3Dとか興味ある人はいないかな・・・
78以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:09:33.44 ID:GtuNt2sJ0
DxLibとかいらなくね
win32+DirectXそのままで全然楽勝
79以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:09:34.92 ID:erPmEXjhP
3Dはモデリングにしか興味ない
80以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:10:36.59 ID:LqkMqrxb0
>>76
ならもう少しやり続けようぜ
81以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:10:58.78 ID:Zju/RmJp0
3Dとか難しそうすぎて見る気がしない
82以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:11:25.67 ID:fZI80iwc0
#include "DxLib.h"

typedef struct { int x; int y; } Mouse_t;

int WINAPI WinMain(HINSTANCE ,HINSTANCE , LPSTR , int ) {
Mouse_t mouse;
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) return -1;
SetMouseDispFlag(TRUE);
DrawBox(20, 20, 100, 50, GetColor(0,0,255), int TRUE);

while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0) {
if ((GetMouseInput() & MOUSE_INPUT_LEFT ) != 0) {
GetMousePoint(int &mouse.x, int *mouse.y);
if (20 <= mouse.x && mouse.x <= 100 && 20 <= mouse.y && mouse.y <= 100) {
DrawBox(20, 20, 100, 50, GetColor(255,0,0), int TRUE);
}
}
}
DxLib_End();
return 0;
}
83以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:12:03.01 ID:QtgUPEyMP
最近知ったんだけどDXlibでスキンメッシュアニメ出来るようになったんだな
スキンメッシュのために1からDirectXを勉強した俺の苦労は一体・・・
84以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:13:06.91 ID:/prYhr20P
>>82
なんだそりゃ
85以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:15:31.33 ID:UXZEXVtQ0
>>79
少し数学の知識とか必要になるけど
プログラムで計算してモデルを作るのも楽しいよ。
上手くやればモデリングソフトで簡単に作れないようなモデルをわずかなコードで作れるようになるよ。

>>81
>>77のページには難しい事は書いてないよ。
86以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:17:11.05 ID:/ByTWyMh0
#include <dxlib.h>
87以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:18:33.16 ID:zwHbdWvj0
>>73
まあ当たり判定のようなものだ。
たしかflashだと

画像.hit{
クリックした後の処理
}
みたいにかけるんだ。

俺も人のことはとやかく言えないが、とりあえず発想し続ければ
こんなことできないか?みたいに知識欲が出てくる。
自分で調べた知識が発想に追い付けばいいな。
88以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:19:33.92 ID:Q0E2NnxF0
出来たが遅かったか
そして汚いコードができてしまった
#include "DxLib.h"

typedef struct{
int x;
int y;
unsigned int Botton;
}Mouse_t;


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){

Mouse_t Mouse;

int Color=GetColor(255,255,255);


ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
SetMouseDispFlag( TRUE ) ;
while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
GetMousePoint(&Mouse.x,&Mouse.y);
int MouseBotton=GetMouseInput()&MOUSE_INPUT_LEFT;
if( (MouseBotton) != 0 )Mouse.Botton++;
else Mouse.Botton=0;
DrawBox(100,100,200,200,Color,TRUE);
DrawFormatString(0,0,Color,"x:%d,y%d",Mouse.x,Mouse.y);

89以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:19:44.83 ID:edJM8A1kP
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <d3d9types.h>
#include <d3dx9math.h>
#include <string>
#include <vector>
#include <map>
#include <math.h>
90以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:20:26.30 ID:UXZEXVtQ0
そういえばDXlibの方はマウスと表示する画像の座標系は同じになってるの?
マウスの位置がデスクトップ上での位置だったり
画像を表示するときの座標系がy軸方向が上だったりとかないかな。
そこらへんで躓きつつも勉強していけばいつか立派な達人になれると思うよ。
91以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:20:38.75 ID:Q0E2NnxF0

if(Mouse.Botton>0){
if(Mouse.x>=100&&Mouse.x<=200&&Mouse.y>=100&&Mouse.y<=200){
DrawFormatString(0,30,Color,"白い部分が押されています");
}
else
DrawFormatString(0,30,Color,"黒い部分が押されています");

}
ScreenFlip();
}
DxLib_End();
return 0;
}

よくみるといらない部分がちらちらあるし
糞コードメーカーでごめんね
92以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:21:18.71 ID:/ByTWyMh0
int* func(int*)
93以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:23:29.22 ID:Zju/RmJp0
>>85
うー、面白そうだけど時間がない!他にやってみたいコトがスタックされてるので
しかし3DAPIって普通はやっぱDirectX with .NETかねぇ
ボクはJava畑の人間なのでJava3Dとか使ってみたいが・・・無駄に重そう
これから勉強したいと思ってるFlashで3Dできたら楽しそうなんだが・・・
94以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:23:32.79 ID:edJM8A1kP
当たり判定的なものなら
http://msdn.microsoft.com/ja-jp/library/dd188550.aspx
ここにある、ピックの話を良く理解してれば簡単。三次元での衝突判定な
95以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:24:49.71 ID:zwHbdWvj0
>>90
たしかクライアント側だったはず。
APIでやっているならwindow.x,window.yも
足さなくちゃいけなかったような。
96以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:26:56.50 ID:edJM8A1kP
あと基礎として、もしも何にも知らないって人なら
2DでかつFlashだけど、このページの真ん中以降も参考にはなるかもな
http://hakuhin.jp/as/hittest.html

97以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:28:52.71 ID:fZI80iwc0
アクションでもノベルゲーでもシューティングでも探せば製作ツールがあるでしょ
わざわざCでゴリゴリ書かなくていいよ
98以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:28:55.17 ID:UXZEXVtQ0
>>93
DirectXの方はよく知らないけど
10以降は.Netはちゃんとサポートされていなかったかも。
真面目にDirectXやるならC++が無難かと思う。

OpenGLならC/C++以外の言語でも使えるしWindows以外でも使える。
ただ、DirectX SDKのように最初からよく使う便利ライブラリ(ベクトル計算、ファイル読み込み等)が付属してないので
そういうライブラリをネットで探すか自作する必要がある。

javascriptからWEBGLというのを使って3Dできるらしいよ。
99あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:29:04.89 ID:GlUiulfG0 BE:1801089465-2BP(123)

画像表示しようと思ったんだけど
LoadGraphScreen( 300 , 300 , "image/vip.png" , FALSE ) ;
で表示されない
間違ってないよね?
100以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:30:15.69 ID:Q0E2NnxF0
>>99どこに画像おいてんだよ
101あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:32:45.94 ID:GlUiulfG0 BE:2881743168-2BP(123)

デスクトップのDxLib_VCってフォルダのサンプルプログラム実行用フォルダの中のimageってフォルダの中にvip.png
が入ってる

http://dixq.net/g/01.html
間違ってないと思うんだどなぁ
102以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:32:46.52 ID:edJM8A1kP
>>97
普段からC/C++使ってる人間なら自作ライブラリくらいあるし、
別にそんなゴリゴリ言うほど大変でもないだろJK
103以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:33:44.66 ID:UXZEXVtQ0
>>97
製作ツールで作れる範囲でよくて、手軽に作りたいならそれでもいいけど、
C言語とかの方が自由度が高いし、製作ツールで作れない機能も作れちゃう。
ネットでよさそうなライブラリを上手く見つければそれほど手間も掛からないだろうし。
104あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:34:40.00 ID:GlUiulfG0 BE:3362033287-2BP(123)

>>97
実はDSの「スローンとマクヘールの謎のストーリー」の同人を作りたかった
ありきたりのアクションやシューティングじゃないからツールを使って作るのは無理だと悟った
105以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:36:19.71 ID:/prYhr20P
画像以外は表示されてんの?
106以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:36:28.16 ID:fZI80iwc0
いや、どう考えても>>1には自作ライブラリも無ければ
よさそうなライブラリを上手く見つけることもできないと思うw
107以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:36:41.41 ID:UXZEXVtQ0
>>99
普通は
"image/vip.png"
というのはプログラムからの相対パスか
VC++使っているならプロジェクトファイルからの相対パスか
プロジェクトに設定した作業フォルダからの相対パスなんじゃないかと。

試しに絶対パスを指定してみれば?
108以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:36:58.74 ID:QtgUPEyMP
>>102
自作ライブラリってどんなのなの?
D3DXVECTOR3しこたま使ってるけど自作って言って良いのかしら・・・?
109以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:37:17.25 ID:y1Llm+gr0
「Babylon Stage 34 真夏の夜の淫夢 〜The IMP〜」に出演した、現在日本ペイント名古屋営業所で自分を売っている大坊聡さんは関係ないだろ、いい加減にしろ!!
110あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:38:18.53 ID:GlUiulfG0 BE:1260763237-2BP(123)

>>105
ためしに画像をウィンドウに表示させるだけのソース書いたらエラーでてしまった

>>107
やってみる
111以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:38:19.42 ID:Zju/RmJp0
>>98
Javascriptは勘弁でござる
まぁやるならJava3Dかな
書いてから思い出したけど、あれもDirectXかOpenGLかを選択して使えるんだった・・・はず

>>102-103
>>1の現状を見てやれよ・・・
112以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:39:57.11 ID:Zju/RmJp0
>>110
エラーを読む作業に戻るんだ!
もしくはエラーメッセージを丸ごとここに書いても親切な誰かが読んでくれると思うけど
113あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:40:58.73 ID:GlUiulfG0 BE:2101270875-2BP(123)

絶対パス駄目だった
C:/Documents and Settings/asd/デスクトップ/DxLib_VC/サンプルプログラム実行用フォルダ/image/vip.png
114以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:41:42.03 ID:lelmjyob0
ScreenFlip();
を書いてないとか
115以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:41:52.77 ID:fZI80iwc0
UDKみたいなのが無償配布されるような時代なんだ
いまさらDXLibってこともあるまい
116あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:43:00.18 ID:GlUiulfG0 BE:3241961069-2BP(123)

リファレンスどうりにやってるのに・・・

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

// BMP画像の表示
LoadGraphScreen( 0 , 0 , "C:/Documents and Settings/asd/デスクトップ/DxLib_VC/サンプルプログラム実行用フォルダ/image/vip.png" , TRUE ) ;

WaitKey() ; // キーの入力待ち(『WaitKey』を使用)

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
117以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:43:11.10 ID:UXZEXVtQ0
>>113
日本語やスペースが含まれているパスだと上手くいかない事があるぞ。
c:\image\vip.png
に画像を置いてもう一度チャレンジしてみてはどうだろうか。
118あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:45:39.57 ID:GlUiulfG0 BE:3842323788-2BP(123)

>>117
それも駄目だった
画像表示で躓くとか俺はクソムシだなorz
119以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:45:49.49 ID:edJM8A1kP
>>108
なんでそれだけなんだよ・・・ww むしろそこなんて構造体書いて終わり程度だろ
D3DXVertexBuffer9 と そのインデクスのポインタを持ってて、あとマテリアルとベース位置を持ったクラス
あとそれにぶち込む為のローダ。や、アクションする際の曲線補間処理とか、山盛り。

D3DXMesh使ってないのは、たまたま書きたかったから書いたって感じ。

あと、画像ロードするだけでビルボードを配置できる奴とか、もろもろ。
回転処理を行列にするかクォータニオンにするか切り替えたりとか、そういうデバッグ的な部分も
120以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:46:18.35 ID:tDxOLUBa0
>>118
あ、俺もまったく同じ現象になったことあるわ。他はいろいろ通るのに、画像関連だけがちゃんと実行できなかった。
121以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:47:09.57 ID:UXZEXVtQ0
ちゃんとLoadGraphScreenの戻り値を確認して
失敗してたらメッセージを出すようにして置こう。

ファイルが読み込めてないのか、
LoadGraphScreenが成功しているけど別の場所が悪いのかわかるようになるから。
122あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:47:45.87 ID:GlUiulfG0 BE:960580782-2BP(123)

1 つ以上の複数回定義されているシンボルが見つかりました。
とか書いてある
123以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:48:06.27 ID:fZI80iwc0
まずはサンプル通りでためせよ
124あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:49:05.20 ID:GlUiulfG0 BE:960580782-2BP(123)

>>123
http://dixq.net/g/03.html
コレのサンプルを書き換えただけでエラーなんだけど・・・
125以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:49:59.45 ID:lelmjyob0
char.pngは普通に表示できたの?
126以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:50:01.28 ID:UXZEXVtQ0
>>122
1 つ以上の複数回定義されているシンボルが見つかりました。
っていうのはコンパイルエラーの事?
もしそうなら同じ名前の変数とかが宣言してあったりしない?
ソースをアップしたほうが早いか・・・
127以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:50:40.44 ID:fZI80iwc0
いや、書き換えずにchar.pngを実行ファイル直下に置いて実行しろ
128あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:50:49.53 ID:GlUiulfG0 BE:1080653292-2BP(123)

>>126
コンパイルエラーの表示で出る
ソースね

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了


LoadGraphScreen( 0 , 0 , "c:/image/vip.png" , TRUE ) ;


WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
129あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:52:49.43 ID:GlUiulfG0 BE:1801089465-2BP(123)

>>127
駄目だわ
画像云々の問題じゃないらしい
130以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:53:50.97 ID:QtgUPEyMP
>>119
うーんどこからどこまでが自作と言って良いのか微妙な物で・・・
でもスキンメッシュにOBB組み込むとか
目標のメッシュに命中した物体の反射方向を出すとか
その程度のものなら作ったよ

D3DXIntersectとか使いまくってるけどね・・・
なんかこういうのを一切使わず作るのが当たり前って聞いたんだけど・・・
131以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:54:27.58 ID:fZI80iwc0
ちなみにVC++なら実行ファイルを直接叩かないと
初期設定のままならIDEから実行しても駄目
132以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:55:18.07 ID:UXZEXVtQ0
>>128
そのソースコードはサンプルコードのパスの部分を変えただけだよね・・・

1 つ以上の複数回定義されているシンボルが見つかりました。
っていうのはもしかしてリンクエラーだったりしない?
どのシンボルが問題になっているのかわかる?
133あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:55:23.49 ID:GlUiulfG0 BE:2161307849-2BP(123)

>>131
VC++使ってる
実行ファイルを直接叩くをkwskお願いします
134あsd ◆.scf4uuY4pgz :2010/04/25(日) 00:56:39.81 ID:GlUiulfG0 BE:240145722-2BP(123)

>>132
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1>コンパイルしています...
1>test2.cpp
1>リンクしています...
1>test2.obj : error LNK2005: _WinMain@16 は既に test.obj で定義されています。
1>C:\Documents and Settings\asd\My Documents\Visual Studio 2008\Projects\test\Debug\test.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
1>ビルドログは "file://c:\Documents and Settings\asd\My Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" に保存されました。
1>test - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
135以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:57:57.23 ID:erPmEXjhP
>>133
プロジェクトのあるフォルダにdebugみたいなのがあるだろ
そこに実行ファイルがあるから
136以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:59:08.16 ID:ITs/lxv10
137以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:59:09.84 ID:zwHbdWvj0
>>134
同じプロジェクト上でコンパイルしてるからダブってるんだ。
新しいプロジェクトをもう一つ作ればなんとかなるはず。
138以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:59:20.29 ID:edJM8A1kP
>>130
別に使ったっていんじゃね?都合が悪くないのならば。
せっかくAPIとして用意してくれてるんだからそれで何も弊害無い状態なら無問題。
ただクリティカルな部分で関数呼び出しが鬼のように続くのが気になるなら
そこだけシンプルに自作にして inline にしちゃうとかってのもある

既存のライブラリ(API含む)使うときだって、例えば

// じさくかんすう
void print(char *c) { printf("%s", c); }

みたいな比率じゃなければ自作って言っていいと思うぜw ちゃんとそこに目的があるならば
139以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:59:23.55 ID:UXZEXVtQ0
>>134
それってソースコード云々ではなく、プロジェクトの設定が間違ってるんじゃね?
サンプルをそのまま動かしたりはできたの?
140以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 00:59:27.90 ID:fZI80iwc0
いや、確かVC++のIDE上で実行すると作業フォルダがプロジェクトファイルのパスになってて
画像とか置いててもパスが通らないってだけです。
実行ファイルから直接実行しろって事
141以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 01:01:37.15 ID:fZI80iwc0
そのエラーはリンクエラー

色々と試すためにtest.objとtest2.objに分けたのかもしれないけど
どっちかプロジェクトから外さないと駄目
142あsd ◆.scf4uuY4pgz :2010/04/25(日) 01:02:56.12 ID:GlUiulfG0 BE:240145722-2BP(123)

>>137
キタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─!!
143あsd ◆.scf4uuY4pgz :2010/04/25(日) 01:23:53.37 ID:GlUiulfG0 BE:3241961069-2BP(123)

ハートキャッチ見ないといけないんで、今日は寝ます
アドバイスしてくれた人本当にありがとう!
144(u_・y) ◆e6.oHu1j.o :2010/04/25(日) 01:32:39.37 ID:XcmI4Rzn0
あれだな、マウスで何かボタンカチカチやるにもな
STG作るときみたいに当たり判定関数を用意だな
145(u_・y) ◆e6.oHu1j.o :2010/04/25(日) 01:36:55.34 ID:XcmI4Rzn0
Rubyで何か作る
お題くれ
146以下、名無しにかわりましてVIPがお送りします:2010/04/25(日) 01:53:35.78 ID:UXZEXVtQ0
sinカーブとcosカーブを重ねた状態で表示
147(u_・y) ◆e6.oHu1j.o
寝るわ