ひろひろの生活日記(LIFE Of HIROHIRO)

パソコン講習とソフト開発をしています。自作小説も掲載しています。ネット情報発信基地(上野博隆)Hirotaka Ueno

0001身体の構造設計。(ロボット)

2021年12月11日 15時05分20秒 | ゲーム開発(Game development)

0001身体の構造設計。

・6面(頭(髪)、顔、首、同体、腰、お尻)
・(右腕(手、下腕、上腕)、左腕、
  右足(腿(もも)、脛(すね))、
  左足)
・関節(首、腰、手首、足首、肩、膝(ひざ)、肘(ひじ))

・首(回る)
・腕(曲がる)
・足(曲がる)
・腰(曲がる)
・曲がる回るには方向と限度がある。
・手は特別な動作(掴(つか)む)
・足は蹴る。
・顔、頭は別管理
・関節は、円で中点を管理
・腕、足は長方形で描写。長方形の辺の中心と長さ、幅
・胸の中心を描画の中心とする。

長方形は、1点と長さと幅で表示。

 

・自動バランス(AI)

 

つづく

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

道路を曲げる。

2021年12月11日 11時33分57秒 | ゲーム開発(Game development)

道路をカーソルキーを使って曲げます。デバッグでキーの値を表示しています。

 

キャラクターセットが消えています。指定してください。

辺の横寸はiの乗数で変する
差分がdiとiの整数倍で変化する

 

<textarea name="myTEXT" rows="50">

<html>
<head>

<title>CAR_GAME</title>
<script language="javascript" src="cargameV004.js"></script>
</head>
<body onload="init()">
<canvas id="world"></canvas>



</body>
</html>

 

</textarea>

 

 

***cargameV004.jsのコード***

var canvas;
var ctx;


WIDTH  = 800;
HEIGHT = 600;

var bordcolor = ["white", "silver", "gray"];


function init(){
    canvas = document.getElementById('world');
    canvas.width = WIDTH;
    canvas.height = HEIGHT;
    ctx = canvas.getContext('2d');
    ctx.font = "48px 'MS Pゴシック'";

    user = window.navigator.userAgent.toLowerCase();

    document.addEventListener("keydown", keydown);

    draw_road(0);


}
//キーが押された時の処理
function keydown(e){
  k = e.keyCode;

    if(k==37) draw_road(-10); if(k==39) draw_road(20); if(k==38) draw_road(0); 
    element = document.getElementById("idresult2");
    element.innerHTML = " k=" + k;
    
}
function draw_road(di){
    //(描画処理)
    ctx.fillStyle = "blue";
    ctx.fillRect(0, 0, WIDTH, HEIGHT);

    ctx.fillStyle = "green";
    ctx.fillRect(0, 300, WIDTH, 300);
    h = 24;
    y = 600 - h;
    for (i=23; i >= 0; i--){
        
        uw = (i-1) * (i-1) * 1.5;
        ux = 400 - uw / 2 + di*(23-(i-1));
        bw = i * i * 1.5;
        bx = 400 - bw/2 + di*(23-i);
        wkcolor = i % 3;
        ctx.beginPath();
        ctx.moveTo(ux,y);
        ctx.lineTo(ux+uw,y);
        ctx.lineTo(bx+bw,y+h);
        ctx.lineTo(bx,y+h);
//全て座標を指定 

        ctx.closePath();
        ctx.fillStyle = bordcolor[wkcolor]
        ctx.fill();

        h = h - 1;
        y = y - h;
    }
    msg_draw();
}
// ゲームオーバーの表示
function msg_draw(){
    ctx.font = "20px 'MS Pゴシック'";
    ctx.fillStyle = "white";
    ctx.fillText("カーソルキーの上、左、右を押してください",200,100); 
}

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする