안녕하세요!! @wonnieyoon입니다.
프로그래밍 실력을 늘리는데는 재밌는것을 만들어보는것 만큼
좋은것이 없다고 생각합니다.
그래서 간단한 세균 죽이기 게임을 만들어보려고 합니다.
포스팅 1,2에 걸쳐서 완성할텐데 오늘은 전체적인 틀을 만들겠습니다.
코드
<MainActivity.java>
public class MainActivity extends AppCompatActivity {
LinearLayout linearLayout;
MyView m ;
int heigth = 480,width = 800;
ArrayList<Insect> unit;
class MyHandler extends Handler{
@Override
public void handleMessage(Message msg) {
for(int i=0;i<unit.size();i++)
{
//좌표 가속도
unit.get(i).setX(unit.get(i).getX() + unit.get(i).getAx()) ;
unit.get(i).setY(unit.get(i).getY() + unit.get(i).getAy()) ;
//x축 범위 벗어났을때
if(unit.get(i).getX() > width-45 || unit.get(i).getX()<0)
{
unit.get(i).setAx(-unit.get(i).getAx());
}
//y축 범위 벗어났을때
if(unit.get(i).getY() > heigth-300 || unit.get(i).getY() < 0)
{
unit.get(i).setAy(-unit.get(i).getAy());
}
}
m.invalidate();
sendEmptyMessageDelayed(0,20);
}
}
MyHandler handler = new MyHandler();
public class MyView extends View{
Bitmap image;
Random random;
int x=0,y=0;
public MyView(Context context) {
super(context);
unit = new ArrayList<Insect>();
random = new Random();
for(int i=0 ; i < 200 ;i++)
unit.add(new Insect(100,30+random.nextInt(width-100),30+random.nextInt(heigth-330),5,5));
image = BitmapFactory.decodeResource(getResources(),R.drawable.monster);
handler.sendEmptyMessage(0);
}
@Override
protected void onDraw(Canvas canvas) {
for(int i=0;i<unit.size();i++)
canvas.drawBitmap(image,unit.get(i).getX(),unit.get(i).getY(),null);
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
width = display.getWidth();
heigth = display.getHeight();
linearLayout = findViewById(R.id.back_linear);
m = new MyView(this);
linearLayout.addView(m);
}
}
결과
보시는것처럼 화면에 세균들이 바글바글합니다.
오늘은 세균들이 화면안에서 자동으로 움직이는것까지 구현하였고 내일은 클릭하면 세균들이 피를 흘리면서 죽는것을 구현해보겠습니다.
기대됩니다 ㅎㅎ
오늘 하루 가장 추운날이 될꺼같아요!
완전 무장하고 하루를 시작했네요! ㅠㅜ
감기 조심하세요~~
감사합니다.
MVVM패턴 적용 해보시는건 어떻게 생각하시나요 ㅎㅎ
조언 감사합니다.
아이고 복잡혀라, 저 명령어 일일이 다 입력하려면 눈아프겄으요, 그래서 개발하시는 분들 보면, 참 대단들 하더라구요.
그냥 계속사용하다보면 익숙해지더라구요ㅎㅎ
정말 좋은글 자 보도록 하겠습니다. 다음편도 빨리 나왔으면 좋겠습니다. 원님의 연참을 기대합니다. 연참 ^^;;
피를 흘리면서 까지... 죽이셔야 합니까....ㅠㅠ 흑흑 ㅋㅋㅋ (농담입니당ㅎ)
그런데 워니님 혹시 대문을 캡쳐하셔서 사용하고 계신건가요? 제가 업로드한것 보다 흐린것 같아서요. 혹시 원본 원하시면 보내드릴게요!
아~네네 원본 보내주시면 감사하겠습니다.ㅎㅎ
여기는....코딩 배우는 블로그 인가요??0-0 전 역사랑 사회부문인데 ㅋㅋ 님은 이런거 가르치시네요 ㅋ 전 코딩 혼자 책보고 독학하려고 하면 어우...어렵던데 ㅜㅅ ㅠ
저는 역사가 너무 어렵더라구요 ㅎㅎ 각자 맞는 분야가 있는거죠