小编Ara*_*yan的帖子

如何使多个web2py应用程序使用相同的layout.html?

我有三个应用程序,但我希望它们使用相同的layout.html和css.有没有办法实现这个目标?

编辑:

我将静态文件夹和layout.html等放在web2py根目录下的/ common /中.

这是我在模型中所做的:

import os
global web2py_path
web2py_path = os.environ.get('web2py_path', os.getcwd())
session.layout_path = web2py_path + '/common/layout.html'
print 'session.layout_path = ' + session.layout_path
Run Code Online (Sandbox Code Playgroud)

然后在视图中:

{{extend session.layout_path}}
Run Code Online (Sandbox Code Playgroud)

编辑2:

关于下面关于编译的评论,我决定将'common'文件夹放入'/ applications /'并将静态文件夹(css,images)放在'common'文件夹中,就像常规应用程序一样.然后我将layout.html放入'common'的根目录中.然后从另一个应用程序的视图,我使用:

{{extend '../../common/layout.html'}}
Run Code Online (Sandbox Code Playgroud)

其中引用了普通应用中的layout.html.然后,此layout.html文件使用以下内容引用"common"中静态文件夹中的文件:

{{=URL('common','static','css','style.css')}}
Run Code Online (Sandbox Code Playgroud)

就像你经常申请一样.

css python web2py

5
推荐指数
1
解决办法
937
查看次数

像CCSprite对象一样移动Box2d体

在cocos2d中,您可以轻松使用CCSprites并以各种方式移动它们.最重要的是 - 他们可以放松身心.对于大多数游戏来说,这对于平稳运动等是理

id action = [CCMoveTo actionWithDuration:dur position:pos];
move = [CCEaseInOut actionWithAction:action rate:2];
[self runAction: move];
Run Code Online (Sandbox Code Playgroud)

当移动box2d体时,附加到它的精灵会在box2d step()之后更新.移动精灵然后更新正文不是一个选项,因为它完全违背了物理框架的目的.

因此,我成功实现的另一个选项是通过将精灵本身视为一个力学实体来计算精灵的位移,速度和加速度.每次我在精灵上调用我的update()以便角色可以决定移动的位置等,我的超类也会存储先前的位置和速度.通过除以PTM_RATIO将它们存储为符合box2d的值.

在CCSprite的子类中,称为FMSprite:

-(CGPoint) displacement {
    return ccpSub(self.position, lastPos);
}

-(b2Vec2) getSpriteVelocity:(ccTime)dt {
    return b2Vec2(self.displacement.x / dt / PTM_RATIO,
                  self.displacement.y / dt / PTM_RATIO);
}

-(b2Vec2) getSpriteAccel:(ccTime)dt {
    b2Vec2 currVel = [self getSpriteVelocity:dt];
    if (dt == 0) {
        return b2Vec2(0,0);
    } else {    
        float accelX = (currVel.x - lastVel.x)/dt;
        float accelY = (currVel.y - lastVel.y)/dt;
        return b2Vec2(accelX, accelY);
    }
}

// This …
Run Code Online (Sandbox Code Playgroud)

box2d cocos2d-iphone box2d-iphone easing ccsprite

5
推荐指数
1
解决办法
2952
查看次数

OpenGL,GL_MODULATE和Multitexturing

我已经成功绘制了一个多纹理多边形,但不幸的是,只有整个纹理区域使用了重叠纹理的第一个像素.

这是纹理(GL_TEXTURE0和GL_TEXTURE1):

图标 覆盖

结果是这样的:

结果

仅使用顶部的红色像素.我试过在顶部只有一个1x1蓝色像素,我得到了与蓝色叠加相同的结果.

我的代码:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisableClientState(GL_COLOR_ARRAY);

const CGPoint vertices[] = {
    ccp(0,0),
    ccp(100,0),
    ccp(0,100),
    ccp(100,100),
};

// This will flip the image for us as well
const CGPoint coordinates[] = {
    ccp(0,1),
    ccp(1,1),
    ccp(0,0),
    ccp(1,0),
};

// Config multitextures
glClientActiveTexture(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, icon.name);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); 
glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
glEnable(GL_TEXTURE_2D);

glClientActiveTexture(GL_TEXTURE1);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, overlay.name);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
glEnable(GL_TEXTURE_2D);

GLubyte points = 4;

// Draw the square
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, …
Run Code Online (Sandbox Code Playgroud)

opengl-es texturing multitexturing

5
推荐指数
1
解决办法
5350
查看次数

ExtJS:在Ext.grid.property.Grid中显示模型

我想在属性网格中显示持久字段(在我的模型文件中定义的字段).

在此输入图像描述

属性网格:

Ext.define('ATCOM.view.InspectorProperties', {
    extend : 'Ext.grid.property.Grid',
    alias : 'widget.inspectorProperties',
    cls : 'property-grid',
    height : 150,
    listeners : {
        beforerender : function() {
            // Rename the first column
            var cols = this.getView().getHeaderCt().getGridColumns();
            cols[0].setText("Property");
        },
        beforeedit : function(e) {
            // Read-only
            return false;
        }
    },
    source : {} // Start with no items
});
Run Code Online (Sandbox Code Playgroud)

我在select事件(在控制器中)加载这样的项目,其中record是我们的模型对象,getInfo()是属性grid:

var source = {};
source.id = record.get('id');
source.start = record.get('start');
source.end = record.get('end');

this.getInfo().setSource(source);
Run Code Online (Sandbox Code Playgroud)

模型:

Ext.define('ATCOM.model.Shift', {
    extend : 'Ext.data.Model',
    fields : [ 'id', {
        name …
Run Code Online (Sandbox Code Playgroud)

extjs

5
推荐指数
1
解决办法
3063
查看次数

包含类缩写的类的命名约定

如果我用OOP语言命名一个新类,这是一个更好的约定:

  1. XMLWriter的
    • 最常见的
  2. 的XmlWriter
    • 更容易区分
  3. 的XmlWriter
    • 不再是首字母缩略词
  4. XML_Writer
    • 删除骆驼案的点

迂腐是的,但我很好奇谁使用了什么和为什么.

oop class naming-conventions

4
推荐指数
1
解决办法
1586
查看次数

Haskell案例的语法较短?

说我有这样的傻事:

data SomeType
    = Unary Int
    | Associative SomeType
    | Binary SomeType SomeType

some_func :: SomeType -> Int
some_func s =
    case s of
        Unary n -> n
        Associative s1 -> some_func s1
        Binary s1 s2 -> some_func s1 + some_func s2
Run Code Online (Sandbox Code Playgroud)

这里some_func将查看给定SomeType中的所有SomeTypes,并总结所有Unary数据构造函数的Ints.SomeType是递归数据类型.

在这些模式匹配中我正在重复some_func s1.有没有办法使用@,when,let或其他任何东西sf1 = some_func s1在两者中声明和使用它?像这样的东西:

data SomeType
    = Unary Int
    | Associative SomeType
    | Binary SomeType SomeType

some_func :: SomeType -> Int
some_func s =
    case s of
        Unary n -> n
        Associative …
Run Code Online (Sandbox Code Playgroud)

haskell

4
推荐指数
3
解决办法
249
查看次数

语法高亮/词法分析算法

语法高亮显示器使用的通用算法是什么?我在正则表达式中使用交替实现了一种简单的方法:

STRING_PATTERN | COMMENT_PATTERN | KEYWORD_PATTERNS

因为检测某些东西是字符串还是模式取决于哪个是第一个:

// This is a "comment"

"This is a // string"
Run Code Online (Sandbox Code Playgroud)

但是关键字会变得有点复杂.这种方法在我目前的实现中有效,但我不相信它是最佳的.

另一个问题是您突出显示的顺序.如果您在标识符/关键字之前突出显示数字,那么您可能会意外地突出显示关键字中的数字...

编辑:

我的插件现在在这里:http://wordpress.org/extend/plugins/crayon-syntax-highlighter/

algorithm syntax text highlighting lexical

3
推荐指数
1
解决办法
2419
查看次数

Objective-C构造函数中的必需参数

在尝试将我之前基于单件的全局控制器类转换为更多OOP友好依赖注入方法的过程中,该方法在需要时将所需方法从一个对象传递到另一个对象.我遇到了我的上一课在init期间使用全局对象的问题.

(id)init 
{
    self = [super init];
    if (self) 
    {
        [self setUpPhysicsWithWorld:FMPresenter.physics.world];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

FMPresenter.physics返回一个单独的物理对象.由于我的对象在没有Physics对象的情况下无法正确实例化,因此调用init无效.我看到过这个用过:

(id) init 
{
    NSAssert(NO, @"init not allowed");
    [self release];
    return nil; 
}

(id) initWithPhysics:(FMPhysics*)physics 
{
    self = [super init];
    if (self) {
        [self setUpPhysicsWithWorld:physics.world];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

这是在Objective-C中强制构造函数参数的首选方法吗?

constructor objective-c

3
推荐指数
1
解决办法
3596
查看次数

在OpenGL中旋转三角形

我正试图围绕它的中心点旋转一个三角形.我知道OpenGL围绕原点旋转所以我需要将中间点转换为原点,然后旋转并转换回来.我已经注释掉了最后一行,以确保它至少围绕原点的中心旋转.它不是.尽管有翻译,它似乎是围绕它的旧起源旋转...注意ccc4和ccp生成浮点数.这是我的代码:

ccColor4B colors[] = {
    ccc4(255, 0, 0, 255),
    ccc4(0, 255, 0, 255),
    ccc4(0, 0, 255, 255)
};

CGPoint vertices[] = {
    ccp(0,0),
    ccp(50,100),
    ccp(100,0),
};

CGPoint middle[] = {ccp(50,50)};
CGPoint origin[] = {ccp(0,0)};

// Rotate the triangle
glPushMatrix();
glTranslatef(-50, -50, 0);
glRotatef(45, 0, 0, 1.0);
// glTranslatef(50, 50, 0);

// Draw the triangle
glLineWidth(2);
glVertexPointer(2, GL_FLOAT, 0, vertices);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors);
glColor4ub(0, 0, 255, 255);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3);

// Revert rotation, we only want triangle to rotate 
glPopMatrix(); …
Run Code Online (Sandbox Code Playgroud)

opengl rotation

2
推荐指数
1
解决办法
1万
查看次数

实际使用C中的额外括号

我知道{}用于分隔函数,类和条件分支等实体,但它们还有其他用途吗?

#import <stdio.h>

int main(void) {
    {{{
        printf("main\n");
    }}}
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我发现它主要用于信息隐藏以及嵌套函数.从下面的答案看,它们似乎可以在调试期间用作标记,并在发布中删除,但这不应该得到认可.

c curly-braces

1
推荐指数
1
解决办法
882
查看次数

导出代数数据类型的显示

我有以下类型:

data Suit = Club | Diamond | Heart | Spade deriving Show
data Rank = R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | Jack | Queen | King | Ace deriving Show
data JokerColor = Red | Black deriving Show
data JCard = NormalCard Suit Rank | JokerCard JokerColor
Run Code Online (Sandbox Code Playgroud)

我怎样才能展示JCard?目前我明白了No instance for (Show JCard)

haskell types

0
推荐指数
1
解决办法
268
查看次数