`
hereson2
  • 浏览: 461811 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

贪吃蛇V1.0

阅读更多

 


 

贪吃蛇游戏开发详解

注意以下问题:

1.蛇移动算法。

蛇所有节点存放到数组。每次移动的时候。把节点的坐标设为其前面节点的坐标。最后在把头的坐标往前移动。坐标一直在往前移。

2.随机生成食物时,在蛇蛇身上时候,要重新生成(递归调用)。

3.把游戏区域分成若干个网格,蛇移动距离为网格单元大小,食物生成在网格中。

点击此试玩游戏(csdn服务器太垃圾。多刷新几次)

点击下载源代码

 代码如小:

一:游戏开始

 

package com.lux
...{
    import flash.display.
*;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import fl.controls.
*;    
 
    
public class GameStart extends MovieClip
    
...
        
public static var gamestart:MovieClip ;
        
private var _score:Number=0
         
        
//=====游戏所用时间
        private var time:Number ;
        
        
public function GameStart()
        
...{     
            super();  
            gamestart 
= this ; 
            play_btn.addEventListener(MouseEvent.CLICK,playGame); 
        }
  
          
        
public function playGame(e:MouseEvent):void...
           
this.gotoAndStop("two_tag");   
        }
 
        
public function replayGame(e:MouseEvent):void...{
             score_mc.score_txt.text 
= "0" ; 
             timer_mc.min_mc.text 
="00" ;
             timer_mc.sec_mc.text 
="00" ;
             
this.gotoAndStop("two_tag");    
        }

        
/**//**   
        * 每吃到食物,增加游戏积分   
        
*/
 
        
public function addScore(_score:Number)...{
            
this._score+=_score ;  
            score_mc.score_txt.text 
= this._score.toString();  
        }

              
        
public function getScore():Number...{
            
return this._score ; 
        }

         
//        public function timerStop():void{
//            timer_mc.remove(); 
//        }
//        
  
        

    }

}

 

二:蛇移动的管理

package com.lux
...{
    
import de.polygonal.ds.NullIterator;
    
    
import flash.display.MovieClip;
    
import flash.events.Event;
    
import flash.events.KeyboardEvent;
    
import flash.events.TimerEvent;
    
import flash.filters.BevelFilter;
    
import flash.ui.Keyboard;
    
import flash.utils.Timer;

    
public class DaShe extends MovieClip ...
        
       
//蛇节点数组 
        private var a:Array ;
        
//方向 
        private var up:uint =    1 ;
        
private var down:uint =  2 ;
        
private var left:uint =  3 ;
        
private var right:uint = 4 ;
               
        
//====保存随机生成的蛇  
        private var _newShe:XiaoShe ;  
               
        
//====方向 
        private var _dir:uint ;  
        
private var timer:Timer ;   
        
        
private var _score:Number=0 ;
    
        
public function DaShe() ...{       
            
super();    
            
this._dir = this.right ; 
            a 
= new Array();
            
//蛇初始化为两条小蛇的长度。               
            var head:XiaoShe = new XiaoShe(30,30);          
            a.push(head);       
            
this.addChild(head);  
              
            var head1:XiaoShe 
= new XiaoShe(head.x-head.width,head.y);
            a.push(head1);      
            
this.addChild(head1);       
            
                 
        }
        
         
        
public function start():void...
             timer 
= new Timer(100);
             timer.addEventListener(TimerEvent.TIMER,running);
             timer.start();  
                
            
//===注册方向控制                  
            this.stage.addEventListener(KeyboardEvent.KEY_DOWN,direction);
             
            
//===随机生成新蛇 
            this.initFood();   
                 
        }
                     
              
        
private function running(e:Event):void...{                                          
            
for(var i:uint=a.length-1;i>0;i--)...
                a[i].x 
=a[i-1].x;    
                a[i].y 
=a[i-1].y;  
            }
    
 
            
switch(_dir)...
                
case this.up:
                     a[
0].y-=this._SPEED;
                     
break;
                
case this.left:
                     a[
0].x-=this._SPEED;
                     
break;         
                
case this.down:
                     a[
0].y+=this._SPEED; 
                     
break;       
                
case this.right:   
                     a[
0].x+=this._SPEED ;                   
            }
 
            
//==========碰到食物 
            if(isEat())...
                eatFood();      
                 
                
                
//增加积分
               
// this.addScore();  
               GameStart.gamestart.addScore(1);
            }
 
            
if(isDead())...{
                
this.gameOver() ; 
            }
           
                  
        }
 
//         
//        private function addScore():void{
//            this._score++;         
//            score_mc.score_txt.text = this._score.toString();
//        }
        
        
/** *//**
        * 蛇头是否碰到墙壁 。 
        * 碰上:ture 否则:false 
        
*/
 
        
private function isDead():Boolean 
分享到:
评论

相关推荐

    贪吃蛇-v1.0.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码

    贪吃蛇-v1.0.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码贪吃蛇-v1.0.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码贪吃蛇-v1.0.zipscratch2.0 3.0编程项目源文件源码经典游戏案例...

    C#版贪吃蛇 v1.0

    一、更新记录 1、更新日期:2014-07-14 12:00:00 2、更新内容: 修复贪吃蛇不能统计积分bug 贪吃蛇游戏的编制 项目描述 运行环境:vs 2010 技术特点:普通C# 游戏描述: C#版贪吃蛇,操作说明

    scratch3源码贪吃蛇-v1.0

    scratch3源码贪吃蛇-v1.0本资源系百度网盘分享地址

    少儿scratch编程项目源代码文件案例素材-贪吃蛇-v1.0.zip

    本项目以"少儿scratch编程项目源代码文件案例素材-贪吃蛇-v1.0.zip"为例,深入探讨Scratch编程中的基本概念、技巧以及如何通过源代码实现经典游戏——贪吃蛇。 一、Scratch基础知识 Scratch采用积木块式的编程界面...

    贪吃蛇游戏V1.0源码_贪吃蛇游戏源代码

    1、玩家使用方向键或手势滑动操控一条长长的蛇不断吞苹果,同时蛇身随着吞下的苹果不断长,当蛇头撞到蛇身或障壁时游戏结束。 2、玩家可选择地图、设置...3、提供玩家排行榜,显示前三名分数(贪吃蛇吃掉苹果的数量)

    汉丁贪吃蛇_v1.0下载

    图形化,C++完成,需要打开Caps Lock,然后按A,S,D,W控制小蛇方向

    贪吃蛇程序

    总的来说,这个"贪吃蛇V1.0"程序展示了如何利用MFC库来开发一个具有图形界面和用户交互的Windows游戏。通过这个游戏,开发者可以深入理解和掌握MFC的基本用法,以及如何结合面向对象编程来设计和实现一个复杂的游戏...

    C#版贪吃蛇snake_v1.0.zip

    C#版本的贪吃蛇,纯源码。学习可用! 网上整理来的 希望大家能学到一些

    snake_succeed-v1.0.rar_Succeed_单片机 贪吃蛇_嵌入式游戏_嵌入式贪吃蛇_游戏

    在"snake_succeed-v1.0.rar"这个压缩包中,包含了"snake_succeed-v1.0"的源代码和可能的文档资料。源代码可能是用C语言或汇编语言编写的,实现了上述的技术要点。开发者可以借此学习到如何在实际项目中应用单片机...

    控制台贪吃蛇小游戏V1.0

    主要功能:随机食物、自动爬行、分数、重新开始、排行榜等。 利用最基础的C语言知识,主要有一维数组、二维数组,函数等。以及运用windows.h、conio.h特殊库,用于美化控制台以及提高用户体验。

    scratch编程项目源代码文件案例素材-贪吃蛇-v1.0.zip

    在这个"scratch编程项目源代码文件案例素材-贪吃蛇-v1.0.zip"压缩包中,我们找到了一个使用Scratch实现的经典游戏——贪吃蛇的源代码,版本号为v1.0。这个项目非常适合初学者,特别是对少儿趣味编程感兴趣的用户,...

    贪吃蛇小游戏C++

    因为贪吃蛇属于V1.0测试版,所以会有一些BUG,如有BUG,欢迎高手指导!

    C#贪吃蛇 含源码

    版本号:v1.0.0.1 设计说明: 主要包括三大模块:ArrayListMap, DelegateUI, CommandEvents 配置说明: 地图尺寸配置文件:namespace ADI.TCS.KeyupCommand.ArrayListMap.DefaultArrayMap Button大小配置: ...

    Snake-v1.0-:我的第一个J2SE游戏

    Snake-v1.0-My first game made by J2SE自学Java一个月啦,受网上打飞机课程的启发,花费一整天时间尝试编写了贪吃蛇游戏,这也是我人生中第一个独立做出来的游戏!当然,还有很多问题存在,比如代码比较乱,游戏...

    原生js网页版贪吃蛇游戏代码

    5. **贪吃蛇V2.0版本界面优化.png**:这是一个PNG图像文件,可能展示了游戏界面的优化设计,包括UI改进、颜色调整或者新增的功能。这些优化可能基于用户反馈或开发者对游戏体验的提升。 6. **images**:这个文件夹...

    C语言贪吃蛇

    5. **文件组织**:项目中的"完美节约V1.0"很可能是程序的源代码文件或编译后的可执行文件。在C语言项目中,源代码通常由多个.c文件组成,每个文件负责不同的功能模块,比如主函数(main.c)、游戏逻辑(game.c)、...

    贪吃蛇游戏开发代码 JAVA

    在`snake_v1.0`这个版本中,开发者已经实现了上述功能,并且代码完整可以直接运行。这意味着包含了完整的类结构、事件处理逻辑、图形绘制方法等。为了更好地理解和学习这个游戏,可以通过阅读源代码、调试和修改来...

    贪吃蛇小游戏

    游戏分为两个版本:v1.0和v2.0,分别代表了开发的不同阶段和功能改进。 首先,我们来详细了解一下Java编程语言。Java是一种跨平台的、面向对象的编程语言,由Sun Microsystems公司于1995年推出。它的设计目标是“一...

    javascript 贪吃蛇(详细注释版)

    贪吃蛇 Snake v1.0 body{ } table{ border-collapse: collapse; border:solid #333 1px; } td{ height: 10px; width: 10px; font-size: 0px; } .filled{ background-color:blue; } /************...

Global site tag (gtag.js) - Google Analytics