当前位置:首页 > 代码 > 正文

飞机大战游戏代码(飞机大战游戏代码java)

admin 发布:2022-12-19 19:59 119


今天给各位分享飞机大战游戏代码的知识,其中也会对飞机大战游戏代码java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

哪位大神帮我看下FLASH AS3.0的代码,告诉我里面的_x、sx等等是什么。飞机大战的小游戏,有错误和删减

首先,你要明确一点,这不是as3.0代码,是as2.0代码

其中的sx,ang,a,c都是自定义变量属性。相当于使用 var 来声明。

_x是元件的横向坐标值。

_y是元件的纵向坐标值。

_root为主时间轴。

根据代码判断:

sx是用来计算横向坐标的。

ang是元件的角色。

c用来记录累计分数。

a用来记录是否按下按键了。防止长久按下后,响应代码,执行多次的情况。

scratch怎么做飞机大战

scratch怎么做飞机大战?今天我们就来编写一个好玩的游戏,想必大家都玩过QQ游戏里的雷电,或者手机游戏里的雷霆战机或者全民飞机大战...没错,今天我们要做的游戏就是——飞机大战!

我们的游戏规则是:利用键盘的左右键控制飞机的左右移动,子弹会不断地从飞机中发射出来,子弹碰到敌军飞机便爆炸,我们的飞机一旦碰到敌军飞机游戏便结束;下面就跟着我一起做游戏吧!

第一步:创建背景和角色

第二步:利用左右键控制飞机左右移动

相信跟着我学到现在,这一步对大家来说相当简单了,我们的逻辑是,如果按下左移键,那么面向左边移动10步,如果按下右移键,那么面向右边移动10步

第三步:现在我们让飞机发射子弹,在子弹的脚本中进行编写,由于子弹是从飞机中发射的,所以我们要让子弹移到飞机的地方,不断地发射自己,也就是不断地克隆自己,然后向上移动,也就是增加Y坐标,直到碰到上边缘,便删除克隆体。

第四步:做完飞机发射子弹的功能,下面便是如果子弹碰到敌机,那么实现子弹爆炸的功能,在这里我们的子弹有12种造型:

如果子弹克隆体碰到敌机,那么便完成子弹的11个造型,最后删除克隆体。

第五步:现在我们要让敌机从上朝下运动,同样运用到了克隆,当我们点击开始时,让敌机在随机地时间里克隆自己,在这里我们用到了重复执行计时器/10次。

小朋友们想想这段代码代表什么意思呢?

聪明的小朋友一定看出来了,这段代码其实是在增加我们的游戏难度,当计时器的值越大,克隆的敌机就越多。

第六步:当敌机作为克隆体启动时,让其移动到随机位置向下运动,当运动到下边缘便删除克隆体,那么随机位置是改变的X坐标还是Y坐标呢?当然是X坐标啦,向下运动便是让Y坐标减少

第七步:最后增加游戏的判断条件,如果敌机碰到子弹,那么敌机消失;如果敌机碰到飞机,那么游戏结束,切换GANE OVER背景。

做到这里我们的游戏就完美地完成了,这里大家可以拓展一下,给游戏增加一个记分的功能,统计小朋友一共摧毁了多少架敌机,比比谁摧毁的敌军最多~

求C++飞机大战的代码(有注释的最好)

#includeiostream

#includewindows.h

#includeconio.h

#includetime.h

#includestring

using namespace std;

/*=============== all the structures ===============*/

typedef struct Frame

{

COORD position[2];

int flag;

}Frame;

/*=============== all the functions ===============*/

void SetPos(COORD a)// set cursor 

{

HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(out, a);

}

void SetPos(int i, int j)// set cursor

{

COORD pos={i, j};

SetPos(pos);

}

void HideCursor()

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0}; 

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cursor_info);

}

//把第y行,[x1, x2) 之间的坐标填充为 ch

void drawRow(int y, int x1, int x2, char ch)

{

SetPos(x1,y);

for(int i = 0; i = (x2-x1); i++)

coutch;

}

//在a, b 纵坐标相同的前提下,把坐标 [a, b] 之间填充为 ch

void drawRow(COORD a, COORD b, char ch)

{

if(a.Y == b.Y)

drawRow(a.Y, a.X, b.X, ch);

else

{

SetPos(0, 25);

cout"error code 01:无法填充行,因为两个坐标的纵坐标(x)不相等";

system("pause");

}

}

//把第x列,[y1, y2] 之间的坐标填充为 ch

void drawCol(int x, int y1, int y2, char ch)

{

int y=y1;

while(y!=y2+1)

{

SetPos(x, y);

coutch;

y++;

}

}

//在a, b 横坐标相同的前提下,把坐标 [a, b] 之间填充为 ch

void drawCol(COORD a, COORD b, char ch)

{

if(a.X == b.X)

drawCol(a.X, a.Y, b.Y, ch);

else

{

SetPos(0, 25);

cout"error code 02:无法填充列,因为两个坐标的横坐标(y)不相等";

system("pause");

}

}

//左上角坐标、右下角坐标、用row填充行、用col填充列

void drawFrame(COORD a, COORD  b, char row, char col)

{

drawRow(a.Y, a.X+1, b.X-1, row);

drawRow(b.Y, a.X+1, b.X-1, row);

drawCol(a.X, a.Y+1, b.Y-1, col);

drawCol(b.X, a.Y+1, b.Y-1, col);

}

void drawFrame(int x1, int y1, int x2, int y2, char row, char col)

{

COORD a={x1, y1};

COORD b={x2, y2};

drawFrame(a, b, row, col);

}

void drawFrame(Frame frame, char row, char col)

{

COORD a = frame.position[0];

COORD b = frame.position[1];

drawFrame(a, b, row, col);

}

void drawPlaying()

{

drawFrame(0, 0, 48, 24, '=', '|');// draw map frame;

drawFrame(49, 0, 79, 4, '-', '|');// draw output frame

drawFrame(49, 4, 79, 9, '-', '|');// draw score frame

drawFrame(49, 9, 79, 20, '-', '|');// draw operate frame

drawFrame(49, 20, 79, 24, '-', '|');// draw other message frame

SetPos(52, 6);

cout"得分:";

SetPos(52, 7);

cout"称号:";

SetPos(52,10);

cout"操作方式:";

SetPos(52,12);

cout"  a,s,d,w 控制战机移动。";

SetPos(52,14);

cout"  p 暂停游戏。";

SetPos(52,16);

cout"  e 退出游戏。";

}

//在[a, b)之间产生一个随机整数

int random(int a, int b)

{

int c=(rand() % (a-b))+ a;

return c;

}

//在两个坐标包括的矩形框内随机产生一个坐标

COORD random(COORD a, COORD b)

{

int x=random(a.X, b.X);

int y=random(a.Y, b.Y);

COORD c={x, y};

return c;

}

bool  judgeCoordInFrame(Frame frame, COORD spot)

{

if(spot.X=frame.position[0].X)

if(spot.X=frame.position[1].X)

if(spot.Y=frame.position[0].Y)

if(spot.Y=frame.position[0].Y)

return true;

return false;

}

void printCoord(COORD a)

{

cout "( "a.X" , "a.Y" )";

}

void printFrameCoord(Frame a)

{

printCoord(a.position[0]);

cout " - ";

printCoord(a.position[1]);

}

int drawMenu()

{

SetPos(30, 1);

cout"P l a n e  W a r";

drawRow(3, 0, 79, '-');

drawRow(5, 0, 79, '-');

SetPos(28, 4);

cout"w 和 s 选择, k 确定";

SetPos(15, 11);

cout"1. 简单的敌人";

SetPos(15, 13);

cout"2. 冷酷的敌人";

drawRow(20, 0, 79, '-');

drawRow(22, 0, 79, '-');

SetPos(47, 11);

cout"简单的敌人:";

SetPos(51, 13);

cout"简单敌人有着较慢的移动速度。";

SetPos(24, 21);

int j=11;

SetPos(12, j);

cout"";

//drawFrame(45, 9, 79, 17, '=', '|');

while(1)

{ if( _kbhit() )

{

char x=_getch();

switch (x)

{

case 'w' :

{

if( j == 13)

{

SetPos(12, j);

cout" ";

j = 11;

SetPos(12, j);

cout"";

SetPos(51, 13);

cout"";

SetPos(47, 11);

cout"简单的敌人:";

SetPos(51, 13);

cout"简单敌人有着较慢的移动速度。";

}

break;

}

case 's' :

{

if( j == 11 )

{

SetPos(12, j);

cout" ";

j = 13;

SetPos(12, j);

cout"";

SetPos(51, 13);

cout"";

SetPos(47, 11);

cout"冷酷的敌人:";

SetPos(51, 13);

cout"冷酷的敌人移动速度较快。";

}

break;

}

case 'k' :

{

if (j == 8) return 1;

else return 2;

}

}

}

}

}

/* 

DWORD WINAPI MusicFun(LPVOID lpParamte)

{

//DWORD OBJ;

sndPlaySound(TEXT("bgm.wav"), SND_FILENAME|SND_ASYNC);

return 0;

}

*/

/*================== the Game Class ==================*/

class Game

{

public:

COORD position[10];

COORD bullet[10];

Frame enemy[8];

int score;

int rank;

int rankf;

string title;

int flag_rank;

Game ();

//初始化所有

void initPlane();

void initBullet();

void initEnemy();

//初始化其中一个

//void initThisBullet( COORD );

//void initThisEnemy( Frame );

void planeMove(char);

void bulletMove();

void enemyMove();

//填充所有

void drawPlane();

void drawPlaneToNull();

void drawBullet();

void drawBulletToNull();

void drawEnemy();

void drawEnemyToNull();

//填充其中一个

void drawThisBulletToNull( COORD );

void drawThisEnemyToNull( Frame );

void Pause();

void Playing();

void judgePlane();

void judgeEnemy();

void Shoot();

void GameOver();

void printScore();

};

Game::Game()

{

initPlane();

initBullet();

initEnemy();

score = 0;

rank = 25;

rankf = 0;

flag_rank = 0;

}

void Game::initPlane()

{

COORD centren={39, 22};

position[0].X=position[5].X=position[7].X=position[9].X=centren.X;

position[1].X=centren.X-2;

position[2].X=position[6].X=centren.X-1;

position[3].X=position[8].X=centren.X+1;

position[4].X=centren.X+2;

for(int i=0; i=4; i++)

position[i].Y=centren.Y;

for(int i=6; i=8; i++)

position[i].Y=centren.Y+1;

position[5].Y=centren.Y-1;

position[9].Y=centren.Y-2;

}

void Game::drawPlane()

{

for(int i=0; i9; i++)

{

SetPos(position[i]);

if(i!=5)

cout"O";

else if(i==5)

cout"|";

}

}

void Game::drawPlaneToNull()

{

for(int i=0; i9; i++)

{

SetPos(position[i]);

cout" ";

}

}

void Game::initBullet()

{

for(int i=0; i10; i++)

bullet[i].Y = 30;

}

void Game::drawBullet()

{

for(int i=0; i10; i++)

{

if( bullet[i].Y != 30)

{

SetPos(bullet[i]);

cout"^";

}

}

}

void Game::drawBulletToNull()

{

for(int i=0; i10; i++)

if( bullet[i].Y != 30 )

{

COORD pos={bullet[i].X, bullet[i].Y+1};

SetPos(pos);

cout" ";

}

}

void Game::initEnemy()

{

COORD a={1, 1};

COORD b={45, 15};

for(int i=0; i8; i++)

{

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

}

}

void Game::drawEnemy()

{

for(int i=0; i8; i++)

drawFrame(enemy[i].position[0], enemy[i].position[1], '-', '|');

}

void Game::drawEnemyToNull()

{

for(int i=0; i8; i++)

{

drawFrame(enemy[i].position[0], enemy[i].position[1], ' ', ' ');

}

}

void Game::Pause()

{

SetPos(61,2);

cout"               ";

SetPos(61,2);

cout"暂停中...";

char c=_getch();

while(c!='p')

c=_getch();

SetPos(61,2);

cout"         ";

}

void Game::planeMove(char x)

{

if(x == 'a')

if(position[1].X != 1)

for(int i=0; i=9; i++)

position[i].X -= 2;

if(x == 's')

if(position[7].Y != 23)

for(int i=0; i=9; i++)

position[i].Y += 1;

if(x == 'd')

if(position[4].X != 47)

for(int i=0; i=9; i++)

position[i].X += 2;

if(x == 'w')

if(position[5].Y != 3)

for(int i=0; i=9; i++)

position[i].Y -= 1;

}

void Game::bulletMove()

{

for(int i=0; i10; i++)

{

if( bullet[i].Y != 30)

{

bullet[i].Y -= 1;

if( bullet[i].Y == 1 )

{

COORD pos={bullet[i].X, bullet[i].Y+1};

drawThisBulletToNull( pos );

bullet[i].Y=30;

}

}

}

}

void Game::enemyMove()

{

for(int i=0; i8; i++)

{

for(int j=0; j2; j++)

enemy[i].position[j].Y++;

if(24 == enemy[i].position[1].Y)

{

COORD a={1, 1};

COORD b={45, 3};

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

}

}

}

void Game::judgePlane()

{

for(int i = 0; i  8; i++)

for(int j=0; j9; j++)

if(judgeCoordInFrame(enemy[i], position[j]))

{

SetPos(62, 1);

cout"坠毁";

drawFrame(enemy[i], '+', '+');

Sleep(1000);

GameOver();

break;

}

}

void Game::drawThisBulletToNull( COORD c)

{

SetPos(c);

cout" ";

}

void Game::drawThisEnemyToNull( Frame f )

{

drawFrame(f, ' ', ' ');

}

void Game::judgeEnemy()

{

for(int i = 0; i  8; i++)

for(int j = 0; j  10; j++)

if( judgeCoordInFrame(enemy[i], bullet[j]) )

{

score += 5;

drawThisEnemyToNull( enemy[i] );

COORD a={1, 1};

COORD b={45, 3};

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

drawThisBulletToNull( bullet[j] );

bullet[j].Y = 30;

}

}

void Game::Shoot()

{

for(int i=0; i10; i++)

if(bullet[i].Y == 30)

{

bullet[i].X = position[5].X;

bullet[i].Y = position[5].Y-1;

break;

}

}

void Game::printScore()

{

if(score == 120  flag_rank == 0)

{

rank -= 3;

flag_rank = 1;

}

else if( score == 360  flag_rank == 1)

{

rank -= 5;

flag_rank = 2;

}

else if( score == 480  flag_rank == 2)

{

rank -= 5;

flag_rank = 3;

}

int x=rank/5;

SetPos(60, 6);

coutscore;

if( rank!=rankf )

{

SetPos(60, 7);

if( x == 5)

title="初级飞行员";

else if( x == 4)

title="中级飞行员";

else if( x == 3)

title="高级飞行员";

else if( x == 2 )

title="王牌飞行员";

couttitle;

}

rankf = rank;

}

void Game::Playing()

{

//HANDLE MFUN;

//MFUN= CreateThread(NULL, 0, MusicFun, NULL, 0, NULL); 

drawEnemy();

drawPlane();

int flag_bullet = 0;

int flag_enemy = 0;

while(1)

{

Sleep(8);

if(_kbhit())

{

char x = _getch();

if ('a' == x || 's' == x || 'd' == x || 'w' == x)

{

drawPlaneToNull();

planeMove(x);

drawPlane();

judgePlane();

}

else if ('p' == x)

Pause();

else if( 'k' == x)

Shoot();

else if( 'e' == x)

{

//CloseHandle(MFUN);

GameOver();

break;

}

}

/* 处理子弹 */

if( 0 == flag_bullet )

{

bulletMove();

drawBulletToNull();

drawBullet();

judgeEnemy();

}

flag_bullet++;

if( 5 == flag_bullet )

flag_bullet = 0;

/* 处理敌人 */

if( 0 == flag_enemy )

{

drawEnemyToNull();

enemyMove();

drawEnemy();

judgePlane();

}

flag_enemy++;

if( flag_enemy = rank )

flag_enemy = 0;

/* 输出得分 */

printScore();

}

}

void Game::GameOver()

{

system("cls");

COORD p1={28,9};

COORD p2={53,15};

drawFrame(p1, p2, '=', '|');

SetPos(36,12);

string str="Game Over!";

for(int i=0; istr.size(); i++)

{

Sleep(80);

coutstr[i];

}

Sleep(1000);

system("cls");

drawFrame(p1, p2, '=', '|');

SetPos(31, 11);

cout"击落敌机:"score/5" 架";

SetPos(31, 12);

cout"得分:"score;

SetPos(31, 13);

cout"获得称号:"title;

SetPos(30, 16);

Sleep(1000);

cout"继续? 是(y)| 否(n)";

as:

char x=_getch();

if (x == 'n')

exit(0);

else if (x == 'y')

{

system("cls");

Game game;

int a = drawMenu();

if(a == 2)

game.rank = 20;

system("cls");

drawPlaying();

game.Playing();

}

else goto as;

}

/*================== the main function ==================*/

int main()

{

//游戏准备

srand((int)time(0)); //随机种子

HideCursor(); //隐藏光标

Game game;

int a = drawMenu();

if(a == 2)

game.rank = 20;

system("cls");

drawPlaying();

game.Playing();

}

绝对可以运行,望采纳

如何为pygame的飞机大战增加一个分数排行榜?python

import pygame

from plane_sprites import*

from Background import BackGround

from Enemy import Enemy

from Hero import Hero

from time import sleep

from Bullet import Bullet

class Plane_main(object):

def __init__(self):

print('游戏初始化')

self.screen = pygame.display.set_mode(SCREEN_RECT.size)

self.clock = pygame.time.Clock()

self.__create_sprites()

pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)

pygame.time.set_timer(HERO_FIRE_EVENT, 500)

self.count = 0

self.score = 0

def __create_sprites(self):

# 背景组

self.back_group = pygame.sprite.Group()

bg1 = BackGround()

bg2 = BackGround(True)

pygame.mixer.init()

pygame.mixer.music.load("./Capo Productions - Journey 00_00_00-00_00_59.ogg")

pygame.mixer.music.play(-1)

self.back_group.add(bg1,bg2)

# 敌机组

self.enemy_group = pygame.sprite.Group()

#敌级销毁组

self.enemy1_down_group=pygame.sprite.Group()

# 英雄组

self.hero_group = pygame.sprite.Group()

self.hero = Hero()

self.hero_group.add(self.hero)

def start_game(self):

pygame.init()

print("开始游戏...")

# pygame.mixer.init()

# pygame.mixer.music.load("./Capo Productions - Journey 00_00_00-00_00_59.ogg")

# pygame.mixer.music.play(-1)

# gameIcon = pygame.image.load("./name.png")

# pygame.display.set_icon(gameIcon)

while True:

self.count+=1

# 1. 设置刷新帧率

self.clock.tick(10)

# 2. 事件监听

self.__event_handler()

# 3. 碰撞检测

self.__check_collide()

# 4. 更新精灵组

self.__update_sprites()

# 5. 更新屏幕显示

pygame.display.update()

def __event_handler(self):

"""事件监听"""

for event in pygame.event.get():

if event.type == pygame.QUIT:

Plane_main.__game_over()

elif event.type == CREATE_ENEMY_EVENT:

self.enemy_group.add(Enemy())

elif event.type == HERO_FIRE_EVENT:

self.hero.fire()

keys = pygame.key.get_pressed()

if keys[pygame.K_RIGHT]:

print('向右移动')

self.hero.speed = 5

self.hero.speed1 = 0

elif keys[pygame.K_LEFT]:

print('向左移动')

self.hero.speed = -5

self.hero.speed1 = 0

elif keys[pygame.K_UP]:

print('向上移动')

self.hero.speed1 = -5

self.hero.speed = 0

elif keys[pygame.K_DOWN]:

print('向下移动')

self.hero.speed1= 5

self.hero.speed = 0

else:

self.hero.speed = 0

self.hero.speed1 = 0

if event.type == HERO_FIRE_EVENT:

self.hero.fire()

print('发射子弹!!!!!')

def __check_collide(self):

"""碰撞检测"""

# 1. 子弹摧毁敌机

enemy_down = pygame.sprite.groupcollide(self.enemy_group, self.hero.bullets,True, True)

enemy1_down_group.add(enemy_down)

# 2. 敌机撞毁英雄

enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group, True)

# 判断列表时候有内容`

if len(enemies) 0:

sleep(3)

# # 让英雄牺牲

self.hero.kill()

# 结束游戏

Plane_main.__game_over()

def __update_sprites(self):

self.back_group.update()

self.back_group.draw(self.screen)

self.enemy_group.update()

self.enemy_group.draw(self.screen)

self.hero_group.update()

self.hero_group.draw(self.screen)

self.hero.bullets.update()

self.hero.bullets.draw(self.screen)

self.drawText(str(self.score),SCREEN_RECT.width - 50,50)

for enemy1_down in enemy1_down_group:

self.screen.blit(enemy1_down_surface[enemy1_down.down_index],enemy1_down.rect)

if self.count % 5 ==0:

enemy1_down.down_index += 1

if enemy1_down.down_index ==3:

# pygame.mixer.music.load("./baozha.ogg")

# pygame.mixer.music.play()

self.score+=5

enemy1_down_group.remove(enemy1_down)

print(self.score)

#更新精灵组

# for group in [self.back_group, self.enemy_group, self.hero_group,self.hero.bullets]:

# group.update()

# group.draw(self.screen)

@staticmethod

def __game_over():

"""游戏结束"""

print("游戏结束")

pygame.quit()

exit()

def drawText(self,text,posx,posy,textHeight=48,fontColor=(0,0,0),backgroundColor=(111,225,1)):

fontObj = pygame.font.Font('freesansbold.ttf',textHeight)

textSurfaceObj = fontObj.render(text,13,fontColor,backgroundColor)

textRectObj = textSurfaceObj.get_rect()

textRectObj.center = (posx,posy)

self.screen.blit(textSurfaceObj,textRectObj)

#判断当前执行的文件是否是主文件

#如果不是 则if下的代码不会执行

if __name__ == '__main__':

game = Plane_main()

game.start_game()

飞机大战的简单代码(java)

public class Plane{

public static void main(String[] args){

System.out.print("飞机正在起飞.请稍后......");

System.out.print("情况紧急,飞机没油了,请加油.......");

System.out.print("你的飞机坠落了,大战结束.......");

}

}

关于飞机大战游戏代码和飞机大战游戏代码java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/21795.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载