cocos2d for python 之hello world

来源:互联网 发布:淘宝返利是什么软件 编辑:程序博客网 时间:2024/06/05 19:17

转载请注时出处 http://blog.csdn.net/ssihc0 
 

现在大家都在搞cocos2d-x 搞的越来越先进,我的意见那个方便那个来,如果做pc 上的小游戏cocos2d python 版够用了

开发环境 linux

 下载  cocos2d-0.5.0   http://www.cocos2d.org

 

在写程序前先把cocos2d 里的cocos 目录复制到你自己的工程目录下


导入需要的库

import sysimport ossys.path.insert(0,os.path.join(os.path.dirname(__file__),'..'))path = os.path.join(os.path.dirname(__file__)) + "cocos"sys.path.insert(0,path)#import cocosfrom cocos.menu import *from cocos.director import *from cocos.scene import *from cocos.layer import *from cocos.text  import *

新建一个Layer 在个里面层里面显示一个hello world 的label

class Hello(Layer):    def __init__(self):super(Hello,self).__init__()        self.label=Label('Hello,World',font_name='Times New Roman',font_size=32,anchor_x='center',anchor_y='center') #这里是create lableself.label.position=320,240 # 位置self.add(self.label) #把label 添加到当前层里

新建一个menu层

class MainMenu1(Menu): #建menu需要基类为Menu    def __init__(self,hello):  #这里的hello 是为了操作Hello layer 添加的参数        super(MainMenu1,self).__init__()        self.hello=hello        self.menu_valign=BOTTOM        self.menu_halign=LEFT        items = [                (MenuItem('Item 2',self.on_quit)),        #menu  里的items 可以多加, on_quit 是点击菜单所以调用的方法                ]           self.create_menu(items,selected_effect=zoom_in(),unselected_effect=zoom_out())  #建一个menu 并且添加到当前menu 层    def on_quit(self):        self.hello.label.element.text="hi!!"   # 更改hello 里的 label 显示内容

 再建一个层 下面一样,不多说了

class MainMenu(Menu):    def __init__(self):        super(MainMenu,self).__init__()        self.menu_valign = BOTTOM        self.menu_halign = RIGHT        items =[                (MenuItem('Item 1',self.on_quit)),                ]        self.create_menu(items,selected_effect=zoom_in(),unselected_effect=zoom_out())    def on_quit(self):        pyglet.app.exit()


显示这个层layer

if __name__== "__main__":director.init()   #初始化导演hello_layer=Hello()main_scene=Scene(hello_layer) #把 hello layer 显示出来        main_scene.add(MainMenu()) # 一个层可以由多个层组层,,        main_scene.add(MainMenu1(hello_layer ))        director.run(main_scene) #请导演去显示这个层

其实这里可以把menu 全放在一个层,我是为了证实一下,多是否都可以响应S标操作

下面是运行效果

按了item2


下面是全部源码


import sysimport ossys.path.insert(0,os.path.join(os.path.dirname(__file__),'..'))path = os.path.join(os.path.dirname(__file__)) + "cocos"sys.path.insert(0,path)#import cocosfrom cocos.menu import *from cocos.director import *from cocos.scene import *from cocos.layer import *from cocos.text  import *class Hello(Layer):    def __init__(self):super(Hello,self).__init__()        self.label=Label('Hello,World',font_name='Times New Roman',font_size=32,anchor_x='center',anchor_y='center')self.label.position=320,240self.add(self.label)class MainMenu1(Menu):    def __init__(self,hello):        super(MainMenu1,self).__init__()        self.hello=hello        self.menu_valign=BOTTOM        self.menu_halign=LEFT        items = [                (MenuItem('Item 2',self.on_quit)),                ]        self.create_menu(items,selected_effect=zoom_in(),unselected_effect=zoom_out())    def on_quit(self):        self.hello.label.element.text="hi!!"class MainMenu(Menu):    def __init__(self):        super(MainMenu,self).__init__()        self.menu_valign = BOTTOM        self.menu_halign = RIGHT        items =[                (MenuItem('Item 1',self.on_quit)),                ]        self.create_menu(items,selected_effect=zoom_in(),unselected_effect=zoom_out())    def on_quit(self):        pyglet.app.exit()if __name__== "__main__":director.init()hello_layer=Hello()main_scene=Scene(hello_layer)        main_scene.add(MainMenu())        main_scene.add(MainMenu1(hello_layer ))        director.run(main_scene)