『壹』 用flash畫一個飛機,求編寫控制飛機的上下左右以及飛機發射子彈的腳本代碼
游戲開發應該使用Unity3d,不應該是Flash。
參考網上的Unity3d游戲開發教程,跟著學,跟著做,相信任何人都能成功的。
『貳』 FLASH as3製作飛機游戲教程
用純as3腳本實現飛機類型游戲
當游戲結束時點擊左上角xxms重新開始游戲,有2個類,一個是自己,一個是敵人。自己類取名Ball1.as:
package {//ball1類是玩家操作的ball
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
public class Ball1 extends Sprite {
public var lable:TextField=new TextField();
public var speed:int=60;
public var stage1:Stage;
public var ballList:Array=new Array();
public var timer:Timer=new Timer(1);
public function Ball1(stage1:Stage) {
this.stage1=stage1;
init();
}
public function init():void {//初始化
stage1.addChild(lable);
graphics.lineStyle(1,0);
graphics.drawCircle(0,0,10);
x=stage1.stageWidth/2;
y=stage1.stageHeight/2;
stage1.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
stage1.addEventListener(Event.ENTER_FRAME,enterFrameHandler2);
timer.start();
timer.addEventListener(TimerEvent.TIMER, timerHandler);
}
public function timerHandler(e:TimerEvent):void{
lable.text=""+e.target.currentCount+"ms";
}
public function mouseDownHandler(e:Event):void {
stage1.addEventListener(Event.ENTER_FRAME,enterFrameHandler1);
stage1.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
}
public function mouseUpHandler(e:Event):void {
stage1.removeEventListener(Event.ENTER_FRAME,enterFrameHandler1);
stage1.removeEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
}
public function enterFrameHandler1(e:Event) {//控制ball的運動
var speedX:int=speed*(stage1.mouseX-x)/Math.sqrt((stage1.mouseY-y)*(stage1.mouseY-y)+(stage1.mouseX-x)*(stage1.mouseX-x));
var speedY:int=speed*(stage1.mouseY-y)/Math.sqrt((stage1.mouseY-y)*(stage1.mouseY-y)+(stage1.mouseX-x)*(stage1.mouseX-x));
var x1:int;
var y1:int;
if (Math.abs(speedX)<Math.abs(stage1.mouseX-x)) {
x1=x+speedX;
} else {
x1=stage1.mouseX;
}
if (Math.abs(speedY)<Math.abs(stage1.mouseY-y)) {
y1=y+speedY;
} else {
y1=stage1.mouseY;
}
if (x1<0) {
x=0;
} else if (x1>stage.stageWidth) {
x=stage.stageWidth;
} else {
x=x1;
}
if (y1<0) {
y=0;
} else if (y1>stage.stageHeight) {
y=stage.stageHeight;
} else {
y=y1;
}
}
public function enterFrameHandler2(e:Event):void {//判斷游戲是否結束
for (var i:int; i<ballList.length; i++) {
if (Math.sqrt((x-ballList.x)*(x-ballList.x)+(y-ballList.y)*(y-ballList.y))<15) {
timer.reset();
for (var j:int; j<ballList.length; j++) {
ballList[j].stopRun();
}
lable.addEventListener(MouseEvent.CLICK,clickHandler);
break;
}
}
}
public function clickHandler(e:MouseEvent):void {//控制游戲開始
for (var j:int; j<ballList.length; j++) {
ballList[j].initXy();
ballList[j].startRun();
}
lable.text="";
x=stage1.stageWidth/2;
y=stage1.stageHeight/2;
timer.start();
lable.removeEventListener(MouseEvent.CLICK,clickHandler);
}
}
}
敵人類Ball2.as:
package {//ball2類,可以用作敵人的子彈
import flash.display.*;
import flash.events.*;
public class Ball2 extends Sprite {
public var ball1:Sprite;
public var speed:int=30;
public var speedX:int=0;
public var speedY:int=0;
public function Ball2(ball1:Sprite) {
this.ball1=ball1;
init();
initXy();
startRun();
}
public function init():void {//初始化
graphics.lineStyle(1,0);
graphics.drawCircle(0,0,5);
}
public function enterFrameHandler(e:Event){//控制子彈的運動
if(Math.random()<0.1){
var d:int=Math.sqrt((ball1.x-x)*(ball1.x-x)+(ball1.y-y)*(ball1.y-y));
if(d==0){d=1};
speedX=speed*(ball1.x-x)/d;
speedY=speed*(ball1.y-y)/d;
}
x+=speedX;
y+=speedY;
}
public function startRun(){
this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
public function stopRun(){
this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
public function initXy():void {//初始化子彈開始的位置
var xy:Number=Math.random();
if (xy<0.25) {
x=xy*550*4;
y=-10;
} else if (xy<0.5) {
x=560;
y=(xy-0.25)*400*4;
} else if (xy<0.75) {
x=(xy-0.5)*550*4;
y=410;
} else {
x=-10;
y=(xy-0.75)*400*4;
}
}
}
}
然後用一個fla文件把2個類初始化:
import flash.text.*;
import flash.net.*;
var ball:Ball1=new Ball1(stage);//定義ball1
var ballList:Array=new Array();//定義balllist數組
for (var i:int=0; i<20; i++) {//實例化balllist
ballList.push(new Ball2(ball));
addChild(ballList);
ball.ballList=ballList;
}
addChild(ball);
var lable:TextField=new TextField();
lable.text="sliz";
lable.x=530;
lable.y=380;
addChild(lable);
lable.addEventListener( MouseEvent.CLICK , clickHandler );
function clickHandler( event:MouseEvent ):void {
navigateToURL( new URLRequest ("http://space.flash8.net/space/?534614" ) );
}
//復制了兩份,你一份我一份,我也在學
『叄』 如何使用源碼熊製作飛機大戰
您好,飛機大戰是一個比較簡單的游戲。
進入源碼熊編程平台後,為我們的飛機大戰游戲選擇一個太空背景,一個飛機造型,一個炮彈造型,一個敵人造型。
先為我們的飛機設定代碼,當小旗子被點擊後,重復執行把x坐標移動到滑鼠位置,y坐標固定在屏幕底部,這樣我們的飛機就可以跟隨我們的滑鼠移動了。
現在為我們的炮彈設定軌跡,當小旗子被點擊後,移動到飛機的位置,並重復執行將y坐標增加50,如果碰觸到舞台邊緣,那麼移動到飛機的位置。現在我們點擊小旗子,就可以控制飛機不停發射炮彈了。
最後為敵方怪物設定規則,當小旗子被點擊後,移動到屏幕頂部的固定位置,並重復執行如果碰觸到舞台邊緣,那麼移動到屏幕頂部的固定位置,如果碰觸到炮彈,那麼隱藏,如果碰觸到飛機,那麼停止所有腳本。這樣如果我們炮彈打到怪物,怪物就會消失,如果怪物碰到我們的飛機,則游戲結束。
現在一個簡單的飛機大戰小游戲就製作好啦!
『肆』 一個簡單的小游戲--打飛機。求一些方法。我會點C++,用java也行。
這個貌似沒什麼難度。。。我自己寫了一個
打磚塊
的東西。。和這個差不多了。。
發你QQ
里邊
,你看看。。呵呵。。。、期待交流!
QQ:279794658
『伍』 飛機的C語言程序代碼
我有坦克的
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENTH 7
#define WIDTH 155
#define SLEEP_TIME 30000
#define ENTER_NUM 20
char fun_ascii[LENTH][WIDTH] = {
" | ",
" _\\--__|_ ",
" II=======OOOOO[/ *02 ___| ",
" ____\\______|/-----.",
" /____________________|",
" \\@@@@@@@@@@@@@@@@@@@/ ",
" ~~~~~~~~~~~~~~~~~~~ "
};
int g_shoot_pos;
int g_shoot_pos_static;
void display_ascii(void);
void print_enter(void);
void move_ascii(void)
{
int i, j;
for (i = 0; i < LENTH; i++) {
for (j = 0; j < WIDTH; j++) {
if (fun_ascii[i][j] != ' ') {
fun_ascii[i][j - 1] = fun_ascii[i][j];
fun_ascii[i][j] = ' ';
}
}
}
}
void shoot_init(void)
{
int i, j;
for (j = 0; j < WIDTH; j++) {
if (fun_ascii[2][j] != ' ')
break;
}
--j;
g_shoot_pos_static = g_shoot_pos = j;
}
void shoot_begin(void)
{
fun_ascii[2][g_shoot_pos] = 'O';
system("clear");
print_enter();
display_ascii();
fun_ascii[2][g_shoot_pos] = ' ';
}
void shoot_ascii(void)
{
int i;
i = WIDTH / 2 - 1;
while (i > 0 && g_shoot_pos > 0) {
shoot_begin();
g_shoot_pos--;
usleep(SLEEP_TIME);
i--;
}
}
void do_shoot_ascii(void)
{
int i = 3;
shoot_init();
while (i > 0) {
shoot_ascii();
g_shoot_pos = g_shoot_pos_static;
i--;
}
}
void display_ascii(void)
{
int i, j;
for (i = 0; i < LENTH; i++) {
for (j = 0; j < WIDTH; j++)
printf("%c", fun_ascii[i][j]);
printf("\n");
}
}
void print_enter(void)
{
int i;
for (i = 0; i < ENTER_NUM; i++)
printf("\n");
}
int main(void)
{
int i = WIDTH;
while (i > 0) {
if (i == (WIDTH / 2)) {
do_shoot_ascii();
i--;
continue;
}
system("clear");
print_enter();
move_ascii();
display_ascii();
i--;
usleep(SLEEP_TIME);
}
return 0;
}
『陸』 C語言代碼求解釋,飛機小游戲
前兩層相當於掃描整個畫布。第三層相當於便利所有的敵機,判斷位置是否和子彈位置相同。
『柒』 scratch怎麼做飛機大戰
scratch怎麼做飛機大戰?今天我們就來編寫一個好玩的游戲,想必大家都玩過QQ游戲里的雷電,或者手機游戲里的雷霆戰機或者全民飛機大戰...沒錯,今天我們要做的游戲就是——飛機大戰!
我們的游戲規則是:利用鍵盤的左右鍵控制飛機的左右移動,子彈會不斷地從飛機中發射出來,子彈碰到敵軍飛機便爆炸,我們的飛機一旦碰到敵軍飛機游戲便結束;下面就跟著我一起做游戲吧!
第一步:創建背景和角色
第二步:利用左右鍵控制飛機左右移動
相信跟著我學到現在,這一步對大家來說相當簡單了,我們的邏輯是,如果按下左移鍵,那麼面向左邊移動10步,如果按下右移鍵,那麼面向右邊移動10步
第三步:現在我們讓飛機發射子彈,在子彈的腳本中進行編寫,由於子彈是從飛機中發射的,所以我們要讓子彈移到飛機的地方,不斷地發射自己,也就是不斷地克隆自己,然後向上移動,也就是增加Y坐標,直到碰到上邊緣,便刪除克隆體。
第四步:做完飛機發射子彈的功能,下面便是如果子彈碰到敵機,那麼實現子彈爆炸的功能,在這里我們的子彈有12種造型:
如果子彈克隆體碰到敵機,那麼便完成子彈的11個造型,最後刪除克隆體。
第五步:現在我們要讓敵機從上朝下運動,同樣運用到了克隆,當我們點擊開始時,讓敵機在隨機地時間里克隆自己,在這里我們用到了重復執行計時器/10次。
小朋友們想想這段代碼代表什麼意思呢?
聰明的小朋友一定看出來了,這段代碼其實是在增加我們的游戲難度,當計時器的值越大,克隆的敵機就越多。
第六步:當敵機作為克隆體啟動時,讓其移動到隨機位置向下運動,當運動到下邊緣便刪除克隆體,那麼隨機位置是改變的X坐標還是Y坐標呢?當然是X坐標啦,向下運動便是讓Y坐標減少
第七步:最後增加游戲的判斷條件,如果敵機碰到子彈,那麼敵機消失;如果敵機碰到飛機,那麼游戲結束,切換GANE OVER背景。
做到這里我們的游戲就完美地完成了,這里大家可以拓展一下,給游戲增加一個記分的功能,統計小朋友一共摧毀了多少架敵機,比比誰摧毀的敵軍最多~
『捌』 怎樣用java語言編寫一個飛機游戲
這么專業的東西我不太會,雖然我過去也學過
建議你到比較專業一點的BBS走走
比如「程序員之家」等等
(這里的人多數都是復制答案的。。。)
『玖』 請教:怎麼做炸飛機游戲(c/c++工具)給出具體解決思路和代碼實現!有重謝!!!
直接用二維數組,記錄田字格。值0為空、1為有飛機、2為飛機被炸、3為炸空
1、初始化,讀取飛機數,隨機置1
2、根據輸入的坐標,直接將該坐標從0->3或1->2,然後做其他邏輯處理