顯示具有 Week16 標籤的文章。 顯示所有文章
顯示具有 Week16 標籤的文章。 顯示所有文章

2018年1月14日 星期日

計圖筆記WEEK16

專題進度:
做出一大一小球會一分為二
float r1=200, r2=0;
float totalArea=r1*r1;
boolean touched=false;
int animT=0;
void setup(){
size(800,600);
}
void draw(){
background(255);
if(touched) fill(255,255,0);
else fill(255);
ellipse(300,300, r1,r1);
ellipse( 600,300, r2, r2);
if(touched && animT>0){
//same total area
float diff=(totalArea/3) / 60 * (60-animT);
r2=sqrt(diff);
r1=sqrt(totalArea-diff);
animT--;
}
}
void mousePressed(){
if( dist( mouseX, mouseY, 300,300 ) < r1/2 ){
touched=true;
animT=60;
}
}

2018年1月13日 星期六

圖學筆記乄Week16



期末專題製作:

進度:

匯入模型,設計室內空間。

難題:
模型顏色?環境顏色改變。

解決:
貼圖影響顏色部分:因為貼圖完,OpenGL會依照最後一個顏色再繼續畫下去,所以影響其他部分。
=>
方法: 沒有貼圖的部分,glDisable(GL_TEXTURE_2D);  使用此程式碼關閉貼圖,
在要貼圖地方glEnable(GL_TEXTURE_2D); 使用此語法。


圖示:
glDisable(GL_TEXTURE_2D);
=>

沒有:
=>


地面受影響。




















Weiting的計圖第十六週

期末專題準備:

嘗試用p語言和glut製作專題

p語言:
製作出了一個3D間和一顆球(Sphere)並且讓他可以在空間中自由移動


glut:
運用2D座標系統製作了一個假3D場景


搜尋房間設備且規劃版面配置

Week 16 陳泱竹

討論專題
->共筆連結:https://hackmd.io/s/B1j4leggM

2018年1月12日 星期五

Claire's Note #16

WEEK16

Topic:

  1. 期末作品Q&A

A. 期末專題

已具備基礎功能及部分附加功能:
主頁面:鍵盤控制旋轉、轉換視角
介面:計時、開新遊戲鍵、暫停鍵


目標:
1. 警告視窗:遊戲進行中按下 [NEW GAME] 時,跳出確認視窗確定是否再開新的一局
2. 改以滑鼠控制旋轉

STEP 1: 多視窗

問題:關閉小視窗時,原本的主視窗也會被關閉
解決方法:改以MessageBox顯示

MessageBox(NULL"是否開啟新局?"""MB_YESNO);
回傳值:按鈕ID
是:IDYES,否:IDNO


STEP 2: 滑鼠控制

問題:如何在滑鼠點擊頁面時,取得投影至該點的物件

參考範例程式碼:Selection()







詠銓_Week16_Note

Class: 專題製作

1.承上進度:
    a.上次以完成了砲管以及球串軌道的製作

    b.這次一開始先用Timer定速,讓軌道速度能一致。

    c.接著寫mouse函式,使得在點擊左鍵時能將砲管中的球發射。

    d.為了讓 c. 方便製作,將砲管也寫成物件,當中包含了發射球跟準備球。

    e.接著想辦法讓發射出去的球插入球串。

2.卡關部分:
    a.如何記錄發射出去的球與此球的動畫?

    b.如何顯示插入球串的動畫?

3.解決問題:
    a.另寫了一個freeball的結構,為一個鏈結串列,只要發射一顆球,就把該球保存到一個節點
       中,解決了一次多顆球在畫面上的問題,也方便動畫呈現。

    b.準備了碰撞偵測函式、判斷插入方向函式、插入位置設定函式等來輔助freeball插入ballist
       的動作。




Claire 的課堂作業 week16




計算機圖學 Computer Graphics

  1. 主題:期末作品 Q & A
今天的進度完全都是期末作品的Q&A,而且終於輪到我了 ya
在問老師問題前,我已經完成俄羅斯方塊的背景、隨機形狀和顏色,並且可以左右移動

遇到最大的問題就是方塊該怎的掉下來?以及在OpenGL下怎麼實作碰撞偵測?


我選擇問老師碰撞偵測的問題
而老師則用Processing來示範,程式碼如下,加了一些筆記註解



執行結果如下


回家後改一改程式,就變成了下面的樣子(完成下方的偵測 xD)
原來我一開始寫的時候沒有考慮到後面開發的操作方便性
直接把圖形畫在視窗上的座標轉成浮點數,沒有善用到背景的array
後來將陣列和螢幕上的位置重新配置(換一種寫法)就順利多了

2018年1月11日 星期四

楊喻文的學習手札 20171228

week16

製作期末作品

製作作品中~~

這周我加上了泡泡的部分,讓作品可以隨意地增加泡泡與減少泡泡

羅浩倫的學習筆記 Week16

本週沒有上課


專題進度
上週請教過老師之後決定使用opencv來做背景的貼圖,程式碼:


#ifndef BACKGROUND_H_INCLUDED
#define BACKGROUND_H_INCLUDED

#include "freeglut.h"

int myTexture(char *filename);
void displayBackground(GLUquadric *quad, GLuint &BGid);


#endif // BACKGROUND_H_INCLUDED

大致上是利用老師在week8的時候教的"如何在球體上貼圖(地球)"所寫的程式碼改編而成的,不過在跟我自己的程式碼組合在一起的時候還是花了不少時間,不過還好我(自認)寫程式的習慣還不錯,把不同的功能的程式碼組合起來並不需要太多步驟,整體來說算是順利的完成背景了。

目前我有想到可以在一顆球體上直接貼一張背景圖,讓MMD模型直接在球體中間跳舞,因為如果只是在背景貼一張圖的話,旋轉視角之後就會顯得很突兀,下週就是最後一週了,希望可以順利完成我的期末作品。

40147027S-Week16

期末作品 製作:

  1. selection 使用 (openGL)
  2. message box (openGL)
  3. 聲道控制 (Processing)
  4. 遊戲軌道製作 (Processing)
  5. 水波紋分享 http://madebyevan.com/webgl-water/
    PS:與我的主題操作相似

2017年12月30日 星期六

吳映廷 計算機圖學 week16

本週的主題是製作期末作品。
這次開始使用Unity,把主角和基本的game manager 弄好了。
以下是基本的game manager程式碼。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class GM : MonoBehaviour
{
    public static GM instance;
 
    void Awake()
    {

        {
            if (instance == null)

                instance = this;

            else if (instance != this)
                Destroy(gameObject);
        }
        Application.targetFrameRate = 60;
    }
void Update()
    {
        //每frame會自動呼叫一次的函式
    }
}
以下是主角的程式碼。
public class stick_man : MonoBehaviour
{
    public bool isAttack = false;
    public bool isAttack_R = false;
    public float attackTime = 0,attackTime_R = 0;
    private bool isDead = false;         

    private Animator anim;               
    private Rigidbody2D rb2d;
    void Start()
    {
        anim = GetComponent<Animator>();
        rb2d = GetComponent<Rigidbody2D>();
    }
    void Update()
    {
        if (isDead == false)
        {
            if (Input.GetKeyDown(KeyCode.LeftArrow))
            {
                Vector3 theScale = transform.localScale;
                theScale.x = Math.Abs(theScale.x);
                transform.localScale = theScale;

                System.Random rnd = new System.Random();
                var attackType = rnd.Next(0, 3);

                isAttack = true;

                switch (attackType)
                {
                    case 0:
                        anim.SetTrigger("punch");
                        break;
                    case 1:
                        anim.SetTrigger("elbow");
                        break;
                    case 2:
                        anim.SetTrigger("kick");
                        break;

                }

            }
            if (Input.GetKeyDown(KeyCode.RightArrow))
            {
                Vector3 theScale = transform.localScale;
                theScale.x = -Math.Abs(theScale.x);
                transform.localScale = theScale;

                System.Random rnd = new System.Random();
                var attackType = rnd.Next(0, 3);

                isAttack_R = true;

                switch (attackType)
                {
                    case 0:
                        anim.SetTrigger("punch");
                        break;
                    case 1:
                        anim.SetTrigger("elbow");
                        break;
                    case 2:
                        anim.SetTrigger("kick");
                        break;

                }

            }
            if (attackTime >= 1.5)
            {
                isAttack = false;
                attackTime = 0;
            }
            if (attackTime_R >= 1.5)
            {
                isAttack_R = false;
                attackTime_R = 0;
            }
            attackTime += Time.deltaTime;
            attackTime_R += Time.deltaTime;

        }
        if (isDead == true)
        {
            Destroy(this.gameObject);
        }
    }
}

2017年12月28日 星期四

LBH的計圖學習筆記_week 16

一 、 上課內容

1. 期末專題製作

Hello World_OpenGL_note_Week16

week 16


本周進度:

進入期末作品的設計。

尋找靈感。參考: http://madebyevan.com/webgl-water/

網頁中介紹詳細的水波紋設計,可以試著簡化來做。