検索結果 145 件
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
これは? 今現在試行錯誤中です 式は除算を含むので、型は自ずから何でなければなりませんか? intだと少数点以下が切り捨てられちゃうので、ひとまずdoubleに変えたりしたのですが、そこからどう粗を探すのかがわからず、そこで止まっています。 //チップ画像格納変数、マウスポインタの座標変数、マウスとホイール用の変数 int chip_img1; int Mouse,Wheel; int mx,my; //クリックした座標の記録用変数 double imgx=0;/*doubleに変更*/ double imgy=0; //クリックされた配列を記録する変数 double hnum=0; dou...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
チップ一個分右にずれてるようです。
詳細は画像に
詳細は画像に
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
トップビューチップの左上の座標のような
描画位置的な問題でしょうか?オフセット?というやつです。
クォーターというか、今のぼくのコードだと
それが左端角になってしまってるので左端角をクリックしないと表示できないということなんですかね?
もしそうだとしてオフセットなんですか?
なんとなくどういったものか感じられるんですけど、事細かに説明しろと言われると
「描画の初期位置みたいなのじゃね?」
としか言えないのでよかったら教えてください。
描画位置的な問題でしょうか?オフセット?というやつです。
クォーターというか、今のぼくのコードだと
それが左端角になってしまってるので左端角をクリックしないと表示できないということなんですかね?
もしそうだとしてオフセットなんですか?
なんとなくどういったものか感じられるんですけど、事細かに説明しろと言われると
「描画の初期位置みたいなのじゃね?」
としか言えないのでよかったら教えてください。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
できたああああああああああああああ!!! できましたよおおおおおおおおおおお!!!! /*まず以下の式のwとhを*/ A=w(x-y) B=h(x+y) /*左に持ってきます*/ A/w=x-y B/h=x+y /*そしてそれを連立方程式で計算*/ x-y=A/w +)x+y=B/h -------------- 2x=A/w+B/h x=(A/w+B/h)/2 /*まずは x から求める*/ /*そして次は y を求める*/ x-y=A/w -)x+y=B/h -------------- -2y=A/w-B/h y=(A/w-B/h)/-2 よって答えは x=(A/w+B/h)/2 y=...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
補正値入れてたらそりゃあわないわ
ということで補正値抜いてもう一度計算してみました。
配列の要素数 [0][1]
そこのクォーター座標 (32,20)
表示されるチップの幅と高さw=32,h=20
として、まず
y=(-A+wx)/w
に代入
0=(-32+32*1)/32
0=0/32
0=0
そして
x=(A+wy)/w
に代入
1=(32+32*0)/32
1=(32+0)/32
1=1
ということで
x = (A+wy)/w = (B-hy)/h
y = (-A+wx)/w = (B-hx)/h
これが正解だと思います。
ということで補正値抜いてもう一度計算してみました。
配列の要素数 [0][1]
そこのクォーター座標 (32,20)
表示されるチップの幅と高さw=32,h=20
として、まず
y=(-A+wx)/w
に代入
0=(-32+32*1)/32
0=0/32
0=0
そして
x=(A+wy)/w
に代入
1=(32+32*0)/32
1=(32+0)/32
1=1
ということで
x = (A+wy)/w = (B-hy)/h
y = (-A+wx)/w = (B-hx)/h
これが正解だと思います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
[quote=へにっくす]逆算の意味、分かってる?[/quote]
わ か っ て な か っ た
わかってなかったです……
グーグルで調べたら虫食い算が出てきて、
これがぎゃくさん?となった自分の頭の悪さを自覚したので
http://gunsyu3.hatenadiary.jp/entry/20100501/1272676155
ここに書いてある連立方程式で逆算という意味を
理解するためちょっと勉強してきます
わ か っ て な か っ た
わかってなかったです……
グーグルで調べたら虫食い算が出てきて、
これがぎゃくさん?となった自分の頭の悪さを自覚したので
http://gunsyu3.hatenadiary.jp/entry/20100501/1272676155
ここに書いてある連立方程式で逆算という意味を
理解するためちょっと勉強してきます
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
[0][0] (64,20) w=32,h=20
[y][x] (A , B)
これで検算すると
y=-A+wx/w
0=-64+32*0/32
0=-64+0/32
0=-64/32
0=-2
……おかしいですね
A=w(x-y)を方程式で
x=????に変えるっていうの考えでいいんですよね?
[y][x] (A , B)
これで検算すると
y=-A+wx/w
0=-64+32*0/32
0=-64+0/32
0=-64/32
0=-2
……おかしいですね
A=w(x-y)を方程式で
x=????に変えるっていうの考えでいいんですよね?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
> 上記の式を方程式で逆算すればいいのですか? そう言うことです。 ということで、 X=w(x-y)とY=h(x+y)のXYを区別がつくようABに変えて A=w(x-y) B=h(x+y) ← こんな感じ 方程式で逆算してみました。 まずは A=w(x-y) から x と y を求めてみます。 ①A=w(x-y) ↓ ②A=wx-wy ↓ ③wx=A+wy ↓ ④x=A+wy/w xがわかったので次はyです ②A=wx-wy ↓ ③wy=-A+wx ↓ ④y=-A+wx/w 次はB=h(x+y)から求めてみます。 ①B=h(x+y) ②B=hx+hy ③hx=B-hy ④x=B-hy/h ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
配列要素の、yとxが逆になってたので修正。 #include "DxLib.h" #include <stdio.h> //トップビューのチップサイズ #define VTOP_PARTS_SIZEX 64 #define VTOP_PARTS_SIZEY 64 //クォータビューーのチップサイズ #define MAP_PARTS_HSIZEX 32 #define MAP_PARTS_HSIZEY 16//ほんとは20 //マップのオフセット #define MAP_VIEW_OFFSET 32 //マップ二次元配列の配列の要素数 #define CHIP_NUMBER_Y 100 #de...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
マップエディタを作ろうとプログラム撃っていたら遅くなりました >>こういうものを本格的に作るには、マップエディタを使います。 やはりそうなりますよね。 ISLeさんのアドバイスとまとめると理想としては 1.地面マップチップの配列データ 2.その上に置かれる建物などのオブジェクトの座標 3.オブジェクトの当たり判定 上記三つの情報が書き込まれたデータを吐き出すエディタを作るという事でいいんでしょうか? 二次元配列を使えばマップを表示できるぜ!程度の知識しか持ってない自分には そのデータをどういう形にするのか、おぼろげに推測しかできないので、 ひとまず一番簡単そうな 地面マップチップの配列情報を吐...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
Re: マップの木や建物などの描画方法について
soft屋さん、ISLeさん返信ありがとうございます。 いまどきのPCの性能だとキャラクタと同様にスプライト的な扱いで移動しない物として置けば良いと思います。 当たり判定も敵キャラクタ同様に行います。ダメージがないだけって感じでしょうか。 極端に言うと家や木の画像を読み込み、 それをDrawGraphなどで表示するということいいのでしょうか? それで描画だけやってみたのですが、楽ちんでした。 ただこの方法だと、ぼくが試した方法が極端なのもありますが ステージが変わるごとにマップ素材の配置と差し替えのためにコードを書くのは手間が大変そうです。 描画自体は地面と同じに行うほうが効率は良いのではない...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップの木や建物などの描画方法について
- 返信数: 39
- 閲覧数: 9797
マップの木や建物などの描画方法について
こんにちは。 今回はマップの木や建物などの描画方法について質問しに来ました。 今、DXライブラリでクォータービューのアクションゲームを作っています。 FFTのような、指定した場所に規則的にコマのように動くのではなく、 ぐるぐる走りまわり、でんぐり返しもジャンプもするアクションゲームです。 pcゲームのbastionやアドバンス版のキングダムハーツの様なゲームです。 現段階ではまだ四角い菱形系のチップをただ並べただけの殺風景なマップを 方向キーを押すとキャラが走り回り、SHIFTを押すとでんぐり返し、SPACEを押すとジャンプをするというものです。 マップは以下のように書かれたテキストファイルを...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
p.walkflagが偽の時はp.mukiに代入が行われず、初期状態ではmemsetがあるのでp.muki==0となるはずです。 この状態でplayer_muki_table[p.muki-1][2]にアクセスしようとすると、 範囲外である[-1][2]にアクセスすることになり、アクセス違反になる可能性があります。 なるほどそういうことだったんですね。 何度もアドバイスありがとうございます。 //構造体要素の初期化 memset(&p,0,sizeof(PLAY)); p.muki=4; みけCATさんの言うようにmemsetの後に、p.mukiを初期化した所、 全てが正常に動きました。 皆...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
イマダニさんに申し訳ない気がするので再投稿します。 再投稿感謝します!本当にありがとうございます! どうしてもわからない部分があったので質問させていただきます! まずは実行結果を報告します。コードは以下のように書き換えました。 #include"DxLib.h" #include"Key.h" #include <math.h> //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 10 #define CHIP_NUMBER_Y 8 #define MAP_P...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
typedef struct{ bool walkflag,jumpflag;//歩きフラグ int img,cnt,jcnt,muki[4];//画像、カウンタ、向き int old_muki[4];/*向き保存変数*/ double x,y,speed,naname,oldx,oldy;//座標 }PLAY; player構造体に保存変数を作り、 const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これに速度をかける const int dy[4] = {1,-1,1,-1};//y移動量 const int imgid[4] = {10,19,1,28};//走ってる画像 const int imgid2[4] = {9,18,0,27};//立ってる画像 p.walkflag=false;//歩きフラグをfalseに初期化 for(int i=0...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
for文に入る前にp.walkflag=false;と初期化して、forのなかではfalseを代入するのをやめてみてください。 この構造だと、フラグを立てるfor文と動くためのfor文を分けるべきだと思います。 以下のような形でいいんでしょうか? const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1};//x移動量、これに速度をかける const int dy[4] = {1,-1,1,-1};//y移動量 const in...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
といってもforでまわしているせいか、最初ぼくが書いたswitch文のウンコードでも walkflag、歩きフラグを交えるとうまくいかないんですよね。 const int keyid[4] = {KEY_INPUT_LEFT,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_UP}; const int dx[4] = {-1,1,1,-1}; const int dy[4] = {1,-1,1,-1}; const int imgid[4] = {10,19,1,28}; const int imgid2[4] = {9,18,0,27};//立ってる画像 f...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
>>usao
すいません勘違いしてました!
半端に変えてしまったせいで違う動作になってますフラグが入ってないし……
usaoさんの言うように動作は同じで、コードを綺麗にしたいです
>>ISleさん
usaoさんの突っ込みで、動作同じで、綺麗にしなきゃと思った所、
それに当たるコードの書き込みありがとうございます!
テーブルという概念を扱ったことのない自分にはかなり新鮮で勉強になりました。
それで昨日コードを書き込み、結果報告と質問しようかなと今来たのですけれど、
来てみたらなんと撤回されておる……
少し残念ですが、質問はやめときますね。
すいません勘違いしてました!
半端に変えてしまったせいで違う動作になってますフラグが入ってないし……
usaoさんの言うように動作は同じで、コードを綺麗にしたいです
>>ISleさん
usaoさんの突っ込みで、動作同じで、綺麗にしなきゃと思った所、
それに当たるコードの書き込みありがとうございます!
テーブルという概念を扱ったことのない自分にはかなり新鮮で勉強になりました。
それで昨日コードを書き込み、結果報告と質問しようかなと今来たのですけれど、
来てみたらなんと撤回されておる……
少し残念ですが、質問はやめときますね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
Re: ifまみれの移動制御をなんとかしたい
>>みけCATさん アドバイスありがとうございます! これは確かにウンコードですね…… こんなの書いてドヤガオしていた自分が恥ずかしいです 早速、書きなおしました。特に問題なく動きました。 #include"DxLib.h" #include"Key.h" #include <math.h> //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 10 #define CHIP_NUMBER_Y 8 #define MAP_PARTS_HSIZEX 32 /*マップ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ifまみれの移動制御をなんとかしたい
- 返信数: 24
- 閲覧数: 5911
ifまみれの移動制御をなんとかしたい
今回はif文だらけで汚らしいコードをどうにかしたく、質問しに来ました。 そのコードは以下の質問で クォーターの当たり判定とスクロール http://dixq.net/forum/viewtopic.php?t=12822 質問に回答してくれたソフト屋さんにif文だらけで汚いと言われたもので、 以下がそのコードになります。 if( checkkey(KEY_INPUT_LEFT)>0 && checkkey(KEY_INPUT_UP)>0 ){//押されたキーによって p.muki=5; //向きを指定。これは左上 p.walkflag=true;//歩きフラグをたてる }else if( ch...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++での分割コンパイル
- 返信数: 5
- 閲覧数: 2877
Re: C++での分割コンパイル
解決です。
usaoさん、みけcatさんありがとうございました。
usaoさん、みけcatさんありがとうございました。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++での分割コンパイル
- 返信数: 5
- 閲覧数: 2877
Re: C++での分割コンパイル
すいません。質問が意味不明でした…… usaoさんの言うとおり、privateとかのメンバにアクセスしたいほんとそれだけです。 ai.h #ifndef DEF_AI_H #define DEF_AI_H class AI{ private: int img; double x,y,oldx,oldy; private: void Move(); void Draw(); public: AI(); void All(); }; #endif map.h #ifndef DEF_MAP_H #define DEF_MAP_H class MAP{ private: int MapData[10...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++での分割コンパイル
- 返信数: 5
- 閲覧数: 2877
C++での分割コンパイル
いきなり題名とそれますが、自分の状況を知ってもらいたいので。 現在C++でAI制作を目標に勉強しています。 環境はDxライブラリとvc++2008です。 まずどんなAIかというと //0が何も表示しない場所,1が地面,2がゴール int MapData[20][40] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: androidプロジェクトの実行時のエラーについて
- 返信数: 6
- 閲覧数: 1379
Re: androidプロジェクトの実行時のエラーについて
nonさんが貼ってくれたサイト http://denshikousaku.net/the-process-android-process-acore-has-stopped に乗っていたwipe user data 日本語だとユーザ・データを消去する一度やったらそれ以降エラーを出さなくなりました。 上記サイトでは原因を 「エラーメッセージの原因は、過去に自分がインストールしたテストアプリのどれかが悪さしているっぽいです。」 と解説しております。 もうちょっとググるべきでしたね。すいませんでした…… そんなわけでみけCATさんには申し訳ないのですが、エラー当時のLogCatを確認できません。 >...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: androidプロジェクトの実行時のエラーについて
- 返信数: 6
- 閲覧数: 1379
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: androidプロジェクトの実行時のエラーについて
- 返信数: 6
- 閲覧数: 1379
Re: androidプロジェクトの実行時のエラーについて
どこにアップロードすればいいですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: androidプロジェクトの実行時のエラーについて
- 返信数: 6
- 閲覧数: 1379
androidプロジェクトの実行時のエラーについて
Androidプログラミングの館 1.2 "Hello World" を表示させよう を見ながらプロジェクトを実行してみました。 すると、HelloWorldは表示されたのですが、少しするとその上に以下のようなエラーメッセージが現れました。 Sorry! The process andrid.process. acore has stopped. unexpectedly.Please try again. これは一体何なんでしょうか? DXライブラリしかいじってこなかった僕にとっては このような実行画面にでてくるエラーは初めてで、 正直、どうしたらいいのかわかりません。 いったいなにを間違え...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Andoroidアプリ開発環境について!
- 返信数: 2
- 閲覧数: 983
Re: Andoroidアプリ開発環境について!
Android アプリ開発環境構築方法 (2013年4月版)
http://asatetsumemo.seesaa.net/article/354223040.html
Android仮想デバイス(AVD)の作成とエミュレータの起動
http://www.javadrive.jp/android/emulator/
上記のサイトを見るといいですよ。
http://asatetsumemo.seesaa.net/article/354223040.html
Android仮想デバイス(AVD)の作成とエミュレータの起動
http://www.javadrive.jp/android/emulator/
上記のサイトを見るといいですよ。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルでのインクルードについて
- 返信数: 8
- 閲覧数: 1799
Re: ヘッダファイルでのインクルードについて
>>DXライブラリはC言語の文法の範囲で使うとしてもC++としてコンパイルする必要があります。※ DxLib.hは.cにするとコンパイルエラーになります。 DXライブラリがC++でないと動かないなんて初めて知りました…… これからはそれを理解したうえで、 >>まずくはないですが、Visual C++とあるように拡張子が.cppですと、C++言語として通常コンパイルします。 >>あと、typedef struct xxxx;せずにstruct xxxx;でxxxx 変数名;が使えるのはC++の文法の範囲です。 一応C++コンパイルしているのでコンパイルが通りますが自覚して使ってくださいね。 これ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルでのインクルードについて
- 返信数: 8
- 閲覧数: 1799
Re: ヘッダファイルでのインクルードについて
コンパイラはvisualC++を使っていて、それのcppファイルにCのコードを書き込んでいます。
特に問題が無かったので、今までcppファイルに書いてましたが、これってまずいんでしょうか?
特に問題が無かったので、今までcppファイルに書いてましたが、これってまずいんでしょうか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルでのインクルードについて
- 返信数: 8
- 閲覧数: 1799
Re: ヘッダファイルでのインクルードについて
>>YuOさん 解答ありがとうございます! YUOさんの方法でうまく行きました。 #ifndef DEF_PLAYER_H #define DEF_PLAYER_H #include "mouse.h" enum Playerstate_t{ PLAYER_STATE_DEFAULT, //通常 PLAYER_STATE_ATTACK, //攻撃 PLAYER_STATE_JUMP, //ジャンプ PLAYER_STATE_DAMAGE, //ダメージ PLAYER_STATE_DIE, }; struct PLAYER{ Playerstate_t PlayerState; int y,x;...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ヘッダファイルでのインクルードについて
- 返信数: 8
- 閲覧数: 1799
ヘッダファイルでのインクルードについて
まずプレイヤーの構造体が定義されてるplayer.hと 武器の構造体が定義されてるwapon.hのふたつのヘッダファイルがあります。 //player.h #ifndef DEF_PLAYER_H #define DEF_PLAYER_H #include "wapon.h" typedef struct{ int py,px; int oldy,oldx; bool walkflag; . . . }PLAYER; void player_ini(PLAYER *p); void player_control(PLAYER *p); void player_attack(PLAYER *p,...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器や乗り物の画像について
- 返信数: 4
- 閲覧数: 1017
Re: 武器や乗り物の画像について
すいません解決ボタンを押し忘れました
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器や乗り物の画像について
- 返信数: 4
- 閲覧数: 1017
Re: 武器や乗り物の画像について
やはりそうですよね。
素材は分けて用意することにします。
お二方、アドバイスありがとうございました。
素材は分けて用意することにします。
お二方、アドバイスありがとうございました。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 武器や乗り物の画像について
- 返信数: 4
- 閲覧数: 1017
武器や乗り物の画像について
最近、武器や乗り物を使うキャラの素材を黙々と書いております。
そこで絵心の無いプログラマさんに質問です。
キャラが道具を扱う画像が必要になった時、どのように画像を用意してほしいですか?
ただ単に車の乗ってるキャラの画像一枚渡されればそれで済むのでしょうか?
それとも乗ってるキャラ、乗られてる車の二枚を用意してほしいのでしょうか?
アドバイス願います。
そこで絵心の無いプログラマさんに質問です。
キャラが道具を扱う画像が必要になった時、どのように画像を用意してほしいですか?
ただ単に車の乗ってるキャラの画像一枚渡されればそれで済むのでしょうか?
それとも乗ってるキャラ、乗られてる車の二枚を用意してほしいのでしょうか?
アドバイス願います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
プライベートの関係で、少し放置気味になってしまいました。すいません……
スクロールと当たり判定が、汚いとはいえ実装できましたし、ひとまずこれで解決とします。
softyaさん、図を用いたわかりやすい説明、ありがとうございます!
本当に助かりました。マジで。
ちょっと忙しくて手つかずなんですが、softyaさんのヒントをもとに改良を行ってみます。
それでなにかあったり、また別の疑問があったらまたここを利用させていただきます。
今回もありがとうございました!
スクロールと当たり判定が、汚いとはいえ実装できましたし、ひとまずこれで解決とします。
softyaさん、図を用いたわかりやすい説明、ありがとうございます!
本当に助かりました。マジで。
ちょっと忙しくて手つかずなんですが、softyaさんのヒントをもとに改良を行ってみます。
それでなにかあったり、また別の疑問があったらまたここを利用させていただきます。
今回もありがとうございました!
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
>>自分でテストして問題は無かったのでしょうか? はい問題ないです。 //カメラ座標 /*カメラのx座標 = プレイヤー座標(クォーター変化)- 画面の半分*/ p.camera_x = ((MAP_VIEW_OFFSET+MAP_PARTS_HSIZEX) + (p.x-p.y) * MAP_PARTS_HSIZEX/VTOP_PARTS_SIZEX /*- CHAR_PARTS_SIZEX/2*/) - SCREEN_WIDTH/2; p.camera_y = ((p.x+p.y)*MAP_PARTS_HSIZEY/VTOP_PARTS_SIZEY/* - CHAR_PARTS_SIZEY...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
スクロールできました! #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640 /*画面の幅*/ #define SCREEN_HEIGHT 480 /*画面の高さ*/ //チップの枚数 #define CHIP_NUMBER_X 30 /*横の数*/ #define CHIP_NUMBER_Y 24 /*縦の数*/ #define MAP_PARTS_HSIZEX 32 /*マップパーツの横サイズ(半分)*/ #define MAP_PARTS_HSIZEY 16 /*マップパーツの縦サイズ(半分)*/ #def...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
ああ、すいません!追記に気づいてませんでした。 //オフセット定数 #define MAP_VIEW_OFFSET 32 //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ if(MapData[y][x]==1){ DrawGraph(MAP_VIEW_OFFSET+MAP_PARTS_HSIZEX*(x-y), MAP_PARTS_HSIZEY*(x+y), map,TRUE); } } } //プレイヤー描画 DrawGraph((MAP_VIEW_OFFSET+MAP_PARTS_...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
MAP_VIEW_OFFSETってなんですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
定数ってやっぱ便利ですね。変えてみました。 #define MAP_PARTS_HSIZEX 32 /*マップパーツの横サイズ(半分)*/ #define MAP_PARTS_HSIZEY 17 /*マップパーツの縦サイズ(半分)*/ #define VTOP_PARTS_SIZEX 64 /*仮想トップビューのマップパーツの横サイズ*/ #define VTOP_PARTS_SIZEY 64 /*仮想トップビューのマップパーツの縦サイズ*/ //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
そっかintのせいだったんですね。 >>あと20/64って0.3125では? //マップ描画 for(int y=0;y<CHIP_NUMBER_Y;y++){ for(int x=0;x<CHIP_NUMBER_X;x++){ if(MapData[y][x]==1){ DrawGraph(32*(x-y), 17*(x+y), map,TRUE); } } マップ描画が17だったので合わせなきゃまずいかなと思い 17/64としてました。 >>移動前の座標を覚えておいて、当たり判定を移動後に行います。あたったら移動前の座標に戻します。 oldx,oldyという二つの変数を用意し、それに前もっ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
printfでのデバッグをしたところ各変数には問題が無かったため、 プレイヤー描画の計算の部分に問題があると思い、 以下のように変えたところ DrawGraph(32/64*(p.x-p.y) , 20/64*(p.x+p.y) , player[p.img] , TRUE); ↓ DrawGraph(0.5*(p.x-p.y) , 0.27*(p.x+p.y) , player[p.img] , TRUE); キャラがちゃんと動きました。 以下がコードの全体になります。 #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WID...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
移動の部分がくっそ汚いですけど、こんな感じで書いてみたところ #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 20 #define CHIP_NUMBER_Y 16 //プレイヤー構造体 typedef struct{ bool walkflag;//歩きフラグ int img,cnt,muki;//画像、カウンタ、向き int x,y;//座標 }PLAY; //マップデータ int Ma...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
aが32ならこれで大丈夫ですね。
drawx=(a+32)+32/64(topx-topy)
drawy=20/64(topx+topy)
drawx=(a+32)+32/64(topx-topy)
drawy=20/64(topx+topy)
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
できました!
drawx=(a+64)+32/64(topx-topy)
drawy=20/64(topx+topy)
この式で以下のものを計算すると
[0][0] (32,32) (64,20)
drawx = (a+64)+32/64(32-32) = (a+64)+0 = a+64
drawy = 20/64(32+32) = 20/64(64) = 20
drawxの(a+64)は(a+32)だとどうしても32たらない座標が出てしまったので64にしました
どうでしょうか?
drawx=(a+64)+32/64(topx-topy)
drawy=20/64(topx+topy)
この式で以下のものを計算すると
[0][0] (32,32) (64,20)
drawx = (a+64)+32/64(32-32) = (a+64)+0 = a+64
drawy = 20/64(32+32) = 20/64(64) = 20
drawxの(a+64)は(a+32)だとどうしても32たらない座標が出てしまったので64にしました
どうでしょうか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
トップビューの座標を(topx,topy) クォーターの座標を(quotax,quotay) として マップ トップ クォータ (0,0) (32,32) (64,20) (1,0) (96,32) (96,40) (2,0) (160,32) (128,60) (0,1) (32,96) (32,40) (1,1) (96,96) (64,60) (2,1) (160,96) (96,80) quotaxはtopxが64増えると32づつ増える、topyが64増えると32づつ減る quotayはtopxが64増えると20づつ増える、topyが64増えると20づつ増える こんな感じですかといいた...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
マップ配列 クォータマップ中央座標 変換前マップ中央座標
[0][0] (64,20) (32,32)
[0][1] (96,40) (96,32)
[0][2] (128,60) (160,32)
[1][0] (32,40) (32,96)
[1][1] (64,60) (96,96)
[1][2] (96,80) (160,96)
どうですか?
[0][0] (64,20) (32,32)
[0][1] (96,40) (96,32)
[0][2] (128,60) (160,32)
[1][0] (32,40) (32,96)
[1][1] (64,60) (96,96)
[1][2] (96,80) (160,96)
どうですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
なるほどそういうことだったのか
トップとクォーターごちゃまぜにしてました
埋めてみよということでこんな感じに埋めてみました
どうでしょう?
トップとクォーターごちゃまぜにしてました
埋めてみよということでこんな感じに埋めてみました
どうでしょう?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
画像うまくはれてるかな?
最初、p00が配列要素の左上端っこにあったら、(64,32)だとおもったんですが、
画像のように考えれば(32,32)なのかなと
最初、p00が配列要素の左上端っこにあったら、(64,32)だとおもったんですが、
画像のように考えれば(32,32)なのかなと
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
中心座標は
(32,0)かな?
(64,32)は[0][1]の中心座標です。
(32,0)かな?
(64,32)は[0][1]の中心座標です。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
すいません、少し勘違いしてました
[0][0]
(64,32)
(32,32)
です。
>>書いてて心配になって来ましたが、トップビュー表示でキャラクターの移動とかプログラムは理解できているのでしょうか?
これが分かっていないと意味が無いのですが。
ゲームプログラミングの館の一区間歩かせる、行けないところを作るなどのことですか?
そこなら一応理解はしてるつもりです。
[0][0]
(64,32)
(32,32)
です。
>>書いてて心配になって来ましたが、トップビュー表示でキャラクターの移動とかプログラムは理解できているのでしょうか?
これが分かっていないと意味が無いのですが。
ゲームプログラミングの館の一区間歩かせる、行けないところを作るなどのことですか?
そこなら一応理解はしてるつもりです。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
[0][0] (999,999) (64,32)
ですか?
ですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
>>で、マップパーツの中心にPleyerキャラクタが立っていると仮定した場合の[0][0]ブロックのPleyerキャラクタの座標は(999,999)であると書 きだしてみてください。
それとクォータビューではないDrawGraph(p.x,p.y,player[p.img],TRUE);の座標として扱った場合の座標もその横に書き出します。
(999,999) (64,20)
こういった感じですか?
それとクォータビューではないDrawGraph(p.x,p.y,player[p.img],TRUE);の座標として扱った場合の座標もその横に書き出します。
(999,999) (64,20)
こういった感じですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
すいません、返信が遅くなりました。
ひとまず方眼用紙にあの図を書いてみましたが、
そこからどうしたらいいかわかりません……
前はp01を求めよという課題があったため、なにをどうすればいいのか大体把握できたのですが
今回はこの図をどう利用するかが見当がつきません。
ひとまず方眼用紙にあの図を書いてみましたが、
そこからどうしたらいいかわかりません……
前はp01を求めよという課題があったため、なにをどうすればいいのか大体把握できたのですが
今回はこの図をどう利用するかが見当がつきません。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
プレイヤー座標をクォーターに?
マップは配列の要素数を足したり引いたりして変えましたが、
配列要素の無いプレイヤー座標をどうやって変えるんです?
マップは配列の要素数を足したり引いたりして変えましたが、
配列要素の無いプレイヤー座標をどうやって変えるんです?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
Re: クォーターの当たり判定とスクロール
#include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT 480; //チップの枚数 #define CHIP_NUMBER_X 20 #define CHIP_NUMBER_Y 16 //プレイヤー構造体 typedef struct{ bool walkflag;//歩きフラグ int img,cnt,muki;//画像、カウンタ、向き int x,y;//座標 }PLAY; //マップデータ int MapData[ CHIP_NUMBER_Y ][ CHIP_N...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォーターの当たり判定とスクロール
- 返信数: 44
- 閲覧数: 6616
クォーターの当たり判定とスクロール
ロックマンエグゼのマップ移動。キングダムハーツCOMのマップ移動。BASTIONの移動。 これらの”クォーター視点のステージをキャラが縦横無尽に動き回る” それの当たり判定とスクロール方法ってどうなっているんだろう? 今回はそんな質問をしに来ました。 ついこの前、クォーターでの描画方法をここで教えてもらい、その後、教えてもらった方法で描画したマップの上をキャラが走るようにしてみました。 これがそのプログラムです。 #include"DxLib.h" #include"Key.h" //画面の大きさ #define SCREEN_WIDTH 640; #define SCREEN_HEIGHT ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
やっぱり質問してよかったです。 ここまで丁寧に教えてもらえるなんて本当に感謝です。 ジャンプ、マップエディタの時といいソフト屋さんにはお世話になってばかりです。 クォーターの説明を見てると数式ばかりでてきて、 ここの過去のクォーター関連の質問も難しい数学の知識を使ったうえでの説明ばかりというか、 質問者がすでにベクトルを使ったうえで質問をしていたので、 ああ、やっぱり数学わかってないとだめだな。 数学Bの白チャート一冊終えるまでクォーターはあきらめよう と思ってたんです。 でも一応、だめもとで質問してみるか、と今回、質問したら まさかこんなにもわかりやすい答えが返ってくるとは……思ってもみなか...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
drawx=32(-mapx+mapy)
drawy=20(mapx+mapy)
こうですね!
drawy=20(mapx+mapy)
こうですね!
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
drawx は mapxが1増えると 32 づつ減少し、mapyが1増えると 32 づつ増加します。
drawy は mapxが1増えると 20 づつ増加し、mapyが1増えると 20 づつ増加します。
(1)32
(2)32
(3)20
(4)20
こうですか?
drawy は mapxが1増えると 20 づつ増加し、mapyが1増えると 20 づつ増加します。
(1)32
(2)32
(3)20
(4)20
こうですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
p02(a+64,40), p10(a-32,20), p11(a,40), p12(a+32,60)
です!
すげー!わかりやすい!
こうなってるんですね!
です!
すげー!わかりやすい!
こうなってるんですね!
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
あ、これよく見たら菱形の半分
p00からp01のy方向の距離がちょうど菱形の縦幅の半分、40の半分、20です。
それでp00からp01のx方向距離が、ちょうど菱形の横幅の半分、64の半分、32です。
えっとだからp01の座標は
p01(a+32,20)
です!
p00からp01のy方向の距離がちょうど菱形の縦幅の半分、40の半分、20です。
それでp00からp01のx方向距離が、ちょうど菱形の横幅の半分、64の半分、32です。
えっとだからp01の座標は
p01(a+32,20)
です!
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
順序が逆でしたね。本来の目的を忘れていた。
やり直します
やり直します
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
p01(x,y)として、公式に当てはめると
x=32(1-0)
y=20(1+0)
こうなって、けいさんすると
p01の座標は(32,20)。
ほかの座標も同じように計算すると、
p02(64,40)、p10(-32,20)、p11(0,40)、p12(32,60) となる。
これであってます?
x=32(1-0)
y=20(1+0)
こうなって、けいさんすると
p01の座標は(32,20)。
ほかの座標も同じように計算すると、
p02(64,40)、p10(-32,20)、p11(0,40)、p12(32,60) となる。
これであってます?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
ピクセルの座標ではなく、配列の添字を代入してもおかしな数字になりますね。 カッコ内の個数のそれぞれにチップの幅をかけるのは間違いというのはなんとなくわかりました。 トップビューなどでやっていた 横の個数×チップの横幅 この計算式は、配列要素をピクセルの座標へ変えるトップビュー版の座標変換の公式?であって、 このクォータの座標変換の公式の CHIP_WIDTH(X-Y)のX,Yの部分を求めるものではない。そもそも別物であるということですよね? ほんとなんとなくですが、自分の間違いに気づけました。 ただなぜクォーターだと個数同士を足したり引いたりするのかがまだわかりません。 それにチップの幅の半分...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
Idraさんが説明してくれたベクトルのやり方は、 ベクトルのベの字も知らないぼくがそれをしっかり学んでからということで 今はソフト屋さんの穴埋め問題を解いて、クォーターの理解を深めたいと思います。 Idraさんわざわざ教えてくださったのにすみません…… で、この穴埋め問題を解く前に一つお尋ねしたいことがあります。 >>”ピクセルの座標系”と”マップチップ配列の座標系”が混同されています。 >>”クォータビューの座標系”での点を”スクリーンの座標系”を使って表現すると考えます。 座標系?一体なんなんだそれはぁーっ!? 初耳すぎて驚きを隠せません。ゲームに使う座標には種類があるということですか? ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
64×40のチップを普通に並べて表示すると、 //マップデータ int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
>>softya(ソフト屋)さん
うわ、ブラジル便利。
とてもわかりやすい説明ありがとうございます。
早速、計算してみます。
>>Idraさん
アドバイス感謝です。
文系だったので数学Bまではやってないですね……
ベクトルはさっぱりです!
なので、数学Bの白チャートと4stepという問題集があるので、それで勉強してみます。
これだけで十分理解できますかね?
もし、それだけじゃ足りない、チャートなんかよりいい本あるよ、などなど何かあったら
アドバイスお願いします。
うわ、ブラジル便利。
とてもわかりやすい説明ありがとうございます。
早速、計算してみます。
>>Idraさん
アドバイス感謝です。
文系だったので数学Bまではやってないですね……
ベクトルはさっぱりです!
なので、数学Bの白チャートと4stepという問題集があるので、それで勉強してみます。
これだけで十分理解できますかね?
もし、それだけじゃ足りない、チャートなんかよりいい本あるよ、などなど何かあったら
アドバイスお願いします。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
ひとまずソフト屋さんのアドバイス通り、コードを //マップ描画 for(int y=0;y<MAP_HEIGHT;y++){ for(int x=0;x<MAP_WIDTH;x++){ if(MapData[y][x]==1){ int chip_x = CHIP_WIDTH*( x*CHIP_WIDTH + y*CHIP_HEIGHT); int chip_y = CHIP_HEIGHT*( x*CHIP_WIDTH - y*CHIP_HEIGHT); DrawGraph(chip_x, chip_y, map,TRUE);//ここの部分 } } } } このようにコードを整理し、デバッグを...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
いろいろ、と言うほどいじってないんですが、 このプログラムでのチップのX座標とY座標がわからず、止まっております。 トップビューなどでは64×64の画像で DrawGraph(j*64,i*64,map,TRUE); で描画していました。なので #include"DxLib.h" #define CHIP_WIDTH 64 #define CHIP_HEIGHT 44 #define MAP_HEIGHT 8 #define MAP_WIDTH 10 //マップデータ int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] = { { 0, 0, 0, 0, 0, 0, ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
Re: クォータービューについて
CHIP_Xがそのチップの横幅。 CHIP_Yがそのチップの縦幅。 X,Yがそのチップの座標という認識でいいんですよね? つまり #include"DxLib.h" #define CHIP_SIZE 64 #define MAP_HEIGHT 8 #define MAP_WIDTH 10 //マップデータ int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: クォータービューについて
- 返信数: 30
- 閲覧数: 6371
クォータービューについて
ふと疑問になったのでクォータービューについて質問します。 雑談に近い、ほんとしょーもないくだらない質問です。 こういう質問っていいんでしょうか?もしあれだったら以後二度とこのような質問はしません。 今まで僕は、しょぼいサイドビュー、しょぼいトップビューのゲームしか作ったことが無いんですが、 それらとクォータービューってプログラム上はなにが違うんでしょうか? クォーターなんて画像変えるだけでどうにかなるんじゃないのと思ってたら 意外と思うように描画ができなかったので戸惑い、検索してみたところ サイド、トップなどとは違い特殊な計算法、W(X-Y),H(X+Y)で描画するんだよとか、 描画順に注意し...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
解決にチェックマークをいれ忘れました……
すいません!
すいません!
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
//使われてないリンゴ検索関数 int apple_num_search(APPLE apple[APPLE_MAX]){ for(int i=0;i<APPLE_MAX;i++){ if(apple[i].flag==false){ return i; } } return -1; } //読み込んだ数値をリンゴに代入する関数。 void aenter(APPLE apple[APPLE_MAX],A_FILE a_file[APPLE_ORDER_MAX]){ int i,j; for(j=0;j<APPLE_ORDER_MAX;j++){ if(a_file[j].cnt==stage...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
いろいろ試行錯誤した結果、 //使われてないリンゴ検索関数 int apple_num_search(){ APPLE apple[APPLE_MAX]; for(int i=0;i<APPLE_MAX;i++){ if(apple[i].flag==false){ return i; } } return -1; } //読み込んだ数値をリンゴに代入する関数。 void aenter(APPLE apple[APPLE_MAX],A_FILE a_file[APPLE_ORDER_MAX]){ int i,j; for(j=0;j<APPLE_ORDER_MAX;j++){ if(a_fil...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
できました!
60行目
num 0 int
a_file[n].cnt 100 int
a_file[n].y -9.2559631349317831e+061 double
a_file[n].knd -858993460 int
a_file[n].vy -9.2559631349317831e+061 double
a_file[n].x -9.2559631349317831e+061 double
なんかカウント以外とんでもない数値が入っちゃってます
60行目
num 0 int
a_file[n].cnt 100 int
a_file[n].y -9.2559631349317831e+061 double
a_file[n].knd -858993460 int
a_file[n].vy -9.2559631349317831e+061 double
a_file[n].x -9.2559631349317831e+061 double
なんかカウント以外とんでもない数値が入っちゃってます
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
ウォッチに何も出ない……
デバッグ、ウィンドウ、のウォッチ1でいいんですよね?
デバッグ、ウィンドウ、のウォッチ1でいいんですよね?
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
Re: CSV読み込みについて
返信ありがとうございます! さっそく、ブレークポイント設置して、デバッグをしてみました 呼び出し履歴のところを見ればいいんですよね? まず60行目はこう出ました。 ・60行目 > ringo-.exe!aload_story(A_FILE * a_file=0x0023a4b8) 行 60 C++ ringo-.exe!WinMain(HINSTANCE__ * hInstance=0x00800000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00253ebe, int nCmdshow=1) 行 25 + 0xc...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: CSV読み込みについて
- 返信数: 12
- 閲覧数: 2037
CSV読み込みについて
二ヶ月前にこんな質問をしたものです。 アクションゲームにおける敵キャラとマップの管理 http://dixq.net/forum/viewtopic.php?f=3&t=11517 C#勉強とマップエディタ作りの息抜きに軽くリンゴ拾いゲームを作り、 この際だからCSVについての勉強もついでにやっちゃおうと思い、 落ちてくるリンゴをCSVで管理する試みをしました。 今回読み込みたいCSVの中身はこんな感じです。 /カウンタ,種類,x座標,y座標,y加速度 /cnt,knd,x座標,y座標,vy 100,0,124,10,5 110,0,300,20,5 120,0,480,10,5 130,0,...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップエディタ作ってみました
- 返信数: 9
- 閲覧数: 2423
Re: マップエディタ作ってみました
こんなに早くお答えいただくとは、感謝感謝です。 本って高いからこうおすすめ教えていただくと本当に助かります。 地雷踏むと最悪ですからね…… さっそく、softyaさんおすすめの独習C# 第三版と、ひと目でわかるMicrosoft Visual C# 2010アプリケーション開発入門を amazonで注文してきました。早く来ないかな。 翡翠さんおすすめのやさしいC#は図書館にあったので予約しました。明日あたり手に入ると思います。 やさしいシリーズいいですよね。初心者の時、大変お世話になりました。 僕以外にもマップエディタ作ってる人がいるっていうのはなんというかとても励みになります。 お互い頑張り...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップエディタ作ってみました
- 返信数: 9
- 閲覧数: 2423
Re: マップエディタ作ってみました
お二方、返信ありがとうございます。 >DXライブラリでも一応メニューをつけたり (少し苦労をすれば)自作でスクロールバーをつけたりはできるのですが…… >涼雅さんの言われる通りDXライブラリではSetupToolBar()でツールバーやSetUseMenuFlag()でメニューバーの処理が可能であり、スクロールは自前でやる必要があるでしょうね。 そうなんですか!勉強になります ゲームにセーブ機能つけるついでいやってみます >GUIアプリを作るならC#がお勧めです。 オブジェクト指向言語なので知識がないと少し戸惑うかもしれませんが………… >本格的にWindowsのパーツを使いたいならC#に移っ...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップエディタ作ってみました
- 返信数: 9
- 閲覧数: 2423
Re: マップエディタ作ってみました
返信ありがとうございます。 機能ちょっとずつ足していきます。 でも、そろそろWIN32APIを勉強したほうがいいですかね? こういったツールにそれなりの機能つけるにはやっぱりライブラリだけでは限界がある気がします。 softyaさんが指摘してくださった追加したほうがいい機能はライブラリだけでも行けそうですけど、 スクロールバーとかメニューバーとかつけて、 普通のアプリのようにするならばやっぱりwindowsの勉強をしなきゃいけないのではないだろうか? と感じています。メニューを押して上書き保存を選択とか ひとまずここを見ながらちまちまとやっています。といってもまだウィンドウを作るしかやってませ...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップエディタ作ってみました
- 返信数: 9
- 閲覧数: 2423
マップエディタ作ってみました
先月、こんな質問をした者です。 アクションゲームにおける敵キャラとマップの管理に http://dixq.net/forum/viewtopic.php?f=3&t=11517 ドット絵などの素材作りなどいろいろやってたせいで beatleさんとsoftyaさんのアドバイスの実践、それに対する返信がかなり遅れてしまいましたが…… beatleさん、softyaさん、本当にすみません! ひとまず自分なりにマップエディタを作ってみました。 これがそのソースコードになります。 #include "DxLib.h" #include <stdio.h> #define CHIP_SIZE 32 #de...