cocos creator从零开发简单框架(12)-代码生成单色Sprite
在写
Panel
前,先写个方法生成单色Sprite
,这样当碰到需要单色Sprite
的时候不需要在编辑器拖拽和代码动态加载资源。
编辑framework/scripts/AppUtil.ts
,添加newSpriteNode
方法。
// 生成默认白色 100x100 大小 Sprite (单色) 节点
public static newSpriteNode(name: string = 'newSpriteNode'): cc.Node {
const buffer = Uint8Array.from([255, 255, 255, 255])
const texture = new cc.Texture2D()
texture.initWithData(buffer, cc.Texture2D.PixelFormat.RGBA8888, 1, 1)
const spriteFrame = new cc.SpriteFrame()
spriteFrame.setTexture(texture)
const node = new cc.Node(name)
const sprite = node.addComponent(cc.Sprite)
sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM
sprite.spriteFrame = spriteFrame
node.setContentSize(100, 100)
return node
}
编辑UIMain
界面,创建一个名为BtnNewSpriteNode
文本为生成
的按钮。
编辑scripts/UIMain.ts
,编辑onButtonClick
方法。
protected onButtonClick(button: cc.Node) {
switch (button.name) {
case 'BtnUIBag':
UIMgr.open(UIBag)
break
case 'BtnNewSpriteNode':
TopBlock.show()
const tmpNode = new cc.Node('tmpNode')
tmpNode.parent = this.skin
tmpNode.zIndex = 100
const sprite1 = AppUtil.newSpriteNode()
sprite1.parent = tmpNode
sprite1.x = -150
const sprite2 = AppUtil.newSpriteNode()
sprite2.parent = tmpNode
sprite2.color = cc.Color.GREEN
const sprite3 = cc.instantiate(sprite1)
sprite3.parent = tmpNode
sprite3.x = 150
sprite3.color = cc.Color.RED
setTimeout(() => {
TopBlock.hide()
tmpNode.destroy()
}, 3000)
break
}
}
运行程序,点击生成
按钮。
本作品采用《CC 协议》,转载必须注明作者和本文链接