package com.example.mazegame.slice;
import com.example.mazegame.MainAbility;
import com.example.mazegame.ResourceTable;
import com.example.mazegame.model.Character;
import com.example.mazegame.model.CharacterDbStore;
import com.example.mazegame.model.Element;
import com.example.mazegame.model.MapChip;
import com.example.mazegame.source.Const;
import com.example.mazegame.source.MapData;
import com.example.mazegame.source.MonsterData;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.animation.Animator;
import ohos.agp.animation.AnimatorValue;
import ohos.agp.components.*;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.window.dialog.CommonDialog;
import ohos.agp.window.dialog.ToastDialog;
import ohos.data.DatabaseHelper;
import ohos.data.orm.OrmContext;
import ohos.data.orm.OrmPredicates;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import ohos.multimodalinput.event.TouchEvent;
import ohos.org.xml.sax.helpers.DefaultHandler;
import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT;
import java.nio.InvalidMarkException;
import java.util.ConcurrentModificationException;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
public class MainAbilitySlice extends AbilitySlice {
static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0, "MY_TAG");
private TableLayout mapLayout;
private int mapsize = 10;
private int pm_px; // 手机设备的宽
private int pg_px; // 手机设备的高
private Button play_bnt;
int[][] map;
int beginx, beginy;
private Image player;
private Image[][] mapImage;
private int mapChipWidth;
private Image left_btn, right_btn, up_btn, down_btn;
private int curX, curY;
private Element[][] mapElements;
private DirectionalLayout mainLayout;
private int blockMargin;
private Character character;
private Text level_text, blood_text, aggre_text, defense_text, money_text;
private int keycnt = 0;
private int gameLevel = 0;
private Button back_btn;
private Image girl;
private Button store_btn;
private int shift = 30;
private Text playerName;
private boolean isFromfinish;
private int playerbeginx;
private int playerbeginy;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
pm_px = AttrHelper.vp2px(getContext().getResourceManager().getDeviceCapability().width, this);
pg_px = AttrHelper.vp2px(getContext().getResourceManager().getDeviceCapability().height, this);
// 需要传的参数
character = getCharaterData(); // 从数据库中获取数据
// character.setLevel(5);
//
//
// character.setIsHaveGirl(true);
gameLevel = intent.getIntParam("gameLevel",1 );
isFromfinish = intent.getBooleanParam("isFromfinish", false);
mapsize = 10;
mapImage = new Image[mapsize][mapsize];
mapElements = new Element[mapsize][mapsize];
MapData.Map mapData = new MapData().getMap(mapsize, gameLevel - 1);
beginx = mapData.beginX;
beginy = mapData.beginY;
map = mapData.map;
initComponent();
setPlayerInfo();
addClickListener();
// play_bnt.callOnClick();
}
/**
* 从数据库中获取数据
*
* @return
*/
private Character getCharaterData() {
Character temp = null;
// ormContext为对象数据库的操作接口,之后的增删等操作都是通过该对象进行操作
DatabaseHelper helper = new DatabaseHelper(this);
OrmContext ormContext = helper.getOrmContext(Const.DB_ALIAS, Const.DB_NAME, CharacterDbStore.class);
OrmPredicates ormPredicates = ormContext.where(Character.class).equalTo("id", Const.playerId);
List<Character> recordList = ormContext.query(ormPredicates);
if (recordList.isEmpty()) {
temp = new Character(5201314, "player", "又是美好的一天", false, ResourceTable.Media_girl1,
ResourceTable.Media_player1, 99, 50, 50, 1, 520);
ormContext.insert(temp); //插入内存
HiLog.info(label, "insertCharacter:" + temp.toString());
} else {
temp = recordList.get(0);
}
ormContext.flush();
ormContext.close();
HiLog.info(label, "getCharaterData="+temp.toString());
return temp;
}
/**
* 设置玩家信息
*/
private void setPlayerInfo() {
level_text.setText("level." + character.getLevel());
blood_text.setText(character.getBlood() + "");
aggre_text.setText(character.getAggressivity() + "");
defense_text.setText(character.getDefense() + "");
money_text.setText(character.getMoney() + "");
player.setPixelMap(character.getPicId());
}
private void enableButton(){
up_btn.setClickable(true);
left_btn.setClickable(true);
right_btn.setClickable(true);
down_btn.setClickable(true);
}
private void disableButton(){
up_btn.setClickable(false);
left_btn.setClickable(false);
right_btn.setClickable(false);
down_btn.setClickable(false);
}
/**
* 移动玩家
*
* @param moveX
* @param moveY
*/
private void playerMove(int moveX, int moveY) {
int x = curX + moveX, y = curY + moveY;
// HiLog.info(label, "curX="+curX + ", curY="+curY + ", moveX="+x + ", moveY="+y +", map="+map[x][y]);
if (x >= 0 && x < this.mapsize && y >= 0 && y < this.mapsize && map[x][y] != 1) {
if (map[x][y] == MapData.finish) {
if (gameLevel < new MapData().getGameCount()) {
clearElements();
int newLevel = Math.max(character.getLevel(), gameLevel + 1);
character.setLevel(newLevel);
// 保存用户数据
saveCharacterData();
MainAbilitySlice slice = new MainAbilitySlice();
Intent intent = new Intent();
intent.setParam("gameLevel", newLevel);
present(slice, intent);
} else {
DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(this)
.parse(ResourceTable.Layout_layout_toast, null, false);
Text text = (Text) toastLayout.findComponentById(ResourceTable.Id_msg_toast);
text.setText("您已通关!");
new ToastDialog(getContext())
.setContentCustomComponent(toastLayout)
.setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT)
.setAlignment(LayoutAlignment.CENTER)
.show();
}
return;
}else if(x == beginx && y == beginy){ //回到起点
if(gameLevel!=1){
clearElements();
// 保存用户数据
saveCharacterData();
MainAbilitySlice slice = new MainAbilitySlice();
Intent intent = new Intent();
intent.setParam("isFromfinish", true);
intent.setParam("gameLevel", gameLevel-1);
present(slice, intent);
}else{
if(character.isIsHaveGirl()){
DirectionalLayout toastLayout = (DirectionalLayout) LayoutScatter.getInstance(this)
.parse(ResourceTable.Layout_layout_toast, null, false);
Text text = (Text) toastLayout.findComponentById(ResourceTable.Id_msg_toast);
text.setTex
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于鸿蒙开发的魔塔游戏Java源码(课设项目) 基于鸿蒙开发的魔塔游戏Java源码(课设项目).zip 基于鸿蒙开发的魔塔游戏Java源码(课设项目).zip 【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于鸿蒙开发的魔塔游戏Java源码(课设项目).zip (149个子文件)
gradlew.bat 3KB
.gitignore 238B
.gitignore 47B
.gitignore 21B
build.gradle 2KB
build.gradle 2KB
settings.gradle 46B
gradlew 8KB
gradle-wrapper.jar 57KB
MainAbilitySlice.java 46KB
StoreSlice.java 10KB
MainSlice.java 10KB
MapData.java 7KB
ChooseGameSlice.java 5KB
StoreItemProvider.java 4KB
Character.java 3KB
ChooseCharacterSlice.java 3KB
EntrySlice.java 3KB
StoreItemBean.java 2KB
Element.java 2KB
MapChip.java 908B
MainAbility.java 641B
MonsterData.java 464B
ExampleOhosTest.java 412B
CharacterDbStore.java 230B
MyApplication.java 211B
Const.java 207B
ExampleTest.java 128B
bk10.jpg 907KB
bk5.jpg 907KB
bk1.jpg 859KB
bk4.jpg 820KB
bk7.jpg 758KB
bk6.jpg 720KB
bk3.jpg 705KB
bk2.jpg 545KB
bk9.jpg 289KB
bk14.jpg 270KB
bk11.jpg 256KB
bk18.jpg 253KB
bk17.jpg 243KB
bk13.jpg 236KB
bk16.jpg 235KB
bk12.jpg 225KB
bk15.jpg 204KB
bk8.jpg 171KB
bk19.jpg 133KB
config.json 1KB
previewConfigV2.json 594B
phoneSettingConfig_MateX2.json 354B
string.json 331B
phoneSettingConfig_P40.json 285B
string.json 279B
string.json 276B
project.cache.json 78B
entry.cache.json 22B
package.json 3B
logo.png 131KB
guai5.png 15KB
monster_big.png 14KB
dunpai.png 12KB
pi.png 12KB
guai1.png 11KB
monster_small.png 10KB
girl1.png 10KB
dao.png 9KB
play12.png 9KB
play14.png 9KB
play8.png 8KB
player1.png 8KB
guai3.png 8KB
play11.png 8KB
play16.png 8KB
money.png 8KB
girl2.png 8KB
play13.png 8KB
play2.png 8KB
play15.png 7KB
dao2.png 7KB
guai4.png 7KB
play7.png 7KB
play3.png 7KB
finish.png 7KB
play5.png 7KB
fangyu3.png 7KB
chi2.png 7KB
play4.png 7KB
play6.png 7KB
play10.png 7KB
guai6.png 7KB
icon.png 7KB
fangyu2.png 7KB
yaoshui2.png 7KB
yaosui2.png 7KB
play9.png 7KB
yaosui1.png 7KB
pk.png 6KB
button.png 6KB
chi3.png 6KB
hair_btn.png 6KB
共 149 条
- 1
- 2
资源评论
Make程序设计
- 粉丝: 5725
- 资源: 3570
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功