読者です 読者をやめる 読者になる 読者になる

Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

線に沿う玉の運動を描く⑧ 迷走中

続きです
chemiphys.hateblo.jp
速度にエネルギーの雰囲気をまとうことはできるようになりました。

でも,そのせいで新たな問題が発生。これ解決方法思いつかないや(;´▽`A``

f:id:chemiphys:20170117222418p:plain

位置エネルギーが最小になったあたりで,速度がつきます。

それはいいことなんですが,今の簡易なセンサーでの角度変化では

がっつりめり込みます。。

xの増分を増やすべきではないということなんですが,

xの増分を増やさずに速度が上がったことも表現しつつってかなり難しい気がする。。

どうしたらいいのかなぁ( ´Д`)=3 フゥ

f:id:chemiphys:20170117222805g:plain

役に立たないコードですが,次のコードで動いています。全貌は載せません。

Sub Move(pSlide As Slide, pShpCollide As Shape, pY0 As Long)
    
    Dim 判定 As Hantei: Set 判定 = New Hantei
    判定.Judge pSlide, shpBall, pShpCollide
    pY = shpBall.Top + shpBall.Height + 1
        
    If 判定.blnCollide = True Then
        pV = Abs((100 - (500 - pY) / 4) * 2) ^ 0.5 * 0.3
        If pV < 1 Then pV = 1
        
        pVx = pV * Cos(判定.sglAngle) * Rate
        pVy = pV * Sin(判定.sglAngle) * Rate
        
        'If 判定.重なり高さ > 4 Then
        '    shpBall.Top = shpBall.Top - 3
        '    shpBall.Left = shpBall.Left + 1
        'ElseIf 判定.重なり高さ > 2 Then
        '    shpBall.Top = shpBall.Top - 1
        'End If
    Else
        pVx = 0
        pVy = 1
    End If

    shpBall.Left = shpBall.Left + pVx
    shpBall.Top = shpBall.Top + pVy
    
End Sub

強引に引き上げていた部分を今ははずしてます。
pVの変な式ですが,400pxの縦方向の範囲での動きを想定し,見た目にもちょうど適度に収まるように適当に係数(0.3)をかけてる感じです。
きちんと解決方法を考えないとこの話は先に進みそうにない感じ。。コレハキッツイ