cocos2d-x(終) 逆イテレーター

こんにちは、インターン生の宮本です。

いよいよ今回で最後です。

突然ですが、今までエミュレータを使用して開発していました。

今回になって初めて自分のデバイスにつないで実行しましたが、解像度の差のためか遊べないほどではありませんがレイアウトが崩れていました。思えば、画像のサイズでレイアウトしていました。対応している時間がないため、エミュレータのままで進めます。

見栄えが非常に悪いですが、遊べるようにはなりました。

調整をする時間がありませんでしたが。一応完成させることができ良かったです。

相手の操作を実装するときに逆イテレータで苦労したため、
今回は逆イテレータについて、少しまとめようと思います。

まず最初に、イテレータとはポインタのようなもので主にコンテナに対して使います。

逆イテレータとは、名前からも想像がつきそうですが、後ろから初めに向かって進むイテレータです。

逆イテレータのbase()メソッドで同じ要素を参照しようとするときは、一つ前にずらす必要があります。

逆イテレータは基本的には、イテレータと同様に使用できますが、erase()などvectorの一部のメソッドは逆イテレータを引数にすることができません。リファレンスを参照すると逆イテレータには、元となったイテレータを返すメソッドがあります。

早速これを使用し、erase()を使いますが。少しずれた要素が削除されてしまいました。
試行錯誤して、base()-1でerase()を使用したところ。目的の要素を削除することができました。

逆イテレータを使用しているとき、同じ要素を指すイテレータはbase()-1でd求められるようです。

参考:https://qiita.com/hotwatermorning/items/ec44d295798f67a1b135

時間に余裕がなく読み込んでいないので詳しくはわかりませんが、
どうやら配列の[-1]を参照しないためにこのようなことになっているようです。

思えば、全然ゲーム制作のことを書いていない気がしますが、最後までお付き合いありがとうございました。

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー