Re:パネルの反転について
Posted: 2010年4月16日(金) 07:20
by conio
もう一度確認しますが、
カーソルがMap_01[2][2]の場所にあった場合、
下記の様に変化(反転)させたい、と言う事で宜しいでしょうか?
--------------------------------------------
int Map_01[CEL_H][CEL_W] = {
{0, 0,0,0, 0,0,0, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 0,0,0, 0,0,0, 0}
};
↓
int Map_01[CEL_H][CEL_W] = {
{0, 0,0,0, 0,0,0, 0},
{0, 2,3,1, 1,2,3, 0},
{0, 1,3,2, 2,3,2, 0},
{0, 2,2,1, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 1,2,3, 1,2,3, 0},
{0, 3,2,1, 2,3,2, 0},
{0, 1,1,3, 2,3,2, 0},
{0, 0,0,0, 0,0,0, 0}
};
--------------------------------------------
違うのであれば指摘してください。
あと、PLAYERクラスが持つメンバPazzとは何を表しているのでしょうか?
128個用意しているみたいなのですが。
----------------------------------------------------
#define OBJ_MAX 128
typedef struct{
bool Flg;
float Px,Py; // 位置座標
float Mx,My; // 移動速度
int Cx,Cy; // セル
int Ptn; // パターン
int Num; // ナンバー
}OBJECT;
OBJECT Pazz[OBJ_MAX];
----------------------------------------------------
あと、「構造体で実装したい」との事でしたが、
具体的に何を構造体にしようとしているのでしょうか?
PANEL型の構造体の2次元配列を作成して、その値を1→2→3と言う風に変えるというのでは
駄目なのでしょうか?
Re:パネルの反転について
Posted: 2010年4月16日(金) 08:15
by 猫旅
>>conio様
何度も本当に回答ありがとうございます。
>>PANEL型の構造体の2次元配列を作成して、その値を1→2→3と言う風に変えるというのでは
>>駄目なのでしょうか?
最初はそのように実装しておりました・・・。
最初は構造体なしに実装しておりました。
それで問題なく反転処理は動いておりました。
問題があったのは起動時に必ず32ドット落下してしまうということです。
しかしこちらで質問させて頂いた所、構造体でパネルの座標などを
持った方が良いと指摘して頂いたのでそれで実装しようとしております。
int Map_01[CEL_H][CEL_W]は初期化用の配列です。
PLAYERクラスが持つメンバPazzはパネル一つ一つの座標等を格納している構造体です。
取りあえずはカーソルの位置だけの反転をしてみようと思っております。
毎フレームPLAYERクラスが持つメンバのMapにそこにあるパネルのナンバーを入れていきます。
{0, 0,0,0, 0,0,0, 0},
{0, 1,2,3, 4,5,6, 0},
{0, 7,8,9, 10,11,12, 0}, ...
この数字を使って○番のパネルの構造体にアクセスするといったような仕様にしようと考えております。
しかし現在、添付させて頂いたソースでは変な位置のパネルが反転してしまいます。