何をすべきかを説明します:
ネイティブ ProgressTimer コントロールの進行状況の開始点は、次のように (0.5, 1) のみです。
次のように、開始点として長方形の辺上の任意の点に変更したいとします。
まず描画のロジックについて話しましょう。
まず、始点ベクトルに基づいて一定の角度まで回転した後のベクトルを計算し、次に回転処理中に渡される長方形の頂点を計算し、始点、終点、長方形の頂点を回転中心点(図の点0)で結びます。下図) 隣接する三角形を 1 つずつ形成し、これらの三角形をテクスチャ カラーでペイントするだけです。次のように:
- 変更された CCProgressTimer.h と CCProgressTimer.cpp は直接ダウンロードできるようになりました。
- 実装プロセスで習得する必要があるいくつかの技術的なポイントを分析してみましょう。
- ベクトルをある角度だけ回転させた後のベクトルを求める(2次元回転行列)
- 光線交差アルゴリズム
- cocos でのOpenGL の頂点バッファ VBOとインデックス バッファ EBOの使用法
- スプライトローカル座標系の特定の点の座標に従って、この点の頂点座標とテクスチャ座標を計算する方法