欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

用源碼編輯器制作射擊小游戲(源碼編輯器怎么玩)

軟件開放2年前 (2023-02-15)1926

本篇文章給大家談?wù)動迷创a編輯器制作射擊小游戲,以及源碼編輯器怎么玩對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

用Unity 怎么制作3D第一人稱射擊游戲。

第一部分:簡介

這個教程中,我們詳細(xì)了解下如何制作一個簡單的第一人稱射擊游戲(FPS)。其中將介紹一些基本的3D游戲編程的概念和一些關(guān)于怎樣如游戲程序員般思考的技巧。

前提

這個教程假定你已經(jīng)熟悉軟件Unity基本操作,掌握了基本的腳本概念。

創(chuàng)建新工程

下載FPS_Tutorial.zip壓縮文件,解壓,在Unity中打開工程文件。

從Unity安裝目錄導(dǎo)入Standard Assets資源包。

導(dǎo)入工程后,你會在Unity工程面板中的“Standard Assets”文件夾下看見這些資源內(nèi)容。當(dāng)我們導(dǎo)入新資源時,最好安裝按照資源功能對其分組,例如:火箭、爆炸、音頻等。

設(shè)置游戲環(huán)境

導(dǎo)入資源后,你會注意到在工程面板中有許多文件夾。

工程面板中,從文件夾“Object/mainLevelMesh”中選擇“mainLevelMesh”。

在參數(shù)面板,F(xiàn)BXImporter選項(xiàng)中,你會發(fā)現(xiàn)“Generate Colliders”選項(xiàng),勾選此選項(xiàng)。如果不做這一步,游戲中玩家會穿越地面直接掉下深淵(實(shí)際是開啟“碰撞”,產(chǎn)生交互)

把“mainLevelMesh”拖放到場景中。

場景中不需要添加燈光,這關(guān)全部場景已經(jīng)全部應(yīng)用了燈光貼圖。整個場景對所有燈光進(jìn)行了燈光貼圖渲染,使用了“預(yù)烘焙陰影”。燈光貼圖對顯示效果有很大幫助,特別是復(fù)雜燈光環(huán)境。

下面可以在場景中添加一個角色了。

添加主要角色

下面在場景中增加一個可以操控的角色物體。Unity針對第一人稱射擊游戲預(yù)置了許多內(nèi)置的控制器,在工程面板Standard Assets-;Prefabs下。

添加第一人稱控制器,點(diǎn)擊工程面板Standard Assets旁邊的小三角,彈出資源列表。找到Prefabs文件夾,點(diǎn)擊小三角形,彈出資源列表。把“First person controller”拖到場景里。

這時場景中會出現(xiàn)一個代表玩家的圓柱體,三個大箭頭代表物體在3D空間中的位置(如果沒有看見箭頭,選擇物體,按“W”鍵),白色面代表物體當(dāng)前視角?,F(xiàn)在FPS控制器處于默認(rèn)視角位置,通過移動它可以改變游戲視野。把角色移動到游戲環(huán)境關(guān)卡地面上面的位置。

Main Camera現(xiàn)在已經(jīng)沒有用處了,可以刪掉了。

點(diǎn)擊“Play”鍵,現(xiàn)在應(yīng)該可以通過使用鼠標(biāo)和鍵盤在本關(guān)卡地形中四處移動了(光標(biāo)或者“W,A,S,D”)

現(xiàn)在我們創(chuàng)建了一個非常簡單的FSP,下面我們給角色添加武器。

增加武器

下面我們將給游戲角色一個類似榴彈的物體,可以在游戲中發(fā)射。要實(shí)現(xiàn)這個功能,需要創(chuàng)建一些腳本語言來在Unity中告知這個武器如何動作。

那么我們具體要實(shí)現(xiàn)什么呢?我們要使游戲角色能在攝像機(jī)的任意位置開火。但是,我們還是首先來思考一下游戲角色和武器。游戲角色游戲中是第一人稱的視角,所以攝像機(jī)的位置與眼睛平行。如果玩家使用武器射擊,武器應(yīng)該是在角色的手部位置開火而不是眼睛的位置。這樣我們就要增加一個“game object”(游戲物體)來代表榴彈發(fā)射器,同時把它放置在游戲角色手持武器時武器所處的位置。這樣就保證了開火的位置沒有問題。

創(chuàng)建武器發(fā)射器

首先,創(chuàng)建一個“game object”代表榴彈發(fā)射器。游戲物體是3D世界中的任一物體(角色、關(guān)卡、聲音),零件就是游戲物體的屬性。因此我們還需要對游戲物體添加零件:

從主菜單欄選擇GameObjectGreat Empty,并在層級面板中(Hierarchy)命名為“Launcher”。注意,空物體在場景中是看不見的,只是用它來作放置飛彈發(fā)射器。

現(xiàn)在在場景中把視野推近到FPS控制器,便于我們放置武器發(fā)射器。

層級面板中選擇FPS控制器,確保鼠標(biāo)處于場景視圖中,按“F”鍵。使窗口以當(dāng)前選擇的物體為中心。

層級面板中選擇發(fā)射器,主菜單欄選擇Game ObjectMove to view。注意發(fā)射器如何移動到FPS控制器附近的。然后使用手柄,把發(fā)射器移動到大概角色手部的位置。

注意:可以通過設(shè)置這個物體的位置來設(shè)定游戲角色是左撇子還是右撇子,不需要寫代碼。

使Unity窗口模式是“2by3”模式(windowLayouts2by3),點(diǎn)擊播放鍵(play)。確保層級面板中點(diǎn)選了發(fā)射器,四處移動角色,同時觀察場景窗口。你將發(fā)現(xiàn)發(fā)射器并沒有隨著角色一起運(yùn)動(現(xiàn)在再次點(diǎn)擊播放鍵停止運(yùn)行游戲)

下面來解決這個問題,層級面板中,把發(fā)射器拖放到FPS控制器下面的主攝像機(jī)上。彈出的對話框點(diǎn)擊“是”。再次運(yùn)行游戲,觀察場景窗口,發(fā)射器已經(jīng)和角色運(yùn)動一致了。這樣我們就把發(fā)射器與攝像機(jī)關(guān)聯(lián)起來了。

創(chuàng)建飛彈

下面我們來創(chuàng)建在玩家點(diǎn)擊開火鍵時能夠發(fā)射出來的飛彈。

我們先用一個簡單物體-球體-代替飛彈。Unity主菜單欄點(diǎn)擊AssetsCreat;Prefab創(chuàng)建一個預(yù)制(Prefab)物體,命名為“Missile”

創(chuàng)建一個球體(GameObjectCreate ObjectSphere)

層級面板中,拖放球體到飛彈預(yù)制物體上(Missile),這時預(yù)制物體圖標(biāo)會變化。你可以從層級面板中刪除球體。

技巧:游戲運(yùn)行中產(chǎn)生的任何游戲物體都應(yīng)該是預(yù)制物體(Prefab)。

編寫飛彈發(fā)射器腳本

FPS控制器是一個包含了幾個游戲物體和部件的預(yù)制物體。FPS控制器本身是一個只能沿Y軸旋轉(zhuǎn)的圓柱體,因此,如果我們直接把發(fā)射器腳本賦予FPS控制器的話,是實(shí)現(xiàn)不了上下開火的。所以我們把腳本賦予控制器中的能夠四周轉(zhuǎn)動的主攝像機(jī)。

下面我們來編寫第一個描述發(fā)射器行為的JavaScript代碼。

點(diǎn)擊AssetsGreateJavaScript,創(chuàng)建一個空的JavaScript文檔。一個名為“NewBehaviourScript”資源將會出現(xiàn)在工程面板中,把它更名為“MissileLauncher”

技巧:通過Unity;Preferences點(diǎn)擊External Script Editor,可以自定義外部腳本編輯器。

工程面板中創(chuàng)建一個“WeaponScripts”文件夾,放置我們所有的武器腳本。把MissileLauncher腳本和飛彈預(yù)制物體(Missile Prefab)拖到這個文件中。

我們來看看飛彈發(fā)射器的完整JavaScript腳本。

進(jìn)一步思考一下,我們到底想實(shí)現(xiàn)什么效果?我們要檢測玩家是否按了開火鍵,然后產(chǎn)生一枚飛彈,然后把它沿著玩家朝向的方向按照一定的速度發(fā)射出去。我們仔細(xì)的解剖一下腳本:

var projectile: Rigibody;

var speed=20;

function Update( )

{

這是腳本的開頭部分,定義了一些屬性,開啟了“Update”的功能

if(Input.GetButtonDown(“Fire1”))

首先我們要檢測玩家是否按了開火鍵,“開火1”映射的是鼠標(biāo)左鍵和當(dāng)前配置的鍵盤上的按鍵(可以通過主菜單欄的Editor;Project SettingsInput設(shè)定)

{

var instantiatedProjectile: Rigidbody=Instantiate(

projectile, transform.position,transform.rotation);

我們用變量來定義產(chǎn)生的物體。變量的類型是Rigibody(剛體),因?yàn)轱w彈是具有物理屬性的。

Unity中產(chǎn)生新物體使用的函數(shù)是Instantiate,它有三個參數(shù),分別是:產(chǎn)生的物體、產(chǎn)生物體的3D空間位置、物體的旋轉(zhuǎn)。它還有另一個語法結(jié)構(gòu),參照API手冊,這里我們只使用這種結(jié)構(gòu)。

第一個參數(shù),projectile,代表我們想創(chuàng)建的物體。那么到底發(fā)射什么物體?具體產(chǎn)生的物體是可以手動設(shè)定的。實(shí)現(xiàn)方法:把Projectile定義為函數(shù)的外部變量,這樣就可以在參數(shù)面板中顯示出來。發(fā)射的物體也可以通過代碼來創(chuàng)建,但如果你想使一個變量可調(diào)的話,還是用上面的方法。

第二個參數(shù),transform.position,使產(chǎn)生的物體與發(fā)射器的空間位置一致。為什么就是發(fā)射器呢?因?yàn)槿绻癸w彈產(chǎn)生的位置沒有問題,腳本就要關(guān)聯(lián)給發(fā)射器。(transform讀取的transform數(shù)據(jù)就是被賦予腳本的游戲物體transform數(shù)據(jù))

第三個參數(shù)transform.rotation,與第二個類似,只是它的值與發(fā)射器的旋轉(zhuǎn)值是一樣的。

代碼的下一部分使飛彈產(chǎn)生運(yùn)動。為了實(shí)現(xiàn)運(yùn)動,我們要賦予飛彈一個速度,但是在哪個方向上(X,Y,Z)產(chǎn)生速度呢?在場景中,點(diǎn)擊FPS控制器,出現(xiàn)運(yùn)動箭頭(如果沒有出現(xiàn),按“W”鍵),其中一個箭頭是紅色、一個是綠色、一個是藍(lán)色。紅色代表X軸,綠色代表Y軸,藍(lán)色代表Z軸。因?yàn)樗{(lán)色指向的方向,與玩家面朝的方向一致,所以我們要在Z軸上給飛彈一個速度。

(Velocity)速度是instantiatedProjectile的一個屬性。我們怎么知道的呢?因?yàn)閕nstantiatedProjectile是剛體的一種,如果我們看看API手冊,我們就會知道速度是剛體的屬性中的一種。同時也看看剛體的其它屬性。要設(shè)置速度,我們就必須在各個軸向上設(shè)定數(shù)值。但還有個小問題。3D空間中的物體一般使用兩種坐標(biāo)模型:本地坐標(biāo)系和世界坐標(biāo)系。在本地坐標(biāo)系中,物體的軸向只與物體本身有關(guān)。在世界坐標(biāo)系中,軸向是絕對的,例如:向上,對所有物體來講向上的方向都是一樣的。

Rigidbody.Vellocity剛體物體速度必須使用世界坐標(biāo)系。因此,定義速度時,需要把本地坐標(biāo)系中的Z軸(朝前的方向)向轉(zhuǎn)換成世界坐標(biāo)系中的相應(yīng)方向。可以用函數(shù)transform.TransformDirection,它有三個向量作為自變量。變量speed也應(yīng)該定義成外部變量,便于后面在編輯器中直接調(diào)節(jié)數(shù)值。

最后,我們要關(guān)閉飛彈與游戲角色之間的碰撞。如果不這樣做的話,飛彈產(chǎn)生的時候就可能與角色發(fā)生碰撞??梢栽贏PI手冊IgnoreCollision下查詢詳細(xì)信息。

MissileLauncher.js全部完整代碼如下:

把腳本MissileLauncher賦予FPS控制器中的發(fā)射器。在層級面板中點(diǎn)擊發(fā)射器,檢查一下參數(shù)面板下面是否顯示了MissileLauncher script。

先前創(chuàng)建的飛彈的預(yù)制物體還沒有與腳本中的變量projectile創(chuàng)建關(guān)聯(lián),我們需要在編輯器中創(chuàng)建一下。變量projectile只能與剛體關(guān)聯(lián),因此,首先我們要賦予飛彈一個Rigidbody。

工程面板中點(diǎn)擊飛彈,然后從主菜單欄選擇Components;PhysicsRigidbody。這樣將會給我們想開火發(fā)射的飛彈一個剛體屬性。我們必須確保想在游戲中發(fā)射的物體類型與腳本中外部變量要求的物體類型是同一類型的物體。

創(chuàng)建飛彈與腳本中變量projectile的鏈接。首先在層級面板中點(diǎn)擊發(fā)射器,然后把飛彈的預(yù)制物體從工程面板中拖拽放置在發(fā)射器參數(shù)面板中MissileLauncher script部分上。

運(yùn)行游戲的話,你會發(fā)現(xiàn)點(diǎn)擊開火鍵可以發(fā)出一個受重力影響的小球了。

飛彈爆炸

下面,當(dāng)飛彈與其他物體發(fā)生碰撞時,增加一個爆炸效果。要實(shí)現(xiàn)這個效果,我們要編寫一段新腳本賦予飛彈。

創(chuàng)建一個新腳本,命名為Projectile。拖放到工程面板的WeaponScripts文件夾下。

那么我們想要腳本Projectile實(shí)現(xiàn)什么樣的效果呢?我們要檢測飛彈是否發(fā)生碰撞,然后在碰撞點(diǎn)產(chǎn)生一個爆炸效果。代碼如下:

函數(shù)OnCollisionEnter內(nèi)的程序代碼的作用是計算被賦予腳本的物體是否與其他物體發(fā)生碰撞。

在函數(shù)OnCollisionEnter中我們主要是要實(shí)現(xiàn)在3D空間中飛彈發(fā)生碰撞的點(diǎn)產(chǎn)生一個新爆炸。那么在何處了碰撞的呢?函數(shù)OnCollisionEnter就有個記錄這個信息的功能。碰撞發(fā)生的點(diǎn)的信息儲存在變量ContactPoint中。

這里我們使用函數(shù)Instantiate來創(chuàng)建一個爆炸。我們已經(jīng)知道函數(shù)instatiate有三個參數(shù):(1)產(chǎn)生的物體(2)物體的3D空間位置

(3)物體的旋轉(zhuǎn)。

第一個參數(shù),后面我們將會賦給一個帶粒子系統(tǒng)的游戲物體。同時我們還想通過編輯器來實(shí)現(xiàn)這個功能,所以我們把變量設(shè)置為外部變量。

第二個參數(shù),爆炸產(chǎn)生的點(diǎn)的位置,就是碰撞發(fā)生的位置。

第三個參數(shù),爆炸旋轉(zhuǎn)的設(shè)置,需要解釋一下。我們需要爆炸體的Y軸方向與飛彈和其他物體發(fā)生碰撞的那個表面的法線方向一致。這就是說如果是墻面那么爆炸就面向外,如果是地板就朝上。那么實(shí)際上我們就是要使爆炸體在本地坐標(biāo)系的Y軸與飛彈與之碰撞的物體的表面法線方向(世界坐標(biāo)系)一致。

最后,我們要讓飛彈碰撞后就從游戲中消失,通過函數(shù)Destroy()實(shí)現(xiàn),它的參數(shù)是gameObject(gameObject代表被賦予這個腳本的物體)。

Projectile.js全部代碼如下:

把腳本賦予飛彈預(yù)制物體(Missile prefab)。

下面我們要創(chuàng)建飛彈發(fā)生碰撞時所產(chǎn)生爆炸的爆炸效果物體。

首先,創(chuàng)建一個新的預(yù)制物體(命名為Explosion)用來存放爆炸效果資源。

標(biāo)準(zhǔn)資源包中(standard asset)有個不錯的爆炸預(yù)制物體,粒子系統(tǒng)和燈光都設(shè)置好了。把這個爆炸預(yù)制物體(在Standard Assets/Particles/explosion中)拖放到層級面板。

調(diào)節(jié)這個爆炸效果的各個參數(shù)直到你覺得滿意,然后把它從層級面板中拖放到工程面板中的爆炸預(yù)制物體(Explosion Prefab)中。

現(xiàn)在把爆炸配置給飛彈:

點(diǎn)選飛彈預(yù)制物體(Missile Prefab),在參數(shù)面板Explosion變量欄,拖放工程面板中的爆炸到上面。

定義爆炸的行為

下面我們要再創(chuàng)建一個腳本來定義爆炸自身的特性。

創(chuàng)建一個新的腳本-Explosion,放在Weapons文件夾中,雙擊腳本進(jìn)行編輯。

腳本中另一個常用函數(shù)稱為Start()。當(dāng)它配置給的物體是在游戲中產(chǎn)生的時候,函數(shù)Start()中的代碼只被執(zhí)行一次。我們要實(shí)現(xiàn)的效果就是在一定時間后,在游戲中刪除爆炸。我們通過函數(shù)Destroy()的第二個參數(shù)實(shí)現(xiàn),它的作用是定義執(zhí)行刪除前的時間長度。

變量explosionTime設(shè)置成外部變量,方便調(diào)節(jié)。

新建腳本插入以上代碼時,要刪除函數(shù)Update()。

把腳本Explosion賦予給爆炸預(yù)制物體。

音效

目前的游戲世界太安靜了,讓我們給爆炸效果增加點(diǎn)音效。

首先,給爆炸預(yù)制(Prefab)添加一段音頻。

給爆炸添加音效前,我們首先要添加一個音源部件(Audio Source),在主菜單點(diǎn)擊Component—Audio—Audio Source。你會發(fā)現(xiàn)音源部件有一個Audio Clip的屬性。

把“RocketLauncherImpact”音效添加給爆炸預(yù)制體的AudioClip外部變量。Unity支持多種音頻格式。

運(yùn)行游戲,發(fā)射飛彈的時候就有聲音了!

添加圖形界面

下面我們來添加GUI,有點(diǎn)像頭部顯示設(shè)備(HUD)。我們要做的GUI非常簡單,就一個準(zhǔn)星。

添加一個準(zhǔn)星:

工程欄中創(chuàng)建一個GUI的文件夾。

創(chuàng)建一個新腳本,命名為“準(zhǔn)星”(Crosshair),拖到GUI文件夾。

Crosshair中寫入下面的腳本:

首先我們設(shè)定了兩個變量。第一個變量是定義我們將要用可選的方式來選擇圖形紋理。第二個變量定義了一個方形區(qū)間,它是圖形紋理在屏幕上的位置范圍。

在start( ) 中函數(shù)用來設(shè)定圖形紋理在屏幕上的位置。函數(shù)中,有四個參數(shù),用來定義方形區(qū)域的大小和位置。第一個參數(shù)定義了方形區(qū)域的左邊框,第二個是底邊框,第三和第四個參數(shù)定義了寬和高。

OnGUI( )函數(shù)中,使用GUI類程序來讓圖形顯示在屏幕上。DrawTexture( )函數(shù)的參數(shù)position和crosshairTexture將使準(zhǔn)星顯示在屏幕的中央位置。

保存腳本。

創(chuàng)建一個新的空物體,命名為“GUI”。

把腳本“Crosshair”賦予給GUI物體。

點(diǎn)選GUI物體,把在文件夾Texturelaim下的欲使用的圖形拖放到參數(shù)面板變量Crosshair Texture中。

運(yùn)行游戲,屏幕中就會有準(zhǔn)星顯示了。

物理特效:

現(xiàn)在,我們想要游戲中的物體效果越真實(shí)越好,這是通過添加物理特效實(shí)現(xiàn)的。在這一節(jié)中,我們將在環(huán)境中添加一些物體,他們能被飛彈擊中后有相應(yīng)的反應(yīng)。首先有幾個新概念要解釋下。

校正(Update)

先前,我們在函數(shù)Update()中寫入代碼,這樣可以在每一幀都執(zhí)行其中的代碼。其中有個例子是檢測玩家點(diǎn)擊開火鍵。幀速并不是一個固定值,它是根據(jù)場景復(fù)雜度等因素來定的。各幀之間的時間差會導(dǎo)致不穩(wěn)定的物體反應(yīng)。因此,如果想在場景中添加有物理反應(yīng)的物體(剛體等),代碼就應(yīng)該寫在函數(shù)FixedUpdate()中。Unity中deltaTime的值用來測定渲染兩個連續(xù)幀的所用時間。

一般而言,函數(shù)Update與FixedUpdate之間的區(qū)別如下:

Update()-其中的代碼通常用于角色行為、游戲邏輯等。這個函數(shù)中的deltaTime值并不是固定的。

FixedUpdate()-其中的代碼通常用于剛體物體(物理屬性的行為)。函數(shù)中deltaTime的值通常是固定的。

FixedUpdate函數(shù)被調(diào)用的頻率是主菜單中Edit-Project Settings-Time的FixedTimestep屬性確定的,當(dāng)然也是可以更改的。第二個屬性Time Scale是讀取每秒的幀速和相應(yīng)的倒數(shù)值。

技巧:定義FixedTimestep值時,要注意把握好一個平衡:值越小,物理效果越真實(shí)越好,但影響游戲運(yùn)行速度。應(yīng)該同時確保游戲運(yùn)行速度和物理效果的真實(shí)性。

最后說一下yield,它相當(dāng)于暫停當(dāng)前正在執(zhí)行的函數(shù)。

回到游戲,我們想實(shí)現(xiàn)的效果:

使玩家可以發(fā)射飛彈(已經(jīng)實(shí)現(xiàn)了)。

如果飛彈與其它剛體物體發(fā)生碰撞,檢測其范圍類是否有其它被賦予剛體屬性的物體。

對爆炸沖擊力范圍內(nèi)的每個剛體物體,均給予一個upwards方向上的力,使它們對飛彈產(chǎn)生反應(yīng)。

讓我們看看修改后的爆炸腳本(Explosion Javascript)

首先檢測下飛彈落點(diǎn)周圍是否有帶碰撞器的物體。函數(shù)Physics.OverlapSphere()有兩個參數(shù):3D位置和半徑值,然后返回一組檢測到的在半徑內(nèi)的碰撞器的數(shù)組。

一旦得到這些數(shù)組后,就會對每個對應(yīng)碰撞器的剛體物體一個在特定方向上的力。

然后我們在飛彈的炸點(diǎn)處,向上的方向增加一個力(ExplosionPower)。但是,爆炸效果是隨著距離而遞減的,作用力大小不能在整個半徑內(nèi)都一樣。圓周位置的剛體物體受到的作用力應(yīng)該比炸點(diǎn)中心處小。函數(shù)把這種效果也考慮在內(nèi)的。通過調(diào)節(jié)外部變量explosionPower和explosionRadius的值,可以較容易的得到想要的效果。

源碼編程器怎么玩其他小游戲的

1、首先啟動源碼編輯器,將原有的積木和角色全部刪除。

2、打開素材庫,將所需背景和角色增加進(jìn)來。

3、進(jìn)行排列好。

4、選中暫停這個角色,在舞臺中拖入下列積木

5、中開始按鈕角色,拖入下列積木即可。

用C++編寫的小游戲源代碼

五子棋的代碼:

#includeiostream

#includestdio.h

#includestdlib.h

#include time.h

using namespace std;

const int N=15;? ? ? ? ? ? ? ? ?//15*15的棋盤

const char ChessBoardflag = ' ';? ? ? ? ? //棋盤標(biāo)志

const char flag1='o';? ? ? ? ? ? ? //玩家1或電腦的棋子標(biāo)志

const char flag2='X';? ? ? ? ? ? ? //玩家2的棋子標(biāo)志

typedef struct Coordinate? ? ? ? ? //坐標(biāo)類

{?

int x;? ? ? ? ? ? ? ? ? ? ? ? ?//代表行

int y;? ? ? ? ? ? ? ? ? ? ? ? ?//代表列

}Coordinate;

class GoBang? ? ? ? ? ? ? ? ? ? //五子棋類

{

public:

GoBang()? ? ? ? ? ? ? ? //初始化

{

InitChessBoard();

}

void Play()? ? ? ? ? ? ? ?//下棋

{

Coordinate Pos1;? ? ? // 玩家1或電腦

Coordinate Pos2;? ? ? //玩家2

int n = 0;

while (1)

{

int mode = ChoiceMode();

while (1)

{

if (mode == 1)? ? ? ?//電腦vs玩家

{

ComputerChess(Pos1,flag1);? ? ?// 電腦下棋

if (GetVictory(Pos1, 0, flag1) == 1)? ? ?//0表示電腦,真表示獲勝

break;

PlayChess(Pos2, 2, flag2);? ? ?//玩家2下棋

if (GetVictory(Pos2, 2, flag2))? ? ?//2表示玩家2

break;

}

else? ? ? ? ? ? //玩家1vs玩家2

{

PlayChess(Pos1, 1, flag1);? ? ?// 玩家1下棋

if (GetVictory(Pos1, 1, flag1))? ? ? //1表示玩家1

break;

PlayChess(Pos2, 2, flag2);? ? ?//玩家2下棋

if (GetVictory(Pos2, 2, flag2))? //2表示玩家2

break;

}

}

cout "***再來一局***" endl;

cout "y or n :";

char c = 'y';

cin c;

if (c == 'n')

break;

}? ? ?

}

protected:

int ChoiceMode()? ? ? ? ? ?//選擇模式

{

int i = 0;

system("cls");? ? ? ? //系統(tǒng)調(diào)用,清屏

InitChessBoard();? ? ? ?//重新初始化棋盤

cout "***0、退出? 1、電腦vs玩家? 2、玩家vs玩家***" endl;

while (1)

{

cout "請選擇:";

cin i;

if (i == 0)? ? ? ? ?//選擇0退出

exit(1);

if (i == 1 || i == 2)

return i;

cout "輸入不合法" endl;

}

}

void InitChessBoard()? ? ? //初始化棋盤

{

for (int i = 0; i N + 1; ++i)? ?

{

for (int j = 0; j N + 1; ++j)

{

_ChessBoard[i][j] = ChessBoardflag;

}

}

}

void PrintChessBoard()? ? //打印棋盤,這個函數(shù)可以自己調(diào)整

{

system("cls");? ? ? ? ? ? ? ? //系統(tǒng)調(diào)用,清空屏幕

for (int i = 0; i N+1; ++i)

{

for (int j = 0; j N+1; ++j)

{

if (i == 0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//打印列數(shù)字

{

if (j!=0)

printf("%d? ", j);

else

printf("? ?");

}

else if (j == 0)? ? ? ? ? ? ? ? //打印行數(shù)字

printf("%2d ", i);

else

{

if (i N+1)

{

printf("%c |",_ChessBoard[i][j]);

}

}

}

cout endl;

cout "? ?";

for (int m = 0; m N; m++)

{

printf("--|");

}

cout endl;

}

}

void PlayChess(Coordinate pos, int player, int flag)? ? ? ?//玩家下棋

{

PrintChessBoard();? ? ? ? ?//打印棋盤

while (1)

{

printf("玩家%d輸入坐標(biāo):", player);

cin pos.x pos.y;

if (JudgeValue(pos) == 1)? ? ? ? ? //坐標(biāo)合法

break;

cout "坐標(biāo)不合法,重新輸入" endl;

}

_ChessBoard[pos.x][pos.y] = flag;

}

void ComputerChess(Coordinate pos, char flag)? ? ? ?//電腦下棋

{

PrintChessBoard();? ? ? ? ?//打印棋盤

int x = 0;

int y = 0;

while (1)

{

x = (rand() % N) + 1;? ? ? //產(chǎn)生1~N的隨機(jī)數(shù)

srand((unsigned int) time(NULL));

y = (rand() % N) + 1;? ? ?//產(chǎn)生1~N的隨機(jī)數(shù)

srand((unsigned int) time(NULL));

if (_ChessBoard[x][y] == ChessBoardflag)? ? ? //如果這個位置是空的,也就是沒有棋子

break;

}

pos.x = x;

pos.y = y;

_ChessBoard[pos.x][pos.y] = flag;

}

int JudgeValue(const Coordinate pos)? ? ? ?//判斷輸入坐標(biāo)是不是合法

{

if (pos.x 0 pos.x = Npos.y 0 pos.y = N)

{

if (_ChessBoard[pos.x][pos.y] == ChessBoardflag)

{

return 1;? ? //合法

}

}

return 0;? ? ? ? //非法

}

int JudgeVictory(Coordinate pos, char flag)? ? ? ? ? ?//判斷有沒有人勝負(fù)(底層判斷)

{

int begin = 0;

int end = 0;

int begin1 = 0;

int end1 = 0;

//判斷行是否滿足條件

(pos.y - 4) 0 ? begin = (pos.y - 4) : begin = 1;

(pos.y + 4) N ? end = N : end = (pos.y + 4);

for (int i = pos.x, j = begin; j + 4 = end; j++)

{

if (_ChessBoard[i][j] == flag_ChessBoard[i][j + 1] == flag

_ChessBoard[i][j + 2] == flag_ChessBoard[i][j + 3] == flag

_ChessBoard[i][j + 4] == flag)

return 1;

}

//判斷列是否滿足條件

(pos.x - 4) 0 ? begin = (pos.x - 4) : begin = 1;

(pos.x + 4) N ? end = N : end = (pos.x + 4);

for (int j = pos.y, i = begin; i + 4 = end; i++)

{

if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j] == flag

_ChessBoard[i + 2][j] == flag_ChessBoard[i + 3][j] == flag

_ChessBoard[i + 4][j] == flag)

return 1;

}

int len = 0;

//判斷主對角線是否滿足條件

pos.x pos.y ? len = pos.y - 1 : len = pos.x - 1;

if (len 4)

len = 4;

begin = pos.x - len;? ? ? ?//橫坐標(biāo)的起始位置

begin1 = pos.y - len;? ? ? //縱坐標(biāo)的起始位置

pos.x pos.y ? len = (N - pos.x) : len = (N - pos.y);

if (len4)

len = 4;

end = pos.x + len;? ? ? ?//橫坐標(biāo)的結(jié)束位置

end1 = pos.y + len;? ? ? //縱坐標(biāo)的結(jié)束位置

for (int i = begin, j = begin1; (i + 4 = end) (j + 4 = end1); ++i, ++j)

{

if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j + 1] == flag

_ChessBoard[i + 2][j + 2] == flag_ChessBoard[i + 3][j + 3] == flag

_ChessBoard[i + 4][j + 4] == flag)

return 1;

}

//判斷副對角線是否滿足條件

(pos.x - 1) (N - pos.y) ? len = (N - pos.y) : len = pos.x - 1;

if (len 4)

len = 4;

begin = pos.x - len;? ? ? ?//橫坐標(biāo)的起始位置

begin1 = pos.y + len;? ? ? //縱坐標(biāo)的起始位置

(N - pos.x) (pos.y - 1) ? len = (pos.y - 1) : len = (N - pos.x);

if (len4)

len = 4;

end = pos.x + len;? ? ? ?//橫坐標(biāo)的結(jié)束位置

end1 = pos.y - len;? ? ? //縱坐標(biāo)的結(jié)束位置

for (int i = begin, j = begin1; (i + 4 = end) (j - 4 = end1); ++i, --j)

{

if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j - 1] == flag

_ChessBoard[i + 2][j - 2] == flag_ChessBoard[i + 3][j - 3] == flag

_ChessBoard[i + 4][j - 4] == flag)

return 1;

}

for (int i = 1; i N + 1; ++i)? ? ? ? ? ?//棋盤有沒有下滿

{

for (int j =1; j N + 1; ++j)

{

if (_ChessBoard[i][j] == ChessBoardflag)

return 0;? ? ? ? ? ? ? ? ? ? ? //0表示棋盤沒滿

}

}

return -1;? ? ? //和棋

}

bool GetVictory(Coordinate pos, int player, int flag)? ?//對JudgeVictory的一層封裝,得到具體那個玩家獲勝

{

int n = JudgeVictory(pos, flag);? ?//判斷有沒有人獲勝

if (n != 0)? ? ? ? ? ? ? ? ? ? //有人獲勝,0表示沒有人獲勝

{

PrintChessBoard();

if (n == 1)? ? ? ? ? ? ? ? //有玩家贏棋

{

if (player == 0)? ? ?//0表示電腦獲勝,1表示玩家1,2表示玩家2

printf("***電腦獲勝***\n");

else

printf("***恭喜玩家%d獲勝***\n", player);

}

else

printf("***雙方和棋***\n");

return true;? ? ? //已經(jīng)有人獲勝

}

return false;? ?//沒有人獲勝

}

private:

char _ChessBoard[N+1][N+1];? ?

};

擴(kuò)展資料:

設(shè)計思路

1、進(jìn)行問題分析與設(shè)計,計劃實(shí)現(xiàn)的功能為,開局選擇人機(jī)或雙人對戰(zhàn),確定之后比賽開始。

2、比賽結(jié)束后初始化棋盤,詢問是否繼續(xù)比賽或退出,后續(xù)可加入復(fù)盤、悔棋等功能。

3、整個過程中,涉及到了棋子和棋盤兩種對象,同時要加上人機(jī)對弈時的AI對象,即涉及到三個對象。

如何使用construct2制作射擊小游戲

你可以使用官方的模塊(template)。選擇shooting games template來參考,他會給你一個簡單的游戲編程和畫面,過后可以自己修改。

跪求用C++語言編寫的小游戲的源代碼

像素射擊:int anim abc_fade_in 0x7f010001

int anim abc_fade_out 0x7f010002

int anim abc_grow_fade_in_from_bottom 0x7f010003

int anim abc_popup_enter 0x7f010004

int anim abc_popup_exit 0x7f010005

int anim abc_shrink_fade_out_from_bottom 0x7f010006

int anim abc_slide_in_bottom 0x7f010007

int anim abc_slide_in_top 0x7f010008

int anim abc_slide_out_bottom 0x7f010009

int anim abc_slide_out_top 0x7f01000a

int anim abc_tooltip_enter 0x7f01000b

int anim abc_tooltip_exit 0x7f01000c

int attr actionBarDivider 0x7f040001

int attr actionBarItemBackground 0x7f040002

int attr actionBarPopupTheme 0x7f040003

int attr actionBarSize 0x7f040004

int attr actionBarSplitStyle 0x7f040005

int attr actionBarStyle 0x7f040006

int attr actionBarTabBarStyle 0x7f040007

int attr actionBarTabStyle 0x7f040008

int attr actionBarTabTextStyle 0x7f040009

int attr actionBarTheme 0x7f04000a

int attr actionBarWidgetTheme 0x7f04000b

int attr actionButtonStyle 0x7f04000c

int attr actionDropDownStyle 0x7f04000d

int attr actionLayout 0x7f04000e

int attr actionMenuTextAppearance 0x7f04000f

int attr actionMenuTextColor 0x7f040010

int attr actionModeBackground 0x7f040011

int attr actionModeCloseButtonStyle 0x7f040012

int attr actionModeCloseDrawable 0x7f040013

int attr actionModeCopyDrawable 0x7f040014

int attr actionModeCutDrawable 0x7f040015

int attr actionModeFindDrawable 0x7f040016

int attr actionModePasteDrawable 0x7f040017

int attr actionModePopupWindowStyle 0x7f040018

int attr actionModeSelectAllDrawable 0x7f040019

int attr actionModeShareDrawable 0x7f04001a

int attr actionModeSplitBackground 0x7f04001b

int attr actionModeStyle 0x7f04001c

int attr actionModeWebSearchDrawable 0x7f04001d

int attr actionOverflowButtonStyle 0x7f04001e

int attr actionOverflowMenuStyle 0x7f04001f

int attr actionProviderClass 0x7f040020

int attr actionViewClass 0x7f040021

int attr activityChooserViewStyle 0x7f040022

int attr alertDialogButtonGroupStyle 0x7f040023

int attr alertDialogCenterButtons 0x7f040024

int attr alertDialogStyle 0x7f040025

int attr alertDialogTheme 0x7f040026

int attr allowStacking 0x7f040027

int attr alpha 0x7f040028

int attr alphabeticModifiers 0x7f040029

int attr arrowHeadLength 0x7f04002a

int attr arrowShaftLength 0x7f04002b

int attr autoCompleteTextViewStyle 0x7f04002c

int attr autoSizeMaxTextSize 0x7f04002d

int attr autoSizeMinTextSize 0x7f04002e

int attr autoSizePresetSizes 0x7f04002f

int attr autoSizeStepGranularity 0x7f040030

int attr autoSizeTextType 0x7f040031

int attr background 0x7f040032

int attr backgroundSplit 0x7f040033

int attr backgroundStacked 0x7f040034

int attr backgroundTint 0x7f040035

int attr backgroundTintMode 0x7f040036

int attr barLength 0x7f040037

int attr borderlessButtonStyle 0x7f040038

int attr buttonBarButtonStyle 0x7f040039

int attr buttonBarNegativeButtonStyle 0x7f04003a

int attr buttonBarNeutralButtonStyle 0x7f04003b

int attr buttonBarPositiveButtonStyle 0x7f04003c

int attr buttonBarStyle 0x7f04003d

int attr buttonGravity 0x7f04003e

int attr buttonIconDimen 0x7f04003f

int attr buttonPanelSideLayout 0x7f040040

int attr buttonStyle 0x7f040041

int attr buttonStyleSmall 0x7f040042

int attr buttonTint 0x7f040043

int attr buttonTintMode 0x7f040044

int attr checkboxStyle 0x7f040045

int attr checkedTextViewStyle 0x7f040046

int attr closeIcon 0x7f040047

int attr closeItemLayout 0x7f040048

int attr collapseContentDescription 0x7f040049

int attr collapseIcon 0x7f04004a

int attr color 0x7f04004b

int attr colorAccent 0x7f04004c

int attr colorBackgroundFloating 0x7f04004d

int attr colorButtonNormal 0x7f04004e

int attr colorControlActivated 0x7f04004f

int attr colorControlHighlight 0x7f040050

int attr colorControlNormal 0x7f040051

int attr colorError 0x7f040052

int attr colorPrimary 0x7f040053

int attr colorPrimaryDark 0x7f040054

int attr colorSwitchThumbNormal 0x7f040055

int attr commitIcon 0x7f040056

int attr contentDescription 0x7f040057

int attr contentInsetEnd 0x7f040058

int attr contentInsetEndWithActions 0x7f040059

int attr contentInsetLeft 0x7f04005a

int attr contentInsetRight 0x7f04005b

int attr contentInsetStart 0x7f04005c

int attr contentInsetStartWithNavigation 0x7f04005d

int attr controlBackground 0x7f04005e

int attr coordinatorLayoutStyle 0x7f04005f

int attr customNavigationLayout 0x7f040060

int attr defaultQueryHint 0x7f040061

int attr dialogCornerRadius 0x7f040062

int attr dialogPreferredPadding 0x7f040063

int attr dialogTheme 0x7f040064

int attr displayOptions 0x7f040065

int attr divider 0x7f040066

int attr dividerHorizontal 0x7f040067

int attr dividerPadding 0x7f040068

int attr dividerVertical 0x7f040069

int attr drawableSize 0x7f04006a

int attr drawerArrowStyle 0x7f04006b

int attr dropDownListViewStyle 0x7f04006c

int attr dropdownListPreferredItemHeight 0x7f04006d

int attr editTextBackground 0x7f04006e

int attr editTextColor 0x7f04006f

int attr editTextStyle 0x7f040070

int attr elevation 0x7f040071

int attr expandActivityOverflowButtonDrawable 0x7f040072

int attr firstBaselineToTopHeight 0x7f040073

int attr font 0x7f040074

int attr fontFamily 0x7f040075

int attr fontProviderAuthority 0x7f040076

int attr fontProviderCerts 0x7f040077

int attr fontProviderFetchStrategy 0x7f040078

int attr fontProviderFetchTimeout 0x7f040079

int attr fontProviderPackage 0x7f04007a

int attr fontProviderQuery 0x7f04007b

int attr fontStyle 0x7f04007c

int attr fontVariationSettings 0x7f04007d

int attr fontWeight 0x7f04007e

int attr gapBetweenBars 0x7f04007f

int attr goIcon 0x7f040080

int attr height 0x7f040081

int attr hideOnContentScroll 0x7f040082

int attr homeAsUpIndicator 0x7f040083

int attr homeLayout 0x7f040084

int attr icon 0x7f040085

int attr iconTint 0x7f040086

int attr iconTintMode 0x7f040087

int attr iconifiedByDefault 0x7f040088

int attr imageButtonStyle 0x7f040089

int attr indeterminateProgressStyle 0x7f04008a

int attr initialActivityCount 0x7f04008b

int attr isLightTheme 0x7f04008c

int attr itemPadding 0x7f04008d

int attr keylines 0x7f04008e

int attr lastBaselineToBottomHeight 0x7f04008f

int attr layout 0x7f040090

int attr layout_anchor 0x7f040091

int attr layout_anchorGravity 0x7f040092

int attr layout_behavior 0x7f040093

int attr layout_dodgeInsetEdges 0x7f040094

int attr layout_insetEdge 0x7f040095

int attr layout_keyline 0x7f040096

int attr lineHeight 0x7f040097

int attr listChoiceBackgroundIndicator 0x7f040098

int attr listDividerAlertDialog 0x7f040099

int attr listItemLayout 0x7f04009a

int attr listLayout 0x7f04009b

int attr listMenuViewStyle 0x7f04009c

int attr listPopupWindowStyle 0x7f04009d

int attr listPreferredItemHeight 0x7f04009e

int attr listPreferredItemHeightLarge 0x7f04009f

int attr listPreferredItemHeightSmall 0x7f0400a0

int attr listPreferredItemPaddingLeft 0x7f0400a1

int attr listPreferredItemPaddingRight 0x7f0400a2

int attr logo 0x7f0400a3

int attr logoDescription 0x7f0400a4

int attr maxButtonHeight 0x7f0400a5

int attr measureWithLargestChild 0x7f0400a6

int attr multiChoiceItemLayout 0x7f0400a7

int attr navigationContentDescription 0x7f0400a8

int attr navigationIcon 0x7f0400a9

int attr navigationMode 0x7f0400aa

int attr numericModifiers 0x7f0400ab

int attr overlapAnchor 0x7f0400ac

int attr paddingBottomNoButtons 0x7f0400ad

int attr paddingEnd 0x7f0400ae

int attr paddingStart 0x7f0400af

int attr paddingTopNoTitle 0x7f0400b0

int attr panelBackground 0x7f0400b1

int attr panelMenuListTheme 0x7f0400b2

int attr panelMenuListWidth 0x7f0400b3

int attr popupMenuStyle 0x7f0400b4

int attr popupTheme 0x7f0400b5

int attr popupWindowStyle 0x7f0400b6

int attr preserveIconSpacing 0x7f0400b7

int attr progressBarPadding 0x7f0400b8

int attr progressBarStyle 0x7f0400b9

int attr queryBackground 0x7f0400ba

int attr queryHint 0x7f0400bb

int attr radioButtonStyle 0x7f0400bc

int attr ratingBarStyle 0x7f0400bd

int attr ratingBarStyleIndicator 0x7f0400be

int attr ratingBarStyleSmall 0x7f0400bf

int attr searchHintIcon 0x7f0400c0

int attr searchIcon 0x7f0400c1

int attr searchViewStyle 0x7f0400c2

int attr seekBarStyle 0x7f0400c3

int attr selectableItemBackground 0x7f0400c4

int attr selectableItemBackgroundBorderless 0x7f0400c5

int attr showAsAction 0x7f0400c6

int attr showDividers 0x7f0400c7

int attr showText 0x7f0400c8

int attr showTitle 0x7f0400c9

int attr singleChoiceItemLayout 0x7f0400ca

int attr spinBars 0x7f0400cb

int attr spinnerDropDownItemStyle 0x7f0400cc

int attr spinnerStyle 0x7f0400cd

int attr splitTrack 0x7f0400ce

int attr srcCompat 0x7f0400cf

int attr state_above_anchor 0x7f0400d0

int attr statusBarBackground 0x7f0400d1

int attr subMenuArrow 0x7f0400d2

int attr submitBackground 0x7f0400d3

int attr subtitle 0x7f0400d4

int attr subtitleTextAppearance 0x7f0400d5

int attr subtitleTextColor 0x7f0400d6

int attr subtitleTextStyle 0x7f0400d7

int attr suggestionRowLayout 0x7f0400d8

int attr switchMinWidth 0x7f0400d9

int attr switchPadding 0x7f0400da

int attr switchStyle 0x7f0400db

int attr switchTextAppearance 0x7f0400dc

int attr textAllCaps 0x7f0400dd

int attr textAppearanceLargePopupMenu 0x7f0400de

int attr textAppearanceListItem 0x7f0400df

int attr textAppearanceListItemSecondary 0x7f0400e0

int attr textAppearanceListItemSmall 0x7f0400e1

int attr textAppearancePopupMenuHeader 0x7f0400e2

int attr textAppearanceSearchResultSubtitle 0x7f0400e3

int attr textAppearanceSearchResultTitle 0x7f0400e4

int attr textAppearanceSmallPopupMenu 0x7f0400e5

int attr textColorAlertDialogListItem 0x7f0400e6

int attr textColorSearchUrl 0x7f0400e7

int attr theme 0x7f0400e8

int attr thickness 0x7f0400e9

int attr thumbTextPadding 0x7f0400ea

int attr thumbTint 0x7f0400eb

int attr thumbTintMode 0x7f0400ec

int attr tickMark 0x7f0400ed

int attr tickMarkTint 0x7f0400ee

int attr tickMarkTintMode 0x7f0400ef

int attr tint 0x7f0400f0

int attr tintMode 0x7f0400f1

int attr title 0x7f0400f2

int attr titleMargin 0x7f0400f3

int attr titleMarginBottom 0x7f0400f4

int attr titleMarginEnd 0x7f0400f5

int attr titleMarginStart 0x7f0400f6

int attr titleMarginTop 0x7f0400f7

int attr titleMargins 0x7f0400f8

int attr titleTextAppearance 0x7f0400f9

int attr titleTextColor 0x7f

關(guān)于用源碼編輯器制作射擊小游戲和源碼編輯器怎么玩的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://www.landcheck.net/post/8503.html

“用源碼編輯器制作射擊小游戲(源碼編輯器怎么玩)” 的相關(guān)文章

軟件開發(fā)培訓(xùn)班(軟件開發(fā)培訓(xùn)班怎么樣)

軟件開發(fā)培訓(xùn)班(軟件開發(fā)培訓(xùn)班怎么樣)

本篇文章給大家談?wù)勡浖_發(fā)培訓(xùn)班,以及軟件開發(fā)培訓(xùn)班怎么樣對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、軟件開發(fā)培訓(xùn)機(jī)構(gòu)有哪些??? 2、軟件開發(fā)培訓(xùn)的費(fèi)用要多少 3、北京有哪些比較好的軟件開發(fā)培訓(xùn)學(xué)校 4、軟件開發(fā)培訓(xùn)班學(xué)完后能就業(yè)嗎? 5、軟件開發(fā)培...

軟件開發(fā)專業(yè)學(xué)校排名(軟件工程學(xué)校專業(yè)排名)

軟件開發(fā)專業(yè)學(xué)校排名(軟件工程學(xué)校專業(yè)排名)

今天給各位分享軟件開發(fā)專業(yè)學(xué)校排名的知識,其中也會對軟件工程學(xué)校專業(yè)排名進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、學(xué)軟件開發(fā)上什么大學(xué)好? 2、軟件工程大學(xué)專業(yè)排名 3、求全國按軟件工程專業(yè)排的大學(xué)排名,越詳細(xì)越好。 學(xué)軟件開發(fā)上什么大學(xué)好?...

手機(jī)怎么創(chuàng)建html文件(手機(jī)上如何編寫html)

手機(jī)怎么創(chuàng)建html文件(手機(jī)上如何編寫html)

本篇文章給大家談?wù)勈謾C(jī)怎么創(chuàng)建html文件,以及手機(jī)上如何編寫html對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、手機(jī)有沒有可能制作html格式文件 2、手機(jī)怎么打開html文件 3、html文件在安卓手機(jī)上怎么打開? 4、智能手機(jī)怎么創(chuàng)建.html文件...

魔域交易貓手游交易平臺(魔域端游賬號交易平臺)

魔域交易貓手游交易平臺(魔域端游賬號交易平臺)

今天給各位分享魔域交易貓手游交易平臺的知識,其中也會對魔域端游賬號交易平臺進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、交易貓平臺主要的作用是什么? 2、手游交易平臺哪個好 3、十大手游交易平臺排行榜 交易貓平臺主要的作用是什么? 交易貓主要是一...

php源碼安裝擴(kuò)展(有php源碼怎么安裝教程)

php源碼安裝擴(kuò)展(有php源碼怎么安裝教程)

今天給各位分享php源碼安裝擴(kuò)展的知識,其中也會對有php源碼怎么安裝教程進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、如何編譯安裝PHP擴(kuò)展 2、php 怎么安裝擴(kuò)展 3、如何安裝php的擴(kuò)展bcmath 如何編譯安裝PHP擴(kuò)展 一開始安裝PH...

精靈寶可夢所有精靈的圖片圖鑒(精靈寶可夢精靈圖鑒圖片大全)

精靈寶可夢所有精靈的圖片圖鑒(精靈寶可夢精靈圖鑒圖片大全)

今天給各位分享精靈寶可夢所有精靈的圖片圖鑒的知識,其中也會對精靈寶可夢精靈圖鑒圖片大全進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、誰能告訴我神奇寶貝精靈大全圖鑒,帶圖片、帶這個精靈的簡介、身高、體重及屬性,謝謝了 2、寵物小精靈圖鑒大全 3、寵物...