<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>とある文系SEの開発日記</title>
<link>https://ameblo.jp/beginner-engineer/</link>
<atom:link href="https://rssblog.ameba.jp/beginner-engineer/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>文系学部から某SIerに就職が決まったぺーぺーエンジニアのブログ</description>
<language>ja</language>
<item>
<title>「Conversion to Dalvik format ～」への対処法</title>
<description>
<![CDATA[ AndEngineを使っててAPKに変換しようとすると<br><br><br><br>「<font color="#FF0000"><strong>Conversion to Dalvik format failed with error 1</strong></font>」これがガンガン出てくる！うざいほどに！<br><br><br>多分原因はAndEngineのプロジェクトをライブラリの参照に追加してるからだと思われる<br><br><br><br>そこで色々ぐぐってみると何とか解決できた<br><br><br>やり方は<br><br>１、まずライブラリの「AndEngine」を削除する。<br><br>２、「AndEngine」の"libs"の中身を、自分のプロジェクトの"libs"にコピー<br><br>３、「AndEngine」の"bin &gt; andengine.jar"を、自分のプロジェクトの"libs"にコピー<br><br>４、自分のプロジェクトの"プロパティ&gt;ビルドパス&gt;Jarの追加"でさっきの"andengine.jar"を追加<br><br>５、"プロパティ&gt;ビルドパス&gt;順序およびエクスポート"でandengine.jar"にチェック<br><br><br>これで解決した<br><br><br>なんか色々AndEngineはめんどくさいことが多い…
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11671325700.html</link>
<pubDate>Tue, 05 Nov 2013 19:42:48 +0900</pubDate>
</item>
<item>
<title>AndEngineでゲームを作ってみた</title>
<description>
<![CDATA[ 脳トレしながらＬｖが上がるＲＰＧを作りたい！と思いゲーム開発を始めました。<br><br><br><br>以前作ったゲーム（ただのもぐらたたき）はCanvasにSurfaceViewやらを駆使して無理矢理形にしたゲームだったので、今回はゲームエンジン（フレームワーク）を使おうと思いました。<br><br><br>今回はAndEngineを使いました<br><br><br>AndEngineはプログラミング歴３か月で「<strong><font color="#FF0000">AndEngineでつくる２Ｄゲーム</font></strong>」という本を買って挑戦したのですが、訳が分からなくて挫折しました<br><br><br>ですがあれから半年経って読み返してみると…<br><br><br>わかる！！わかるぞ！！<br><br><br>本に書いてあることが分かる！半年で結構成長したようです<br><br><br>そして完成したアプリがこれです↓<br><br><a href="https://play.google.com/store/apps/details?id=nickel.app.notorequest&amp;hl=ja" target="_blank">⇒脳トレクエスト</a><br><br><a href="http://stat.ameba.jp/user_images/20131104/19/beginner-engineer/62/39/p/o0484085912738731055.png"><img src="https://stat.ameba.jp/user_images/20131104/19/beginner-engineer/62/39/p/t02200390_0484085912738731055.png" alt="とある文系SEの技術記録" width="220" height="390" border="0"></a>　<a href="http://stat.ameba.jp/user_images/20131104/19/beginner-engineer/ae/2b/p/o0484085912738731054.png"><img src="https://stat.ameba.jp/user_images/20131104/19/beginner-engineer/ae/2b/p/t02200390_0484085912738731054.png" alt="とある文系SEの技術記録" width="220" height="390" border="0"></a><br><br><br>AndEngineは効果音再生したりとか画像表示させたりとかがいちいちめんどくさいです。<br><br><br>メリットはSceneを使って画面を変えれるという点と、「AndEngineでつくる…」に載ってあるサンプルを見れば大体のことは解決できるという点です。<br><br><br>AndEingine使うなら絶対この本は買った方がと思います<br><br><br>AndEngineは使い始めこそ苦戦しますが、一回完成させると次から簡単にアプリが作れそうです<br><br><br>今度は話題のUnityで作ってみようかな<br>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11669007551.html</link>
<pubDate>Mon, 04 Nov 2013 18:38:24 +0900</pubDate>
</item>
<item>
<title>図形の重なり判定(当たり判定)</title>
<description>
<![CDATA[ ゲームなどでよく使う当たり判定<br><br><br>やり方としてはキャラクターの領域を調べて、重なりがあれば当たり判定という感じ<br><br><img src="https://stat.ameba.jp/user_images/20131029/10/beginner-engineer/e8/48/j/t02200220_0400040012731655732.jpg" alt="とある文系SEの技術記録" width="220" height="220" border="0"><br><br><br>四角形の当たり判定のアルゴリズムを調べてたら出てきたのがこれ<br><br><pre><br><code><br>//重なりがあればtrueを返す<br>boolean isDuplicate() {<br>    Rect r1 = new Rect(x1, y1, w1, h1);<br>　　Rect r2 = new Rect(x2, y2, w2, h2);<br><br>　　boolean checkX = false;<br>　　boolean checkY = false;<br>　　<br>　　if((x1 &gt;= x2) &amp;&amp; ((x2+w2) &gt;= x1))<br>    　　checkX = true;<br>    else if((x2 &gt;= x1) &amp;&amp; ((x1+w1) &gt;= x2))<br>            checkX = true;<br>    if((y1 &gt;= y2) &amp;&amp; ((y2+h2) &gt;= y1))<br>        checkY = true;<br>    else if((y2 &gt;= y1) &amp;&amp; ((y1+h1) &gt;= y2))<br>        checkY = true;<br><br>    return (checkX &amp;&amp; checkY)<br>　　<br>}<br></code><br></pre><br><br><br>これで当たりを判定ができた。<br><br><br>でもこれでやるとx,y,1,2とか大量に書くので超見にくい。<br><br><br><br>そこで、Rect.intersects()という便利なメソッドを使えばもっと簡単にできた<br><br><br>これを使うと<br><br><pre><br><code><br>boolean isDuplicate() {<br>　　Rect r1 = new Rect(x1, y1, w1, h1);<br>　　Rect r2 = new Rect(x2, y2, w2, h2);<br><br>　　return Rect.intersects(r1, r2);<br>}<br></code><br></pre><br><br>これだけで済む<br><br><br>intersects(Rect rect1, Rect rect2)はrect1とrect2に重なりがあればtrueを返すという構造<br><br><br>超便利です<br><br><br><br>シューティングゲームの当たり判定とかで重宝します<br><br><br><br>例えば<br><pre><br><code><br>class  Charactor {<br>private int x,y,w,h;<br><br>Charactor(int x, int y, int w, int h) {<br>this.x = x;<br>this.y = y;<br>this.w = w;<br>this.h = h;<br>}<br><br>public Rect getRect(){<br>return new Rect(x,y,w,h);<br>}<br>}<br><br>class Bullet extends Charactor{<br><br>public Bullet(int x, int y, int w, int h){<br>super(x,y,w,h);<br>}<br>}<br><br>class Enemy extends Charactor{<br><br>public Enemy(int x, int y, int w, int h){<br>super(x,y,w,h);<br>}<br>}<br></code><br></pre><br><br><br>こんな感じでキャラクター全般、弾、敵クラスを作って<br><br><pre><br><code><br><br>Bullet bullet = new Bullet(20,20,20,20);<br>Enemy enemy = new Enemy(50,50,50,50);<br><br><br>//当たり判定<br>public boolean isDuplicate(Rect r1,Rect r2) {<br>　　return Rect.intersects(r1, r2);<br>}<br><br></code><br></pre><br><pre><br><code><br>//bulletとenemyの当たり判定を調べる<br><br>isDuplicate(bullet.getRect(), enemy.getRect());<br><br></code><br></pre><br><br><br>こんな感じで使えたりします<br><br>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11657439956.html</link>
<pubDate>Tue, 29 Oct 2013 10:31:17 +0900</pubDate>
</item>
<item>
<title>ArrayListのindexについて</title>
<description>
<![CDATA[ すごく基本的なことかもしれないがArrayListのデータのindexについて誤解があったのでメモっておく<br><br><br><br><pre><br><code><br>ArrayList<string> array = new ArrayList<string>();<br><br>array.add("A");<br>array.add("B");<br>array.add("C");<br>array.add("D");<br></string></string></code><br></pre><br><br>例えばこんな感じでデータを格納したとする。<br><br>index0　←　Ａ<br>index1　←　Ｂ<br>index2　←　Ｃ<br>index3　←　Ｄ<br><br><br>このとき、<br><br>array.remove(1);<br><br>index1の要素"Ｂ"を取り除くとどうなるか<br><br><br>index1　←　？<br><br><br>結果的には<br><br>index1 ←　Ｃ<br><br>となる。<br><br><br>この辺を少し誤解していました。<br><br><br>index1が変数みたいに、nullになってしまうんじゃないかという勘違い<br><br><br>要素が前に詰められるんですね。<br><br><br>詰められるという表現も微妙な所ですが、とりあえずそういう覚え方でいこうと思います<br><br><pre><br><code><br>public class ArrayListTest {<br><br>public static void main(String[] args) {<br><br>ArrayList＜String＞ array = new ArrayList＜String＞();<br><br>array.add("A");<br>array.add("B");<br>array.add("C");<br>array.add("D");<br><br>array.remove(1);<br><br>System.out.println(array.get(0));<br>System.out.println(array.get(1));<br>System.out.println(array.get(2));<br><br>}<br>}<br><br></code><br></pre><br><br>【実行結果】<br><pre><br><code><br>A<br>C<br>D<br></code><br></pre>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11657352091.html</link>
<pubDate>Tue, 29 Oct 2013 09:34:50 +0900</pubDate>
</item>
<item>
<title>懐中電灯アプリの作り方</title>
<description>
<![CDATA[ アメリカのスマホのダウンロードランキングを見てたら懐中電灯アプリが結構上位だったのでちょっと作ってみようと思いました<br><br><br><br>作ってみると超簡単で２０分ぐらいでできました<br><br><br><br>これで他のアプリと差をつけようと思ったらデザインで差をつけるしかなさそうです…<br><br><br><br>一応コードも載せておきます<br><br><br><br><br><pre><br><code><br>import android.os.Bundle;<br>import android.view.View;<br>import android.view.Window;<br>import android.widget.Button;<br><br>import com.flashlight.R;<br><br>/**<br> * メインアクティビティ<br> * @author shingo<br> *<br> */<br>public class FlashLightActivity extends Activity {<br>        <br>　　　　//カメラオブジェクト<br>private Camera camera;<br><br>//カメラのモード<br>private String cameraMode;<br>　　　　<br>　　　　//電源ボタン<br>private Button switchBtn;<br><br>//スイッチフラグ<br>//1なら点灯、-1なら消灯<br>int switchFlag;<br><br><br><br>@Override<br>protected void onCreate(Bundle savedInstanceState) {<br>super.onCreate(savedInstanceState);<br>requestWindowFeature(Window.FEATURE_NO_TITLE);<br>setContentView(R.layout.main);<br><br>switchBtn = (Button)findViewById(R.id.switch_btn);<br><br>                camera = Camera.open();<br><br>//カメラの初期設定(点灯)<br>cameraMode = Camera.Parameters.FLASH_MODE_TORCH;<br>switchFlag = 1;<br><br>setCameraParameters();<br>}<br><br>//カメラのon、offスイッチ<br>public void onSwitch(View view) {<br>switchFlag *= -1;<br>if(switchFlag &gt; 0) {<br>cameraMode = Camera.Parameters.FLASH_MODE_TORCH;<br>switchBtn.setBackgroundResource(R.drawable.btn_on);<br>}else{<br>cameraMode = Camera.Parameters.FLASH_MODE_OFF;<br>switchBtn.setBackgroundResource(R.drawable.btn_off);<br>}<br><br>setCameraParameters();<br>}<br><br>//カメラの呼び出し、設定を行う<br>public void setCameraParameters() {<br>Camera.Parameters params= camera.getParameters();<br>    　　params.setFlashMode(cameraMode);<br>   　　 camera.setParameters(params);<br>   　　 camera.startPreview();<br>}<br><br>@Override<br>     　 public void onStop(){<br>       　 　　　super.onStop();<br>        　　　　camera.release();        <br>    　　}<br> 　<br>   　 　@Override<br>    　　public void onPause(){<br>        　　　　super.onPause();<br>        　　　　finish();<br>    　　}<br><br>}<br><br></code><br></pre><br><br>●Manifest.xmlに追加したコード<br><pre><br><code><br>＜uses-permission android:name="android.permission.CAMERA"/＞<br>＜uses-feature android:name="android.hardware.camera" /＞<br>＜uses-feature android:name="android.hardware.camera.autofocus"/＞<br></code><br></pre><br><br><br><br>こんな感じです。。。<br><br><br>カメラを呼び出しているので結構電池消費するのかな？？<br><br>その辺はわからない…<br><br><br>switchFlagに-1を掛けてオン、オフの制御を行う当たりが独学でプログラム覚えた人のコードって感じがします<br><br><br>糞みたいコードですいません<br><br><br>もっと勉強します<br><br>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11655756107.html</link>
<pubDate>Mon, 28 Oct 2013 07:41:12 +0900</pubDate>
</item>
<item>
<title>金属のような光沢を出す方法</title>
<description>
<![CDATA[ ちょっとメタリックな質感のアイコンを作りたいと思っていたら良い記事を見つけました<br><br><br><br><a href="http://gimp2-how-to-use.blogspot.jp/2012/02/appleicloud.html" target="_blank">⇒GIMP2の使い方</a><br><a href="http://blog.livedoor.jp/kamikaze_cyclone/archives/16041056.html" target="_blank">⇒初心者によるブログの勉強のためのブログ</a><br><br><br>このとおりマネすればできました。<br><br><br>なんともありがたい。
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11654492690.html</link>
<pubDate>Sun, 27 Oct 2013 11:57:09 +0900</pubDate>
</item>
<item>
<title>Handerの使い方</title>
<description>
<![CDATA[ Handerは"この処理を２秒後に実行して欲しい"みたいなときによく使う<br><br><br>使い方<br>【１秒後にdoMethod()を実行】<br><br><pre><br><code><br>new Handler().postDelayed(new Runnable() {<br>     <br>     @Override<br>     public void run() {<br>          /*<br>           * 実行内容<br>　　　　　 */<br>          doMethod();<br>     }<br><br>},1000);<br></code><br></pre><br><br><br>かなり省略しましたが、分けて書くとこうなります<br><pre><br><code><br>Handler handler = new Handler();<br><br>Runnable run = new Runnable() {<br><br>     @Override<br>     public void run() {<br>          /*<br>           * 実行内容<br>　　　　　 */<br>          doMethod();<br>     }<br>}<br><br>handler.postDelayed(run, 1000);<br></code><br></pre><br><br><br>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11653887965.html</link>
<pubDate>Sun, 27 Oct 2013 00:25:35 +0900</pubDate>
</item>
<item>
<title>Androidでノベルゲームを作ってみる⑤</title>
<description>
<![CDATA[ ギャルゲーで使えるフリーの絵ないかなーと探していたらイイものを見つけました<br><br>⇒<a href="http://khmix.sakura.ne.jp/download.shtml" target="_blank">キャラクターなんとか機</a><br><br><br>髪型とか服とかを選んでオリジナルキャラを作れるっていうすごい凄いソフト<br><br><br>ためしに作ってみた<br><br><br><img src="https://stat.ameba.jp/user_images/20131025/21/beginner-engineer/a5/96/p/t02200293_0300040012727774863.png" alt="とある文系SEの技術記録" width="220" height="293" border="0"><br><br><br>うーん。<br><br>フリーなら仕方がないけど、これを実際ゲームに使うのには厳しいですね<br><br><br><br>ギャルゲーを作りたいけど絵師がいない…でも外注すると高い…<br><br>みたいな人には需要がありそうです
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11652154684.html</link>
<pubDate>Fri, 25 Oct 2013 20:54:02 +0900</pubDate>
</item>
<item>
<title>Canvasに画像を描く(表示する)</title>
<description>
<![CDATA[ Canvasに画像を表示させる方法<br><br>Bitmapを使って表示させる<br><br><br>【x:100、y:100、画像=image.jpgを描画する】<br><br><br><br><pre><br><code><br>@Override<br>protected void onDraw(Canvas canvas) {<br><br>    //画像をCanvasに表示させるためのBitmapを作る<br>    Bitmap bitmap;<br><br>　　//画像のリソースを取得<br>    //resに"image.jpg"がありますよーっていう合図<br>    Resources res = this.getContext().getResources();<br><br>    //リソースから"image.jpg"を取得し、Bitmapに変換する<br>    bitmap = BitmapFactory.decodeResources(res, R.drawable.image);<br><br>    //Canvasに描画<br>    canvas.drawBitmap(bitmap, 100.0f, 100.0f, new Paint());<br>    <br>}<br></code></pre><code><br></code><br><br>【別解】<br><br><pre><br><code><br>@Override<br>protected void onDraw(Canvas canvas) {<br><br>    //画像をCanvasに表示させるためのDrawableオブジェクトを作る<br>    Drawable drawable;<br><br>　　//画像のリソースを取得する<br>    drawable = this.getContext().getResources().getDrawable(R.drawable.image);<br><br>    //画像の幅<br>    int width = drawable.getIntrinsicWidth();<br>    //画像の高さ<br>    int height = drawable.getIntrinsicHeight();<br><br>    //画像の位置情報を定める<br>    drawable.setBounds(100.0f, 100.0f, width, height);<br><br>　　//Canvasに描画<br>    drawable.draw(canvas);<br>    <br>}<br></code></pre><code><br></code>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11651398859.html</link>
<pubDate>Fri, 25 Oct 2013 09:28:58 +0900</pubDate>
</item>
<item>
<title>Canvasに円を描く</title>
<description>
<![CDATA[ Canvasに円を描く方法<br><br><br>【x:100、y:100、半径=10の円を描く】<br><br><br><pre><br><code><br>@Override<br>protected void onDraw(Canvas canvas) {<br><br>　　//円のX座標<br>    private float x = 100.0f;<br>    //円のY座標<br>    private float y = 100.0f;<br>    //円の半径<br>　　private float r = 10.0f;<br>    <br>    //色等を決めるPaintインスタンス<br>    Paint paint = new Paint();<br>    paint.setColor(Color.argb(255, 255, 255, 255));<br>　　//アンチエイリアスの有無<br>    paint.setAntiAlias(true);<br>    <br>    canvas.drawCircle(x, y, r, paint);<br>}<br></code><br></pre><br>
]]>
</description>
<link>https://ameblo.jp/beginner-engineer/entry-11651384211.html</link>
<pubDate>Fri, 25 Oct 2013 09:14:57 +0900</pubDate>
</item>
</channel>
</rss>
