CocosCreator实战项目1:忍者跳跳跳

news/2024/10/23 9:28:02/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

    • 摘要
    • 正文
        • 使用版本
        • 游戏截图
        • 游戏资源面板
        • 脚本关系
        • 代码部分
    • 结语


摘要

CocosCreator模仿4399忍者跳跳跳小游戏 原版游戏链接:
忍者跳跳跳

正文

使用版本

CocosCreator2.4.5版本

游戏截图

忍者跳跳跳

游戏资源面板

游戏资源面板

脚本关系

脚本关系

代码部分

  1. util.ts:负责初始化数据和公共方法
export class util{public static readonly maxY = -500      //柱子最高点public static readonly minY = -750      //柱子最低点public static readonly maxX = 400       //柱子平面最宽点public static readonly minX = 250       //柱子平面最窄点public static readonly defaultPos = new cc.Vec2(-250,-500)      //柱子默认初始坐标public static readonly moveSpeed = 350  //柱子移动速度//麒麟子版适配分辨率public static resize() {var cvs = cc.find('Canvas').getComponent(cc.Canvas);//保存原始设计分辨率,供屏幕大小变化时使用var dr = cvs.designResolution;var s = cc.view.getFrameSize();var rw = s.width;var rh = s.height;var finalW = rw;var finalH = rh;if((rw/rh) > (dr.width / dr.height)){//!#zh: 是否优先将设计分辨率高度撑满视图高度。 *///cvs.fitHeight = true;//如果更长,则用定高finalH = dr.height;finalW = finalH * rw/rh;}else{/*!#zh: 是否优先将设计分辨率宽度撑满视图宽度。 *///cvs.fitWidth = true;//如果更短,则用定宽finalW = dr.width;finalH = rh/rw * finalW;}cvs.designResolution = cc.size(finalW, finalH);cvs.node.width = finalW;cvs.node.height = finalH;}
}
  1. gameManager.ts:挂载在游戏全局,实现游戏的初始化
onLoad () {util.resize();cc.director.getCollisionManager().enabled = true;this.startPanel.init(this);this.bgManager.init(this);this.uiManager.init(this);}startGame(){if(this.isStart){this.uiManager.initScene()}}failGame(){this.failPanel.init()}
  1. uiManager.ts:负责游戏界面的初始化以及游戏逻辑,具体代码就不贴了,有兴趣就可以到gitee下载后看下代码
 //初始化界面initScene(){this.lastPillarPos = util.defaultPosthis.isCreatePillarState = truelet node = cc.instantiate(this.pillarPre)node.x = -450node.y = -500node.parent = this.uiWrapperthis.initTween(this.ninja)this.initTween(node)node.getComponent('pillar').init(this)this.ninja.getComponent('ninja').init(this)this.initPillarPool()this.node.on('touchstart',this.touchStart,this)this.node.on('touchend',this.touchEnd,this)this.node.on('touchcanel',this.touchEnd,this)}// 创建柱子private createPillar(){if(this.lastPillarPos.x > cc.winSize.width/2){this.isCreatePillarState = falsereturn}let node:cc.Node = null;if(this.pillarPool.size()>0){node = this.pillarPool.get()}else{node = cc.instantiate(this.pillarPre)}node.y = Math.random()*(util.maxY - util.minY) + util.minYnode.x = this.lastPillarPos.x + Math.random()*(util.maxX - util.minX) + util.minXnode.parent = this.uiWrappernode.getComponent('pillar').init(this)this.lastPillarPos = new cc.Vec2(node.x,node.y)}。。。。。。。。。。。。。。。。。etc。。。。。。。。。。。。。。。。。。。。

4.startPanel.ts: 游戏开始面板,点击开始按钮进入游戏

  init(game:gameManager){this.game = game}onLoad () {this.startBtn.on('touchstart',this.touchStart,this)}private touchStart(){cc.tween(this.startBtn).to(0.1,{scale:0.9}).to(0.1,{scale:1}).call(()=>{this.node.active = falsethis.game.isStart = truethis.game.startGame()}).start()}

5.failPanel.ts:游戏失败面板,设置显示后初始化数据和面板

 // 初始化失败界面init(){this.node.active = truelet curScoreText = cc.sys.localStorage.getItem('curScore')this.curScore.string = curScoreTextthis.bestScore.string = cc.sys.localStorage.getItem('bestScore')this.restartBtn.on('touchstart',this.restartTouch,this)this.strutBtn.on('touchstart',this.strutTouch,this)if(+curScoreText>5 && +curScoreText<10){cc.resources.load('6408',cc.SpriteFrame,(err,res)=>{this.Level.getComponent(cc.Sprite).spriteFrame = res})}else if(+curScoreText>=10){cc.resources.load('64014',cc.SpriteFrame,(err,res)=>{this.Level.getComponent(cc.Sprite).spriteFrame = res})}

结语

游戏总体难度不大,代码行数只有两百行差不多,感兴趣的小伙伴可以到gitee上下载代码研究一下,函数之间都做了注释,容易看懂,顺便点个赞哈!!
gitee链接


http://www.ppmy.cn/news/930569.html

相关文章

c++小游戏忍者必须死+关机

忍者必须死&#xff1a; #include<bits/stdc.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #define Nor if(B[b].x<5) B[b].x5; #define Out1 Bx1-Bvx1<6||Bx1-Bvx1>28||By1-Bvy1<7||By1-Bvy1>…

小学生python编程---忍者大战

孩子的第三个作品&#xff1a; from pgzrun import * music.play("麻宫雅典娜.mp3") WIDTH 1280 HEIGHT 720 bg Actor("bg.png") #{ jump_speed1 12 jump1 False jump_speed2 12 jump2 False #--------------------------------------------------…

[cocos2d 开发]看我怎么山寨 跳跃忍者 !!!ninjump 1

cocos2d 开发]看我怎么山寨 忍者跳跃 !!! 其实中国的游戏开发者不写游戏!这里包含各种内涵的意思 ... 如今山寨成风,今个儿开始山寨 一款从iphone上,跨平台到android 很火的游戏 . ninjump (忍者跳跃). 要山寨 先搞清楚别人是怎么开发的 ,能否直接获取到别人的素材?! 这个很…

Unity 忍者跑酷

1.动画制作 1。把Player帧动画直接拖入到Scene中&#xff0c;unity会自动生成改物体的默认idel动画。 2。选定游戏物体&#xff0c;Ctrl6 打开Animation&#xff0c;可以手动添加帧动画。 3。在Animator中&#xff0c;控制动画切换。在Parameters中添加条件&#xff0c;右键动画…

Java 涂鸦跳跃,涂鸦跳跃怎么玩-涂鸦跳跃触屏版的怎么玩啊?

涂鸦跳跃(涂鸦跳跃)&#xff0c;是一个非常有趣的技巧游戏&#xff0c;倾斜你的手机左&#xff0c;右&#xff0c;使小怪兽春天涂鸦不停跳&#xff0c;降不下来&#xff0c;跳跃是在破平台小心&#xff0c;移动的蓝色平台&#xff0c;黑色孔&#xff0c;不明飞行物和坏人&#…

《忍者修炼场》

游戏说明 一款休闲游戏。玩家需要划动屏幕来控制忍者跳动到不同的平台上&#xff0c;躲避旋转的手里剑&#xff0c;收集平台上出现的寿司。借助场景中出现的药剂&#xff0c;能更好的获取高分。 一&#xff1a;游戏界面内存在三个平台&#xff0c;通过上下划动屏幕来操控忍者的…

Java 涂鸦跳跃,涂鸦跳跃java版

涂鸦跳跃java版&#xff0c;一款趣味性十足的休闲闯关小游戏&#xff0c;在这款java版本中小伙伴们可以体验到更加有意思的闯关乐趣&#xff0c;大家在这里不断的练习调谑的技巧&#xff0c;灵活躲避上方出现的障碍物&#xff0c;同时还有各种道具的刷新出现帮助到你更好的闯关…

线性规划——跳跃忍者

题目描述 跳跃忍者很能跳&#xff0c;因此他很嘚瑟。他每次跳需要消耗能量&#xff0c;每跳1米就会消耗1点能量&#xff0c;如果他有很多能量就能跳很高。 他为了收集能量&#xff0c;来到了一个神秘的地方&#xff0c;这个地方凡人是进不来的。在这里&#xff0c;他的正上方每…