# data[].attributes.body
자료https://drive.google.com/drive/folders/1nhSuH_UKFHpbPHm917rWz_r11_3LC9Qn

학습자료https://wiki.redbrick.land/kr/ssafy13/learning-materials

디스코드

https://discord.com/invite/r3MRByzySy

# data[].attributes.attachment_link.description
Download thousands of low poly 3D models for free. No login required. Ready for AR/VR, Unity, Unreal or Godot.

# data[].attributes.body
1. 지역: 서울

2. 반: 2

3. 팀 이름: NextJump

4. 프로젝트 제목: 썩은 음식 회수하라

5. 프로젝트 설명 (간단하게): 맵에 5개의 썩은 음식이 랜덤하게 등장합니다. 다른 사람이 먹고 식중독에 걸리기 전에 먼저 5개의 음식을 회수해주세요! 1분 내에 회수하지 못하면 FAIL...

6. 프로젝트 결과 링크 (퍼블리싱 후 URL 복사): https://redbrick.land/detail-play?pid=1fb1ef99-1b68-463a-afc1-556242992606

# data[].attributes.attachment_link.title
Redbrick Engine: Unifying Creators, Developers, and Players.

# data[].attributes.attachment_link.description
Empowering Seamless Content Creation, Publication, and Monetization

# data[].attributes.body
1. 지역: 서울

2. 반: 2

3. 팀 이름: 삼성SDS 로봇게임개발팀

4. 프로젝트 제목: 줍ㄱing

5. 프로젝트 설명 (간단하게): NPC가 맵에서 플레이어가 가져와야할 오브젝트의 개수를 알려줍니다. 각 오브젝트는 플레이어와 상호작용할 수 있으며, 특정 점수를 제공합니다. 단, 오브젝트별 점수는 비-밀. 이 게임의 목표는 다양한 오브젝트의 조합을 시도하며 최고의 점수를 기록하는 것입니다. 여러 번의 시도를 통해 최적의 플레이 방식을 찾아 줍ㄱing!!

6. 프로젝트 결과 링크 (퍼블리싱 후 URL 복사): https://redbrick.land/detail-play?pid=59de7173-6b1a-43d3-9024-0d439dc004fa

# data[].attributes.attachment_link.title
Redbrick Engine: Unifying Creators, Developers, and Players.

# data[].attributes.attachment_link.description
Empowering Seamless Content Creation, Publication, and Monetization

# data[].attributes.body
1. 지역: 서울

2. 반: 2반

3. 팀 이름: 돼지? 되지!

4. 프로젝트 제목: 하늘에서 10,000 칼로리가 내려와

5. 프로젝트 설명 (간단하게): 하늘에서 떨어지는 음식들을 총 10,000 칼로리가 되도록 먹는 게임

6. 프로젝트 결과 링크 (퍼블리싱 후 URL 복사): https://redbrick.land/detail-play?pid=c9802888-ddff-42e1-96a1-942a1fb7ffb4

# data[].attributes.attachment_link.title
Redbrick Engine: Unifying Creators, Developers, and Players.

# data[].attributes.attachment_link.description
Empowering Seamless Content Creation, Publication, and Monetization

# data[].attributes.body
https://docs.google.com/forms/d/e/1FAIpQLSdHEygF2YrC0amGy2Nfb96jOsF0DYdstc03Lvt_w9hw4W12xg/viewform

# data[].attributes.body
1. 지역: 서울

2. 반: 2

3. 팀 이름: 용만이네

4. 프로젝트 제목: 장발장의 먹BREAD

5. 프로젝트 설명 (간단하게):

장발장을 감옥에 19년동안 살게 한 이유. .

무슨 빵을 훔쳤을까? 자베르의 눈을 피해 3개의 빵을 찾아라!

(가짜 빵이 있을지도 . .)

(게임방법)

awsd 방향키를 이용하여 진짜 빵 3개를 찾는다

빠르게 지나가는 차를 피해라

포탈을 찾아서 높은 곳에 있는 빵을 찾자

6. 프로젝트 결과 링크 (퍼블리싱 후 URL 복사): https://redbrick.land/detail-play?pid=c9512811-59c8-4cef-aa70-8b86275936a0

# data[].attributes.attachment_link.title
Redbrick Engine: Unifying Creators, Developers, and Players.

# data[].attributes.attachment_link.description
Empowering Seamless Content Creation, Publication, and Monetization

# data[].attributes.attachment_link.readable_text
const coin1 = WORLD.getObject("decoration_gamecoin_001(45b)");
const coin2 = WORLD.getObject("decoration_gamecoin_001(7db)");
const coin3 = WORLD.getObject("decoration_gamecoin_001(946)");
const wall = WORLD.getObject("BOX(4a0)");
const pointGUI = GUI.getObject("flat_a_button_w(223)");
const effect = WORLD.getObject("effect_10(71e)");
let point = 0;

// Initialize the point display
pointGUI.setText(point);

function Start() {
    PLAYER.onCollide(coin1, () => {
        handleCoinCollision(coin1);
    });

    PLAYER.onCollide(coin2, () => {
        handleCoinCollision(coin2);
    });

    PLAYER.onCollide(coin3, () => {
        handleCoinCollision(coin3);
    });
}

function handleCoinCollision(coin) {
    coin.kill(); // Remove the coin
    effect.getAudio().play(); // Play the effect
    point += 1; // Increase the score
    pointGUI.setText(point); // Update the GUI with the new score
    
    if (point === 3) {
        wall.kill(); // Remove the wall when score reaches 3

        // Display "Level 1 Clear!" for 2 seconds
        pointGUI.setText("Level 1 Clear!");
        setTimeout(() => {
            // After 2 seconds, display "Level 2 Start!" for another 2 seconds
            pointGUI.setText("Level 2 Start!");
            setTimeout(() => {
                // After another 2 seconds, reset the point display
                pointGUI.setText(point);
            }, 2000);
        }, 2000);
    }
}

function Update(dt) {
    // Any additional update logic can go here
}

# data[].attributes.body
1. 지역: 서울

2. 반: 2

3. 팀 이름: 싸피 해적단

4. 프로젝트 제목: 원피스

5. 프로젝트 설명 (간단하게): 원피스는 존재한다! 최대한 빠르게 보물을 찾아서 탈출하세요!

6. 프로젝트 결과 링크 (퍼블리싱 후 URL 복사):

https://redbrick.land/detail-play?pid=bf1cea8c-a0c5-41e8-9f5e-88f3f99c3d64

# data[].attributes.attachment_link.title
Redbrick Engine: Unifying Creators, Developers, and Players.

# data[].attributes.attachment_link.description
Empower your vision with Redbrick cloud-based Engine - Easy to Build, Publish, and Earn

# data[].attributes.body
3D 스튜디오: https://creator.redbrick.land/

Wiki 가이드 자료 (수업때 쓰인 강의 자료 확인): https://wiki.redbrick.land/kr/ssafy13/learning-materials

결과물 제출:

3D 스튜디오로 만든 게임 결과물을 퍼블리싱한 후 링크를 이곳에 공유 하세요. 각 게시물에 게임 이름과 간단한 설명을 추가 해 주세요.

퍼블리싱할때 챌린지 탭에서 SSAFY13 체크해서 제출

주제는 'AI와 소통'입니다.

# data[].attributes.attachment_link.readable_text
const firetruck = WORLD.getObject("배포파일. firetruck.glb(d39)");
const phone = WORLD.getObject("배포파일. Phone.glb(45d)");
const ring = WORLD.getObject("배포파일. phonecall.mp3(466)");
const siren = WORLD.getObject("배포파일. firesiren.mp3(340)");
const truckstop = WORLD.getObject("BOX(d53)");
const fire = WORLD.getObject("ParticleSystem(253)");
const firelight = WORLD.getObject("PointLight(3ef)");
const pointGUI = GUI.getObject("flat_a_button_w(223)"); // Assuming this is the correct object for displaying text

function Start() {
    PLAYER.onCollide(phone, () => {
        handlePhoneCollision();
    });

    firetruck.onCollide(truckstop, () => {
        handleTruckStopCollision();
    });
}

function handlePhoneCollision() {
    // Play the ring sound
    if (ring && ring.getAudio) {
        ring.getAudio().play();
    }

    // After 2 seconds, move the firetruck
    setTimeout(() => {
        moveFiretruck();
    }, 2000);
}

function moveFiretruck() {
    // Move the firetruck to the new position
    if (firetruck && firetruck.move) {
        firetruck.move(95, 0, 0, 10);
    }

    // Play the siren sound
    if (siren && siren.getAudio) {
        siren.getAudio().play();
    }
}

function handleTruckStopCollision() {
    // After 2 seconds, remove the fire and firelight
    setTimeout(() => {
        if (fire && fire.stopEmit) {
            fire.stopEmit();
        }
        if (firelight && firelight.kill) {
            firelight.kill();
        }

        // After turning off fire and firelight, display "Level 2 Clear" for 2 seconds
        if (pointGUI && pointGUI.setText) {
            pointGUI.setText("Level 2 Clear");
            setTimeout(() => {
                pointGUI.setText(""); // Clear the message after 2 seconds
            }, 2000);
        }
    }, 2000);
}

function Update(dt) {
    // Any additional update logic can go here
}