메뉴 건너뛰기

BLENDING

자유 게시판

혼자 해보려고 했는데 도저히 ㅠㅠ자바스크립트 조언좀 해주실분!

08김종현2012.04.29 15:01조회 수 7132댓글 19

  • 1
    • 글자 크기

dddddddd.jpg

<html>
    <head>
        <title>MOVE_IMAGE_RANDOM</title>
        <script type="text/javascript" Language="javascript">
            i=0;        //카운트 변수
            ranw=0;        //X축이동 난수용 변수
            ranh=0;        //y축이동 난수용 변수
            function rightup(){
                document.all[n].style.left=a+x;
                document.all[n].style.top=b-y;
                } //우,상 이동 함수
            function leftup(){
                document.all[n].style.left=a-x;
                document.all[n].style.top=b-y;
                }//좌,상 이동 함수
            function rightdown(){
                document.all[n].style.left=a+x;
                document.all[n].style.top=b+y;
                }//우,하 이동 함수
            function leftdown(){
                document.all[n].style.left=a-x;
                document.all[n].style.top=b+y;
                }//좌,하 이동 함수
            function move(){
                n="ball";
                x=3;
                y=1;
                t=screen.availWidth;            //화면의 넓이
                h=screen.availheight;            //화면의 높이
                a=parseInt(document.all[n].style.left);
                b=parseInt(document.all[n].style.top);
                c=parseInt(document.all[n].style.left);
                d=parseInt(document.all[n].style.top);
                if(i==0){
                    ranw=Math.random()*2+1; //X축이동을 결정하는 난수 발생
                    ranh=Math.random()*2+1; //Y축이동을 결정하는 난수 발생
                }//최초 실행시 난수발생
                else{
                    ranw=ranw;
                    ranh=ranh;
                }
                xx=i*x;
                yy=i*y;
                i=i+1;
                switch{
                    case 'ranw==1&&ranh==1':
                        setTimeout('leftup()',1); setTiomeout('move()',1);
                        break
                    case 'ranw==2&&ranh==1':
                        setTimeout('rightup()',1); setTiomeout('move()',1);
                        break
                    case 'ranw==1&&ranh==2':
                        setTimeout('leftdown()',1); setTiomeout('move()',1);
                        break
                    case 'ranw==2&&ranh==2':
                        setTimeout('rightdown()',1); setTiomeout('move()',1);
                        break
                    default:
                        break
                }


            }
        </script>
    </head>
    <body bgcolor="white"   leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
        <div id="ball" style="width:80px; height:80px; position:absolute; left:600px; top:300px; z-index:1;">
            <p><img src="ball.jpg" width="80" height="80" border="0" onclick="move()">
            </p>
        </div><p>
    </body>
</html>

각 방향으로 움직이는건 확인 했는데,

난수로 시작방향 랜덤하게 하는 부분에서 막히네요

난수 발생이 문제일까요...

  • 1
    • 글자 크기
b드라이브 (by 11김효정) b드라이브 (by 11김효정)

댓글 달기

댓글 19
  • 랜덤.....곱하기가 아니라 나누기를 해야하지 않아? ㅋㅋ

  • 08김종현님께

    랜덤에는 아무 문제 없음요 ㅋ

  • '09김제동님께
    08김종현글쓴이
    2012.4.29 23:39 댓글추천 0비추천 0

    랜덤메소드 상용법 검색해보니까 저런식으로 나오더라구요.

    Math.random()은 0~1난수발생

    Math.random()*10은 0~10난수발생...

    역시 랜덤에 문제가 있는걸까요?

  • 1. 난수값 출력해 볼것 - alert 이용하면 쉽게 확인가능

    (Integer로 값이 고정된게 아님!)

     

    2. 스위치문... 저 형태로 되는지 모르겠고 저런식이면 일반적으로 이프문을 쓰지않나

     

    3. 스위치문 안에 setTiomeout <<== 오타

  • 07최윤수님께
    08김종현글쓴이
    2012.4.30 23:26 댓글추천 0비추천 0

    alert으로 해보니 바로 랜덤에 문제 있다는게 체크 되더라구요

    감사합니다.

  • 작년에도 애들 이문제에서 좌절하던데 ㅋㅋㅋㅋㅋ

  • 쉽게 생각하면 될텐데 ㅋ
    굳이 랜덤 함수 안써도됨(작년에는 그랬음 ㅋ)  //이번 문제에선 써야겠구나 ㅋㅋ (그래도 크게 바뀌는거는 없을듯 ㅋ)

    X축과 Y축 이동을 따로따로 보고 생각하면 더 쉬움. ㅋ

    함수도 move하나만 있어도 충분 ㅋ


    좌측벽에 만나면 우측으로

    우측벽에 만나면 좌측으로


    위벽에 만나면 아래로

    아래벽에 만나면 위로 ㅋ


    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

  • 08김종현글쓴이
    2012.4.29 23:41 댓글추천 0비추천 0

    포풍 댓글 감사합니다.

    이번엔 제발 되길..ㅠㅠ

  • 06한훈님께
    08김종현글쓴이
    2012.4.30 00:59 댓글추천 0비추천 0

    일단 전공책엔 저렇게 되어있는데

    의심스러워서 IF로 하니까 첫 시작시 임의방향으로 이동되는건 잘되고있어요

  • 08김종현님께

    그러고 보니 스위치문 저렇게 쓰는거 확실함? ㅋ

  • 06한훈님께
    당첨! 06한훈님에게 3포인트 팡팡 쏩니다!
  • 역시훈이형乃

  • 작년에 했던거랑 비슷한....

    작년엔 스크립트 실행하면 기본위치에서 지정방향으로 이동하고 스크린 경계면을 만나면 입사각에 따른 반사각으로 튕겨나가는 형태였는데 올해는 마우스이벤트 추가되고 경계면 만나면 반사각이 랜덤한 수치로 지정되게 바꼈네요.

    그런 의미에서 후니형 감사합니다 땡큐.

  • 10신건님께

    에이 그렇게 따지면 작년에는 

    페이지 뜨자마자 실행되는거라 body에서 onload에 넣었었는데 그게 더 생소하지 ㅋㅋ

  • 06한훈님께

    마우스이벤트에서 조금 헤메는거 같더라구요.

    자바스크립트가 조금 생소해서 그런건지;;

  • 10신건님께

    오히려 마우스 이벤트가 더 쉽지않나? ㅋ (별차이는 크게 없지만;)

    반사각이야 증가값만 랜덤으로 해주면 알아서 랜덤이 되는거고 ㅋㅋ


  • 08김종현글쓴이
    2012.4.30 23:25 댓글추천 0비추천 0

    감사합니다.

    무사히 과제제출했어영

    일단 본문에 있던 랜덤이동이 안되었던 가장 큰 이유중 하나는

    random메소드 부분이였던거 같습니다.

    본문처럼 하니까 1~3?0~3?아무튼 3까지 출력되더군요

    Math.round(Math.random()*1+1 로 해야 1,2만 출력이 됬었습니다.

    둘째는 아마 switch case였던거 같구요



  • 으 이문제 볼때마다 후니형이 생각나네요 ㅠㅠ

    보고싶어요 형

번호 제목 글쓴이 날짜 조회 수
공지 [난해한코딩대회] 예시4 16황지우 2020.08.31 424
공지 회장님 훈화말씀16 16황지우 2020.03.16 8651
공지 스맛폰으로 BLENDING홈피 새글 알림 받기1 BLENDING 2011.06.25 195347
3282 정답사회4 10신건 2012.06.01 11003
3281 홈페이지가 죽었슴다3 08정유정 2012.05.25 10513
3280 “컴투스 소프트웨어 멤버십” 제3기 모집 설명회 개최1 07서동민 2012.05.25 10749
3279 컴투스 멤버십 3기 모집 설명회 안내입니다~1 07서동민 2012.05.24 10180
3278 [앱창작터] 여름방학 집중 안드로이드, 아이폰 기본개발자과정 수강생 모집4 10신건 2012.05.24 10471
3277 좋은 글 공유.3 01오치문 2012.05.23 10104
3276 [학부] 하계계절수업 수강료 납부 안내 10신건 2012.05.21 9438
3275 [필독]동아리방 이용하는 동아리원들에게6 07송남규 2012.05.19 9833
3274 박우진, 김병진님 만약 이글을 보신다면 문자좀 주세요4 11연제원 2012.05.16 7749
3273 Project 게시판3 10박태수 2012.05.14 8148
3272 블랜딩 12학번 제 1회 정기모임(날짜및시간 조사)14 12오정섭 2012.05.12 8013
3271 프로젝트 팀 모집합니다5 07최윤수 2012.05.10 7472
3270 WIS 무료 사전등록2 '09안두헌 2012.05.09 6692
3269 졸작 해야하시는, 웹에 관심있는분들? 손 발?2 07서동민 2012.05.08 7735
3268 5월 25일 08모임 알림8 08이혜린 2012.05.04 7190
3267 가평 BLENDING 펜션ㅋㅋㅋ4 07서동민 2012.05.03 10509
3266 스마트폰 게임 강연 있습니다 / 5월 3일(목) 공6호1 07서동민 2012.05.02 7232
3265 World IT Show 관람 및 신청 안내 10신건 2012.05.02 7183
3264 b드라이브2 11김효정 2012.05.01 6369
혼자 해보려고 했는데 도저히 ㅠㅠ자바스크립트 조언좀 해주실분!19 08김종현 2012.04.29 7132
이전 1 ... 21 22 23 24 25 26 27 28 29 30... 190다음
첨부 (1)
dddddddd.jpg
188.2KB / Download 17
위로