如何在C#用c编写的小游戏戏中加入声音

如何使用Createjs来编写HTML5游戏(五)PreloadJS和SoundJS - 博客频道 - CSDN.NET
失业矿工的博客
我是名矿工,曾经是,后来国有变成私有,领导变成老板,老板掏空企业,企业玩完,矿工失业。
分类:Html5/Createjs
CreateJS最后两个部分,PreloadJS用来加载并统一管理你游戏中用到资源,图片,json文件等等,而SoundJS用来播放声音,两者的用法都非常的简单而且固定。
首先是SoundJS,顾名思义播放声音,使用时只需要先
createjs.Sound.registerSound(&assets/sound.mp3&, &soundname&);
&使用时调用:
createjs.Sound.play(&soundname&);
最后是PreloadJS,使用PreloadJS导入文件首先建立一个LoadQueue,然后即可使用它来载入单个文件,或者载入一个文件列表
var queue = new createjs.LoadQueue(false);//本地开发使用false即可
queue.installPlugin(createjs.Sound);//如果载入声音,必须先注册createjs.Sound
queue.on(&complete&, handleComplete, this);//载入完成后调用
queue.loadFile({id:&sound&, src:&sound.mp3&});//载入单个文件
//载入一个文件列表
queue.loadManifest([
{id: &myImage1&, src:&Image1.jpg&},
{id: &myImage2&, src:&Image2.jpg&}
{id: &myImage3&, src:&Image3.jpg&}
{id: &myImage4&, src:&Image4.jpg&}
function handleComplete() {
createjs.Sound.play(&sound&);
var image = queue.getResult(&myImage1&);
var bitmap = new createjs.Bitmap(image);
你可以把游戏中用到的所有资源,先编辑到一个manifest列表当中,可以是图片,json,css,js等等,最后使用loadManifest(manifest)导入。
=============================================================================================================================
补充部分:
一.使用Createjs直接操作页面DOM
首先在页面上添加一个div,id设置为test
&div id=&test& style=&...&&&/div&
var rect = new createjs.DOMElement(&test&);
即可获取到DOM。
二.hitTest碰撞检测
hitTest用来检测某物体是否与某特点发生碰撞,是则返回结果为true
1.全局点坐标判断,例如当前鼠标的位置坐标是否与stage中的一个图形Shape发生碰撞
var stage, circle,
function init(){
stage = new createjs.Stage(document.getElementById('game'));
createjs.Ticker.addEventListener(&tick&, handleTick);
createjs.Ticker.setFPS(60);
circle = new createjs.Shape();
circle.graphics.beginFill(&red&).dc(100,100,50);
stage.addChild(circle);
function handleTick(event){
circle.alpha = 0.2;
if (circle.hitTest(stage.mouseX, stage.mouseY)) {//直接使用circle的hitTest碰撞检测方法
circle.alpha = 1; }
stage.update();
通过测试可以发现,如果鼠标指针在圆形的区域内,则使圆变为不透明状态。
2.把全局坐标转化为本地坐标
var stage,
function init() {
stage = new createjs.Stage(&game&);
holder = stage.addChild(new createjs.Container());
holder.x = holder.y = 150;
for (var i=0; i&25; i++) {
var shape = new createjs.Shape();
shape.graphics.beginFill(createjs.Graphics.getHSL(Math.random()*360,100,50)).drawCircle(0,0,30);
shape.x = Math.random()*300-150;
shape.y = Math.random()*300-150;
holder.addChild(shape);
createjs.Ticker.on(&tick&, tick);
function tick(event) {
holder.rotation += 3;
var l = holder.getNumChildren();
for (var i=0; i&l; i++) {
var child = holder.getChildAt(i);
child.alpha = 0.1;
var pt = child.globalToLocal(stage.mouseX, stage.mouseY);//先使用元素的globalToLocal做坐标的转换
console.log(pt.x, pt.y);
if (stage.mouseInBounds && child.hitTest(pt.x, pt.y)) { child.alpha = 1; }//碰撞判断,使用转换后的本地坐标
stage.update(event);
3.LocalTOLocal
如果想判断页面中的两个元素是否碰撞呢?在这里只能判断一个元素中的某点,是否与另外一个元素发生碰撞,首先使用LocalToLocal做坐标转换
首先绘制两个图形元素
现在让蓝色球以黑色方形为轴转动,判断蓝色的小球是否与红色圆心发生碰撞
var stage, arm,
function init() {
stage = new createjs.Stage(&game&);
//红色目标
target = stage.addChild(new createjs.Shape());
target.graphics.beginFill(&red&).drawCircle(0,0,45)
.beginFill(&white&).drawCircle(0,0,30)
.beginFill(&red&).drawCircle(0,0,15);
target.x = 100;
target.y = 180;
arm = stage.addChild(new createjs.Shape());
arm.graphics.beginFill(&black&).drawRect(-2,-2,100,4)//黑色方形
.beginFill(&blue&).drawCircle(100,0,8);//蓝色球
arm.x = 180;
arm.y = 100;
createjs.Ticker.on(&tick&, tick);
function tick(event) {
arm.rotation += 5;
target.alpha = 0.2;
var pt = arm.localToLocal(100,0,target);//碰撞检测前,先把arm图形中的某点的坐标跟目标target做一个转化,这里是(100,0),也就是蓝球中心
if (target.hitTest(pt.x, pt.y)) { target.alpha = 1; }//使用转化后的坐标进行检测即可判断两个物体是否相交。
stage.update(event);

排名:千里之外
(1)(8)(2)编游戏的基本_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
编游戏的基本
上传于||暂无简介
你可能喜欢 C#简单游戏外挂制作_计算机软件及应用_IT/计算机_专业资料。C#简单游戏外挂制作tutyutC#简单游戏外挂制作(以 Warcraft Ⅲ为例)
23:13:14 来源: 作者...  C#游戏编程_IT/计算机_专业资料。C#游戏编程的资料很少,手头有的,就分享出来,...如果代码比较多, 找起来还是比较麻烦, 虽然开发环境有搜索功能。 为了方便扩充...  3D游戏编程入门(C#)_计算机软件及应用_IT/计算机_专业资料。今日推荐 78...C#游戏开发秘籍 450页 免费 游戏编程入门 32页 免费 C#编写3D游戏框架示例 13...  基于VC#.NET 的 贪吃蛇游戏的 开发与设计 姓名:*锦超 学号:*** 班级:软件***班 指导教师:程铭 完成日期:2011 年 6 月 24 日星期五 基于 VC#.NET 的...  unity3d游戏开发之编写脚本(hello world)_计算机软件及应用_IT/计算机_专业资料。...今天学了最基础的打印“hello world” 首先,创建 C#脚本(Assets-create-C# ...  基于C#连连看游戏开发_计算机软件及应用_IT/计算机_专业资料。基于C#连连看游戏的开发毕业设计(论文)题目:基于 C#的连连看游戏开发 系 别 信息工程系 电子信息工程 ...  核心内容: C#语言基础教程,Unity 初级教程,Unity 中级教程,Unity 高级教程、游戏 开发专业教程、项目实践。 适合人群: 对 C#/javascript 或 C/C++/java 有一定...  C#编程 [“贪吃蛇”小游戏] 一、项目内容及要求 编程实现一个“贪吃蛇”小游戏,具体要求如下: 1)程序启动后,蛇身默认向右移动,直到用户按下方向键改变运动方向。...  C#打字游戏代码(初学者易懂)_IT/计算机_专业资料。C#实训时的打字游戏代码,...C语言开发打字游戏 2页 免费
C#多线程打字游戏代码 2页 2下载券
纯c语言...PC游戏(c,c++,c#,java) :
音频长度(秒)
文件大小(K)
单声道(12)
比特率(kbps)
采样率(KHZ)
<span class="trans-popover" data-content="英文(原文):Music中文(翻译):音乐">译
鄂ICP备号-12
本站素材均来自于网友分享,仅用于学习交流使用,版权归原作者/公司所有
提问和建议贴吧:
侵权举报投诉建议-站长邮箱:C# 游戏开发中使用 Dictionary 实现消息分发
我的图书馆
C# 游戏开发中使用 Dictionary 实现消息分发
在C#实际开发中的实现消息分发实现部分代码:
注 :&IMessageHandler 是一个接口,有OnMessage 方法
1、// 消息处理器字典
private Dictionary&EMMSG_MODULEID, IMessageHandler& m_MessageHandlerDic = new Dictionary&EMMSG_MODULEID, IMessageHandler&();
2、// 注册需要接受消息的模块
public bool RegisterMessageHandler(EMMSG_MODULEID moduleId, IMessageHandler handler)
if (m_MessageHandlerDic.ContainsKey(moduleId))
TRACE.ErrorLn("NetManager::RegisterMessageHandler 重复注册IMessageHandler,moduleId = " + moduleId.ToString());
m_MessageHandlerDic.Add(moduleId, handler);
3、// 实现消息分发 运行指定的方法
if (m_MessageHandlerDic.ContainsKey(moduleID))
//派发消息给注册模块
IMessageHandler handler = m_MessageHandlerDic[moduleID];
if (handler != null)
handler.OnMessage(head, packetIn);
发表评论:
馆藏&20721
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&}

我要回帖

更多关于 用c语言编写小游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信