VPython Device Ball-trow2.py    
** Ball-throw2.py -- 抓回自己電腦, 搭配往下捲那個 HTML 在自己電腦上跑
** code can be found at https://demo.iottalk.tw/da/vp/py/Ball-throw2.py  
    ==> 也可以把 Ball-throw2 稍微改一下丟入 EduTalk 的行星運動用手機控制。
      (當然也可用電腦上帶有兩個 Slider 滑桿 的遙控器控制)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
### Ball-throw2.py   ## coding=utf-8  ## 這是 demo.iottalk.tw 上的 Ball-throw2.py 

g=9.8
size = 0.7
scene = display(width=600, height=500, background=vector(0.6,0.3,0.2), center=vector(-7,7,0))
floor = box(length=24, height=0.5, width=4, color=color.green, pos=vector(-9,0,0))
box(length=8, height=0.5, width=4, color=color.red, pos= vector(7,0,0) )
box(length=8, height=0.5, width=4, color=color.green, pos= vector(15,0,0) )

scene.range=16
camera_x1=0.8
camera_x2=0.0
scene.forward=vector(camera_x1,camera_x2,-1)

preloadAudio('Startup.wav')
preloadAudio('chord.wav')
preloadAudio('gj.wav')

def balljump(spd):
    if (spd < 3): return 

    ball = sphere(pos=vector(-24.5, 10.0, 0.0), radius=size, color=color.white)
    ball.velocity = vector(spd, -1.0, 0.0)

    dt = 0.003
    gj_playFlag=1

    def resetScene():
        scene.background = vector(0.6, 0.3, 0.2)
        
    
    def jump():
        global gj_playFlag

        #console.log(ball.pos.x, ball.pos.y)
        if ball.pos.x < 15:
          rate(1000, jump)
        else:
          ball.visible = False
          gj_playFlag = 1 
          return

        if (ball.pos.x < 10 and ball.pos.x > 1.5) and ball.pos.y < 1 :
            scene.background = vector(0,0,0)
            if gj_playFlag: 
                playAudio('gj.wav') 
                gj_playFlag=0
            rate(4, resetScene)
		
        previous_x = ball.pos.x
        ball.pos = ball.pos + ball.velocity * dt

        if ball.pos.y < size and ball.velocity.y < 0:
            ball.velocity.y = - ball.velocity.y
            playAudio('chord.wav')
        else:
            ball.velocity.y = ball.velocity.y - g * dt
    
    jump()

def Speed(data):
    if data != None:
        balljump(data[0])

def setup():
    profile = {
        'dm_name': 'Ball-throw2',
        'odf_list': [Speed],
    }

    dai(profile)
    playAudio('Startup.wav')

setup()

##  throw2 ======= END of the file Ball-throw2.py    =========      ===============================
    ==> 也可以把上述 Ball-throw2 稍微改一下丟入 EduTalk 的行星運動用手機控制。
      (當然也可用電腦上帶有兩個 Slider 滑桿 的遙控器控制)
 
VPython Device Ball-throw2  on demo.iottalk.twVPython Device Ball-throw1  on demo.iottalk.tw
## 以下是搭配 Ball-throw2.py (其時可以任何 .py)的 HTML 網頁 (用 View Source 檢視網頁)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>

  <script src="https://ramahomesltd.com/components/_mod/jquery-ui.custom/jquery-ui.custom.js"></script>

  <script src="https://demo.iottalk.tw//da/vp/js/RScompiler.2.1.min.js"></script>
  <script src="https://demo.iottalk.tw//da/vp/js/RSrun.2.1.min.js"></script>
  <script src="https://demo.iottalk.tw//da/vp/js/compiler.2.1.min.js"></script>
  <script src="https://demo.iottalk.tw//da/vp/js/glow.2.1.min.js"></script>
  <script src="https://demo.iottalk.tw//da/vp/js/csmapi.js"></script>
  <script src="https://demo.iottalk.tw//da/vp/js/dan.js"></script>
  <title>VPython</title>
</head>
<body>
  <div id="glowscript" class="glowscript"></div>
<!--- 弄個按鈕, 按一下再叫入 dai.js 以便解決沒互動過不給播影音的問題 --->
<video  height=32 id="video" muted autoplay>So that play sound OK</video>
<button id="goButton"><font color=red size=5>按這繼續 Ball-throw2</font></button>

<script>
   goButton.addEventListener('click', function() {
   video.muted = false;
   document.getElementById('goButton').style.visibility = 'hidden';
   var script = document.createElement('script'); 
          
        script.src =  "./dai.js"; 

        document.head.appendChild(script) 

  });
     
//  <script src="./dai.js"></script>
</script>
<!--- 注意 上面 // 開頭是 JavaScript 的註解  ------> 

</body>
</html>

把上述 HTML 修改後存檔 假設叫 haha.html, 和 dai.js 放同目錄,
* 原則上只改 dai.js 那列讓它從我們磁碟目錄中讀取 dai.js 例如: 
      <script src="./dai.js"></script> 
* 如果想改 d_name 則也要把 dan.js 改為在自己電腦上; 因為 d_name 被寫在 dan.js 用亂數決定!

** 修改 dai.js  -- 讓它改抓我們電腦上的 Ball-throw2.py
   LINE 2 改為:
        var project = "Ball-throw2";  // 其實沒用了, 不改也 OK
   LINE 5 改為:
        csmapi.set_endpoint ("https://demo.iottalk.tw");   // 要連的 server
   LINE 89 改為: (或把該些 .wav 檔案也偷回自己電腦 :-)
      audio[filename] = new Audio('https://demo.iottalk.tw/da/vp/audio/' + filename);
 
   LINE 132 改為:(抓本地的 python code, 注意檔案名稱)
       fetch_code('./Ball-throw2.py');     // VPython 檔案名稱, 我偷懶則用 b1.pyCMD 命令視窗中, 打入 haha.html 按 ENTER,
   發現不會執行 (空白網頁); 
   這目的是方便在網址列取得 haha.html 的路徑!

在 CMD 命令視窗中, 開啟不要管檔案安全性的 Chrome 瀏覽器:
 start chrome --user-data-dir="." --disable-web-security
* 把剛才看起來空白頁的網址複製到這新開的瀏覽器!


** 點這看 Ball-throw1
Top  幾個英文字讀音
*** 05/15加分題詳細可以 點這看影片說明 (善用影片下方說明與子題連結)
CMoreTV:  https://play.google.com/store/search?q=cmoretv

** demo.iottalk.tw「分享」按鈕- 社交外掛程式 - Facebook for Developers

請按  幫忙分享喔 !
有時候看起來對的其實是錯的!(我很久以前寫的網誌:-) * 不能反攻大陸的真正理由!(也是以前寫的, 其實是給大一學生的習題:-) * 何以1752年9月只有19天 ? 參考 Unix 的 cal 命令 ..(也是大一習題:-) * 為什麼中國(清朝)的 1911年 12 月只有 18 天 ?!(還是以前寫的:-) * [茶餘飯後] 魑魅魍魎 鬼話連篇(大一計概介紹802.11無線網路:-) * [很小的數]何處惹塵埃? 沙漠中是塵埃!(大一計概:-) * [很大的數]再談關於 Google 與 Googol(大一計概:-) * [也是很大的數]佛曰不可說不可說 比一個 googol 還大!(大一計概:-) * 物聯網、IoTtalk、薑黃、免疫力...(兩個月前寫的:-) * 請注意..感冒其實沒有藥     大家要顧好身體, 否則沒機會實現你的創意!我也有粉絲專頁ㄟ:-) 呵呵 (據說 "呵呵" 是北宋蘇東坡的口頭禪 :-)
你不懂的內容農場取妻當娶李子柒?  7 min.    (  館長也哈她  )
* 台灣百大 Youtuber 收入排行全球10大最高收入华人YouTuber, 2019.1203, by 小楠ngrok 讓外部能夠連到 Intranet 內 Localhost的網站及服務Facebook Messenger Bot 範例
   https://developers.facebook.com/docs/messenger-platform/getting-started/sample-apps/?translation用Python 寫一個 fb Messenger Bot手把手教你搭建 LINE 聊天機器人LineBot+Python,輕鬆建立聊天機器人(北科大程式設計研究社)

* https://developers.line.biz/en/services/messaging-api/(LINE 關方網站教學文件)

* 防詐騙、防詐騙、防詐騙
 南寧詐騙案全台灣有 25萬人被騙 !小心詐騙 !小心詐騙 !小心詐騙 !投資自己,讓今天的自己 比 昨天的自己 更值錢 ! ( 建議每天 15分鐘在 voiceTube.tw )
* 

* 提醒 IoTtalk 新手入門應用手冊在這: https://iottalk.vip/000/;
* 關於 IoTtalk 的使用也請先大概看看IoTtalk的使用手冊:
    http://liny.cs.nctu.edu.tw/#IoTtalk(林一平教授網頁) 
  ==> 點入後在 Document 下方, 有中文版和英文版;   也可點這看更多手冊
 * 如想用NodeMCU-ESP8266連接 IoTtalk, 建議也 先看看 ArduTalk 操作手冊 
  


 
台鐵火車查詢
You are the website counter -th visitors.             The W3C Markup Validation Service
* 點這看如何快速安裝 IoTtalk 系統 (要先花錢取得交大授權才可以喔:-)
* 點這看如何選擇 VPS ?(建議用 Hostwinds.com 或流量小可以先用免費的 AWS EC2)

* PuTTY official site to Download PuTTY   PieTTY project official site   Download Pietty0400b14.zip
 
  整理 by 蔡文能 tsaiwn@cs.nctu.edu.tw     交大資工系     tsaiwn.weebly.com     LINE ID: tsaiwn     FB: fb.me/tsaiwn     幾個英文字讀音   TOP
  TOP   Find your FB ID: https://findmyfbid.com/ if you want to Find your Facebook ID for your fb:admins