LightBulb回顧
LightBulb回顧
最近幫朋友做在做一個超休閒的物理遊戲, 在Android與微信小遊戲上釋出, 製作過中的一些小問題總結一下, 使用引擎是cocos creator
共有問題
- 謹慎使用物理世界中的rayCast, 如果沒有物理碰撞效果的, 可以嘗試與cocos自帶的碰撞元件進行組合使用
- cc.Graphics效率並不高,
對於不同的版本UI設定可能些不一樣, 可以通過元件繼承的方式進行
// GameUIWX cc.Class({ extends: require('GameUI'), // <= 繼承自GameUI properties: {}, onGameReady() { this._super() // <= 父類 }, })
微信小遊戲
- 微信小遊戲子域中背景不透明 子域工程中的攝像機改為透明
- 包體超出限制 使用騰訊雲的COS進行遠端資源的下載, 注意區別版本號, 並用md5 cached
Android
如果release下有些JSB介面呼叫不了要修改proguard-rules.pro 把相關的程式碼混亂進行忽略
-keep public class main.** { *; }
-keep public class com.janusgames.lightbulb.** { *; }
TIPS
繪製瞄準線的程式碼
rayCast(p1, p2) {
var manager = cc.director.getPhysicsManager();
var result = manager.rayCast(p1, p2, cc.RayCastType.Closest)
//[0];
if (result.length > 0) {
result = result[0]
} else {
result = null
}
if (result && result.collider.node.group == 'line') {
p2 = result.point;
this.ctx.circle(p2.x, p2.y, 5);
}
//獲得從start到end的向量
var line = p2.sub(p1)
//獲得這個向量的長度
var lineLength = line.mag()
//根據每條線段的長度獲得一個增量向量
let length = 45
var increment = line.normalize().mul(length)
//確定現在是畫線還是留空的bool
var drawingLine = true
// 臨時變數
var pos = p1.clone()
//只要線段長度還大於每條線段的長度
for (; lineLength > length; lineLength -= length) {
//畫線
if (drawingLine) {
this.ctx.circle(pos.x, pos.y, 5)
pos.addSelf(increment)
this.ctx.fill()
}
//留空
else {
pos.addSelf(increment)
}
//取反
drawingLine = !drawingLine
}
if (!result) return;
if (result.collider.node.group != 'line') return
// 反射
let l = p2.sub(p1)
let n = result.normal.normalize()
var r = l.sub(n.mul(n.dot(l)).mul(2)).mul(500).add(p2)
p1 = p2;
// 返回停止點
// 多次組合可以實現反射的效果
return {
p1: p1,
p2: r,
}
}
相關文章
- 回顧
- 2018回顧
- 回顧ajax
- 活動精彩回顧|GopherChina 2019乾貨回顧!Go
- Git指令回顧Git
- SpringMVC 回顧servletSpringMVCServlet
- mybatis---回顧jdbcMyBatisJDBC
- 我的2023回顧
- 今年回顧,流水賬
- 5. SQL回顧SQL
- flex知識回顧Flex
- PHP 回顧之 cookiePHPCookie
- PHP回顧之ComposerPHP
- 回顧 crash log 分析
- javascript知識回顧JavaScript
- 回顧 Firefox 歷史Firefox
- js回顧:原型鏈JS原型
- 一週回顧(3.24)
- 14-oop方法回顧OOP
- 傳統C++回顧C++
- 什麼是元回顧?
- Docker 核心知識回顧Docker
- Cloudflare Radar 2021 年回顧Cloud
- PHP執行流程回顧PHP
- Java基本語法回顧Java
- oracle打補丁回顧Oracle
- EmacsTalk 2021 年終回顧Mac
- 2021年前端回顧前端
- 2021年回顧與展望
- 程式碼大全回顧篇...
- [譯] 2018 前端全面回顧前端
- openLayers 3知識回顧
- 正規表示式回顧
- 【指標】-簡單回顧指標
- Java2024-Day01回顧Java
- 2022手遊行業回顧行業
- eMarketer: 2019年移動回顧
- OAuth 2.0安全案例回顧OAuth