package sdu.edu.controller; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import sdu.edu.entities.Ground; import sdu.edu.entities.Shap; import sdu.edu.entities.ShapFactory; import sdu.edu.listener.ShapListener; import sdu.edu.view.GamePanel; public class Controller extends KeyAdapter implements ShapListener{ private Shap shap; private Ground ground; private ShapFactory shapFactory; private GamePanel gamePanel; public Controller(ShapFactory sf, Ground g, GamePanel gp) { this.shapFactory = sf; this.gamePanel = gp; this.ground = g; } @Override public void shapMoveDown(Shap shap) { // TODO Auto-generated method stub gamePanel.display(ground, shap); } @Override public synchronized boolean isShapMoveDownable(Shap shap) { // TODO Auto-generated method stub if(this.shap != shap)return false; if(ground.isShapMove(shap, Shap.DOWN)) return true; ground.accept(this.shap); if(!ground.isFull()) this.shap = shapFactory.getShap(this); return false; } public void newGame() { shap = shapFactory.getShap(this); } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub int key = e.getKeyCode(); switch (key) { case KeyEvent.VK_UP: if(ground.isShapMove(shap, Shap.RARTE)) shap.rarte(); break; case KeyEvent.VK_RIGHT: if(ground.isShapMove(shap, Shap.RIGHT)) shap.moveRight(); break; case KeyEvent.VK_DOWN: if(isShapMoveDownable(shap)) shap.moveDown(); break; case KeyEvent.VK_LEFT: if(ground.isShapMove(shap, Shap.LEFT)) shap.moveLeft(); break; } gamePanel.display(ground, shap); } public Shap getShap() { return shap; } }
最近下载更多
1112WHQ LV7
2023年11月3日
郭佩泽 LV12
2019年8月20日
wasdfg LV2
2019年6月5日
renshuao0822 LV2
2018年10月31日
120130140 LV7
2018年2月24日
大侠woaini LV2
2017年12月26日
1357zhanghuan9 LV2
2017年6月28日
13956441640 LV2
2017年6月6日
solargen LV7
2017年6月6日
sahdhasdi LV2
2017年6月4日
最近浏览更多
hainabian1977 LV2
6月24日
ClydeSon LV5
2023年12月27日
1112WHQ LV7
2023年11月3日
微信网友_6699076084797440 LV7
2023年10月30日
wangjialiang1 LV17
2023年8月20日
sdyawd
2023年6月14日
暂无贡献等级
小安同学 LV7
2023年5月11日
tx1121 LV14
2023年4月9日
insane1 LV1
2022年12月6日
tree1112666 LV1
2022年8月19日