苏德库尔斯克坦克大战。
1943年7月夏季的库尔斯克会战,是迄今人类历史上规模最大的坦克大会战,是二战中德军最优秀的战役指挥曼施坦因陆军元帅精心策划地、旨在迫使苏联签署一个不分胜负之和约的进攻战役。
苏联红军最优秀的两位苏联元帅朱可夫和华西列夫斯基指挥苏联红军成功地进行了防守反击,在付出巨大牺牲的代价下,粉碎了德军的进攻,耗尽了德军的进攻潜力。
从此直至战争结束,德军再未主动发起过进攻战役。
因此,朱可夫苏联元帅称库尔斯克会战为苏联伟大卫国战争的转折点和二战的转折点。
苏联军队比德国多40万甚至110万而且是苏联的地头阿苏联有群众基础对比一下两方的军力一目了然德军调集了中央集团军群和南方集团军群的17个装甲师、3个摩托化师和16个步兵师。
北面中央集团军群派出了由莫德尔指挥的第9集团军,辖有6个装甲师、1个摩托化师和11个步兵师;南翼南方集团军群出动了两个军团,他们是霍特指挥的第4装甲集团军和肯夫指挥的肯夫兵团,共有11个装甲师、2个摩托化师和5个步兵师。
另外约有20个师准备在突击集团翼侧行动,第4、第6航空队进行空中支援。
总兵力为90万人,2700辆坦克,1万门火炮和2000多架飞机。
苏军在库尔斯克突出部地域集结了130万人的兵力,2万多门火炮,3400辆坦克和2100余架飞机。
北边是罗科索夫斯基指挥的中央方面军,南边是瓦图京指挥的沃罗涅日方面军。
另外突出部的北面有波波夫指挥的布良斯克方面军,南边是马利诺夫斯基的西南方面军。
突出部后方的预备队则是可涅夫指挥的草原方面军。
总兵力超过200万,坦克更多达5000辆。
视频介绍
欢迎来到程序小院
玩法: 键盘(A W S D)键来控制方向,空格键发射子弹,N:下一关,P:上一关,Enter:开始,赶紧去闯关吧^^
开始游戏
<canvas id=&34; ></canvas> <canvas id=&34; ></canvas> <canvas id=&34; ></canvas> <canvas id=&34; ></canvas> <canvas id=&34; ></canvas>
canvasDiv{ margin:0 auto; } .demo-scroll{ overflow-y: scroll; width: 100%; height: 100%; } .column { float: left; width: 50%; padding: 0 2em; min-height: 300px; position: relative; } .column:nth-child(2) { box-shadow: -1px 0 0 rgba(0,0,0,0.1); } .column p { font-weight: 300; font-size: 2em; padding: 0; margin: 0; text-align: right; line-height: 1.5; }
/** * 绘制地图 */ this.draw = function(){ this.wallCtx.fillStyle = &4a4a4a&34;34;; this.wallCtx.fillRect(this.offsetX,this.offsetY,this.mapWidth,this.mapHeight);//主游戏区 this.grassCtx.clearRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT); for(var i=0;i<this.HTileCount;i++){ for(var j=0;j<this.wTileCount;j++){ if(this.mapLevel[i][j] == WALL || this.mapLevel[i][j] == GRID || this.mapLevel[i][j] == WATER || this.mapLevel[i][j] == ICE){ this.wallCtx.drawImage(RESOURCE_IMAGE,this.tileSize*(this.mapLevel[i][j]-1) + POS[&34;][0], POS[&34;][1],this.tileSize,this.tileSize,j*this.tileSize + this.offsetX, i*this.tileSize + this.offsetY,this.tileSize,this.tileSize) ; }else if(this.mapLevel[i][j] == GRASS){ this.grassCtx.drawImage(RESOURCE_IMAGE,this.tileSize*(this.mapLevel[i][j]-1) + POS[&34;][0], POS[&34;][1],this.tileSize,this.tileSize,j*this.tileSize + this.offsetX, i*this.tileSize + this.offsetY,this.tileSize,this.tileSize); }else if(this.mapLevel[i][j] == HOME){ this.wallCtx.drawImage(RESOURCE_IMAGE,POS[&34;][0], POS[&34;][1], this.homeSize, this.homeSize, j*this.tileSize + this.offsetX, i*this.tileSize + this.offsetY, this.homeSize, this.homeSize) ; } } } this.drawNoChange(); this.drawEnemyNum(maxEnemy); this.drawLevel(); this.drawLives(0,1); this.drawLives(0,2); }; /** * 画固定不变的部分 */ this.drawNoChange = function(){ this.wallCtx.drawImage(RESOURCE_IMAGE, POS[&34;][0], POS[&34;][1], 30, 32, 464, 256, 30, 32);//player1 this.wallCtx.drawImage(RESOURCE_IMAGE, 30 + POS[&34;][0], POS[&34;][1], 30, 32, 464, 304, 30, 32);//player2 //30,32旗帜的size, 464, 352旗帜在canvas中位置 this.wallCtx.drawImage(RESOURCE_IMAGE, 60 + POS[&34;][0], POS[&34;][1], 30, 32, 464, 352, 32, 30);//画旗帜 }; /** * 画关卡数 */ this.drawLevel = function(){ this.num.draw(this.level,468, 384); }; /** * 画右侧敌方坦克数 * @param enemyNum 地方坦克总数 */ this.drawEnemyNum = function(enemyNum){ var x = 466; var y = 34; var enemySize = 16; for(var i=1;i<=enemyNum;i++){ var tempX = x; var tempY = y + parseInt((i+1)/2)*enemySize; if(i%2 == 0){ tempX = x + enemySize; } this.wallCtx.drawImage(RESOURCE_IMAGE,92 + POS[&34;][0],POS[&34;][1],14, 14,tempX, tempY,14, 14); } }; /** * 清除右侧敌方坦克数,从最下面开始清楚 * @param totolEnemyNum 敌方坦克的总数 * @param enemyNum 已出现的敌方坦克数 */ this.clearEnemyNum = function(totolEnemyNum,enemyNum){ var x = 466; var y = 34 + this.offsetY; if(enemyNum <= 0){ return ; } var enemySize = 16; this.wallCtx.fillStyle = &7f7f7f&34;34;; this.wallCtx.fillRect(x,y,this.num.size,this.num.size); this.num.draw(lives,x,y); //this.wallCtx.drawImage(RESOURCE_IMAGE,POS[&34;][0]+lives*14,POS[&34;][1],14, 14,x, y,14, 14); }; /** * 更新地图 * @param indexArr 需要更新的地图索引数组,二维数组,如[[1,1],[2,2]] * @param target 更新之后的数值 */ this.updateMap = function(indexArr,target){ if(indexArr != null && indexArr.length > 0){ var indexSize = indexArr.length; for(var i=0;i<indexSize;i++){ var index = indexArr[i]; this.mapLevel[index[0]][index[1]] = target; if(target > 0){ this.wallCtx.drawImage(RESOURCE_IMAGE,this.tileSize*(target-1) + POS[&34;][0], POS[&34;][1],this.tileSize,this.tileSize,index[1]*this.tileSize + this.offsetX, index[0]*this.tileSize + this.offsetY,this.tileSize,this.tileSize) ; }else{ this.wallCtx.fillStyle = &000&34;; this.wallCtx.fillRect(index[1]*this.tileSize + this.offsetX, index[0]*this.tileSize + this.offsetY,this.tileSize,this.tileSize); } } } };
源码
需要源码请
转载:欢迎来到本站,转载请注明文章出处https://ormcc.com/
复制本文链接攻略资讯文章为拓城游所有,未经允许不得转载。