package com.example.hackman;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
public class CharaSprite extends GraphicObject {
private Rect m_Rect; //그려줄 사각 영역
private int m_fps; //초당 프레임
private int m_iFrames; //프레임 개수
private long m_FrameTimer; //이전 시간 정보를 담을 변수
private int m_CurrentFrame;//최근 프레임
private int m_SpriteWidth;
private int m_SpriteHeight;
public CharaSprite(Bitmap bitmap){
super(bitmap);
//멤버 변수 초기화
m_Rect = new Rect(0,0,0,0);
m_CurrentFrame = 0;
m_FrameTimer=0;
}
public void InitSpriteData(int _width,int _height,int _fps, int iFrame){
//기본 정보 설정
m_SpriteWidth = _width;
m_SpriteHeight = _height;
m_Rect.top = 0;
m_Rect.bottom = m_SpriteHeight;
m_Rect.left = 0;
m_Rect.right = m_SpriteWidth;
m_fps = 1000/_fps;
m_iFrames = iFrame;
}
@Override
public void Draw(Canvas canvas){
Rect dest = new Rect(m_x, m_y, m_x + m_SpriteWidth, m_y + m_SpriteHeight);
canvas.drawBitmap(m_bitmap,m_Rect,dest,null);
}
public void Update(long GameTime){
if(GameTime>m_FrameTimer+m_fps){
m_FrameTimer = GameTime;
m_CurrentFrame += 1;
if(m_CurrentFrame>=m_iFrames){
m_CurrentFrame=0;
}
}
m_Rect.left = m_CurrentFrame * m_SpriteWidth;
m_Rect.right = m_Rect.left * m_SpriteWidth;
}
}
---------------------------------------------------------------
public class TestState implements IState {
private GraphicObject m_Image;
private CharaSprite m_spr;
@Override
public void Init() {
// TODO Auto-generated method stub
m_spr=new CharaSprite(BitmapFactory.decodeResource
(AppManager.getInstance().getResources(),R.drawable.zombi_walk2));
m_spr.InitSpriteData(66, 67, 5, 10);
}
@Override
public void Destroy() {
// TODO Auto-generated method stub
}
@Override
public void Update() {
// TODO Auto-generated method stub
long GameTime = System.currentTimeMillis();
m_spr.Update(GameTime);
}
@Override
public void Render(Canvas canvas) {
// TODO Auto-generated method stub
m_spr.Draw(canvas);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
}
뭐가 문제죠ㅠㅠㅠ 프갤형들 도와주어
이렇게 보면 힘들거같아서 이클립스 프로젝트 올려욧..
https://drive.google.com/file/d/0B7dEDILG3slNVmFDZWt6aFRiLXc/view?usp=sharing
m_Rect.left = m_CurrentFrame * m_SpriteWidth; m_Rect.right = m_Rect.left * m_SpriteWidth;
오른쪽 * 를 더하기로
헐 감사합ㄴ니ㅣ다ㅠㅠㅠㅠㅠ 프갤형 고마워요ㅠㅠㅠㅠ