Но в реальности сложнее.
Нужны не простые примеры, а наипростейшие. Впрочем, хорошо, хоть те есть, которые есть.
К большинству компонентов для работы с регионами примеров вообще нет, а открывается вкладка с информацией, которая итак перед глазами. Для парней со светлой головой это не проблема, но что делать нам - безнадежным нубам, ради которых и создавался HiAsm изначально?
В общем, HiAsm завораживает и восхищает, но отсутствие простых примеров и некоторая усложненность работы с компонентами вводят в ступор иной раз. Все это гонит на форум, где "живут" умные люди, на поклон. Так что, уж не обессудьте, я опять с глупыми вопросами.
Вот я сделал простейший пример столкновений двух регионов:
Add(MainForm,2953706,399,308)
{
Width=1112
link(onCreate,2289073:doEvent1,[])
}
Add(Image,14216663,665,112)
{
@Hint=#8:Регион 1|
Left=600
Top=115
Width=100
Height=100
Color=-16777213
Point(Handle)
Point(onMove)
link(onClick,13591175:doMove,[(703,118)(703,152)(663,152)(663,188)])
link(onMove,9006010:In,[])
AddHint(-76,-36,60,13,@Hint)
}
Add(Image,4575564,847,112)
{
@Hint=#8:Регион 2|
Left=780
Top=110
Width=100
Height=100
Color=-16777200
Point(Handle)
Point(onMove)
link(onClick,2059129:doMove,[(885,118)(885,153)(847,153)(847,188)])
link(onMove,10392956:In,[])
AddHint(51,-34,60,13,@Hint)
}
Add(MoveWindow,13591175,672,182)
{
link(Handle,17866:Var2,[])
}
Add(MoveWindow,2059129,854,182)
{
link(Handle,14537724:Var2,[])
}
Add(RGN_Collision,3328721,756,476)
{
link(onTrue,13869669:doEvent1,[])
link(onFalse,2635980:doEvent1,[(819,489)(819,524)])
link(Region1,12778802:Result,[(762,387)(689,384)(580,384)])
link(Region2,14725249:Result,[(769,386)(972,386)])
}
Add(GetDataEx,17866,672,161)
{
link(Data,14216663:Handle,[])
}
Add(GetDataEx,14537724,854,161)
{
link(Data,4575564:Handle,[])
}
Add(LED,6811877,1064,462)
{
Left=820
Top=32
}
Add(Label,12647955,1106,462)
{
Left=734
Top=36
Width=76
Height=17
Caption="Столкновение"
}
Add(LED,11595338,1064,504)
{
Left=818
Top=64
}
Add(Label,3946369,1106,504)
{
Left=704
Top=68
Width=96
Height=17
Caption="Столкновения нет"
}
Add(RGN_OutlinePicture,2456481,497,266)
{
@Hint=#20:Контур для региона 1|
Picture=[ZIP2688000078DAED9D3D68535118868FE0E0E4E0E4240E22E2E028AEBAB8A89320B8896EAEE224945068038142A564A943B13450A8D0221D5A2C144BA11602A5422143B1432D040A9152299642CC5B7A21FE24B937F79CF39D9F37F02C1D6EEE79DFE5A4DFC339F71E5E2FAAD3CFED16375ABC68F1A4C53975F5F4EF3F86D53F9F9999A7AA5CBE451C005DECEC7C5603038A3800BA68369BAA5279C43C844107E802341ADFD4E0E005E62204B24707491F6069E90DB31102D9B777018E8F7FAA52E932F3B10C3247F67FF7013636DE3323CB20F3FF7591303E7E873959025977EB02ECEE7E5185C279E66518648CAC7BF501F0BB8499990519A7E9021C1ED6B9FF35BCBF45C669FB002B2BC3CCCE10C8364B17E0E4E4971A19B9C2FC34834C916DD63EC0D6D60766A81964DA4F170913137799A32690659E2E40BDFE95FB5F4DFB5B6499B70F303FFF9299E60419EAE8021C1D35D4D0D045E6DA27C80E19EAEA03ACADBD65B67D82EC74769130367693F966049999E8026C6F7F62C6194166A6FA0053530F98734A9095C92E38DBCD378335C5C2C22B66DE036464A38B64FFCBD96EF719ACEEFD6D2FAAD577CCBE03C8C666170970EA98FF9F2013892E00DDC6CE8EA114D3D38FD9C319C842B20B7070F09DFBDFB3FD2DB290EE836E6367C7508AD8DDC66E8EA1149B9B9568FBC0DA5DEA2266B7318D6328C5DE5E35AAD92ED68A35BBDA07989D7D164D1F58ABCB5DC4E436F6E3184AB1BA5A0ABE0FACD1872E12B77174F45AB05D606DFD3A8652D46A1F83ED036BF3A98B84C9C9FBC1758135F9D845886EA34EC7508A90DC469D8EA114985B168B97BCEF026BB03D833545086EA329C7500A9FDD46938EA1143EBB8DA61D43297C741B6D388652F8E636DA740CA5585C7CED4D1F78D790BBF069B6EBE20C3666B751CA3194C265B751D231940267A9B8DA47DA735E42C3C5736BB29CF3121AAEB98D2E3986522C2F179CE903EF127317C96CD785FD2FDEC1B719AC295C38B726EF392FA121E936BAEC18C6E636FAE0184A3137F7DC7A1FF84E66DFD96DB4796E0DBECB17C73006B7D127C73074B7D147C73064B7D157C730C4D96EC8335853ECEFD78CEC7FF14C3C9B19BBE13686E01886E23686E4184AB1BE5ED6D6079EC54CDD701B43740C7D761B43750CA5C873275FFB5D7244D66D8CC131F4E9DC1A97CE7989DD6D8CC9319422CB9D7CBDEE9223F666BB9CC1DA751BBBFD6F2BCB5D72C4BCDB18B363E89ADB48C7D02DB7918EA1EC6CB7FD4EBE3C77C911FD6E231D4377F6BFDCDFBA756E8DEFE7BC24FC06928DCF1A]
link(onOutlinePicture,12778802:doSetRegion,[])
AddHint(-104,-37,124,13,@Hint)
}
Add(RGN_SetToWindow,12778802,574,266)
{
@Hint=#20:Применение региона 1|
link(Handle,17866:Var1,[(580,166)])
AddHint(-189,-60,132,13,@Hint)
}
Add(RGN_OutlinePicture,11924821,903,273)
{
@Hint=#20:Контур для региона 2|
Picture=[ZIP2688000078DAED9D3D68535118868FE0E0E4E0E4240E22E2E028AEBAB8A89320B8896EAEE224945068038142A564A943B13450A8D0221D5A2C144BA11602A5422143B1432D040A9152299642CC5B7A21FE24B937F79CF39D9F37F02C1D6EEE79DFE5A4DFC339F71E5E2FAAD3CFED16375ABC68F1A4C53975F5F4EF3F86D53F9F9999A7AA5CBE451C005DECEC7C5603038A3800BA68369BAA5279C43C844107E802341ADFD4E0E005E62204B24707491F6069E90DB31102D9B777018E8F7FAA52E932F3B10C3247F67FF7013636DE3323CB20F3FF7591303E7E873959025977EB02ECEE7E5185C279E66518648CAC7BF501F0BB8499990519A7E9021C1ED6B9FF35BCBF45C669FB002B2BC3CCCE10C8364B17E0E4E4971A19B9C2FC34834C916DD63EC0D6D60766A81964DA4F170913137799A32690659E2E40BDFE95FB5F4DFB5B6499B70F303FFF9299E60419EAE8021C1D35D4D0D045E6DA27C80E19EAEA03ACADBD65B67D82EC74769130367693F966049999E8026C6F7F62C6194166A6FA0053530F98734A9095C92E38DBCD378335C5C2C22B66DE036464A38B64FFCBD96EF719ACEEFD6D2FAAD577CCBE03C8C666170970EA98FF9F2013892E00DDC6CE8EA114D3D38FD9C319C842B20B7070F09DFBDFB3FD2DB290EE836E6367C7508AD8DDC66E8EA1149B9B9568FBC0DA5DEA2266B7318D6328C5DE5E35AAD92ED68A35BBDA07989D7D164D1F58ABCB5DC4E436F6E3184AB1BA5A0ABE0FACD1872E12B77174F45AB05D606DFD3A8652D46A1F83ED036BF3A98B84C9C9FBC1758135F9D845886EA34EC7508A90DC469D8EA114985B168B97BCEF026BB03D833545086EA329C7500A9FDD46938EA1143EBB8DA61D43297C741B6D388652F8E636DA740CA5585C7CED4D1F78D790BBF069B6EBE20C3666B751CA3194C265B751D231940267A9B8DA47DA735E42C3C5736BB29CF3121AAEB98D2E3986522C2F179CE903EF127317C96CD785FD2FDEC1B719AC295C38B726EF392FA121E936BAEC18C6E636FAE0184A3137F7DC7A1FF84E66DFD96DB4796E0DBECB17C73006B7D127C73074B7D147C73064B7D157C730C4D96EC8335853ECEFD78CEC7FF14C3C9B19BBE13686E01886E23686E4184AB1BE5ED6D6079EC54CDD701B43740C7D761B43750CA5C873275FFB5D7244D66D8CC131F4E9DC1A97CE7989DD6D8CC9319422CB9D7CBDEE9223F666BB9CC1DA751BBBFD6F2BCB5D72C4BCDB18B363E89ADB48C7D02DB7918EA1EC6CB7FD4EBE3C77C911FD6E231D4377F6BFDCDFBA756E8DEFE7BC24FC06928DCF1A]
link(onOutlinePicture,14725249:doSetRegion,[])
AddHint(89,-49,124,13,@Hint)
}
Add(RGN_SetToWindow,14725249,966,273)
{
@Hint=#20:Применение региона 2|
link(Handle,14537724:Var3,[(972,166)])
AddHint(26,-25,132,13,@Hint)
}
Add(Hub,2289073,469,322)
{
link(onEvent1,2456481:doOutlinePicture,[(489,328)(489,272)])
link(onEvent2,11924821:doOutlinePicture,[(894,335)(894,279)])
}
Add(Hub,15516328,623,476)
{
InCount=2
OutCount=3
link(onEvent1,3328721:doCollision,[])
link(onEvent2,12108743:In,[(654,489)(654,503)])
link(onEvent3,16740453:In,[(647,496)(647,524)])
}
Add(LineBreak,2665430,532,308)
{
link(Out,12778802:doGetRegion,[(568,314)(568,279)])
Primary=[12108743,133,189]
}
Add(LineBreak,11043970,924,315)
{
link(Out,14725249:doGetRegion,[(960,321)(960,286)])
Primary=[16740453,-259,203]
}
Add(LineBreak,4984068,574,462)
{
link(Out,15516328:doEvent1,[(610,468)(610,482)])
Primary=[9006010,133,-343]
}
Add(LineBreak,8403432,574,490)
{
link(Out,15516328:doEvent2,[(610,496)(610,489)])
Primary=[10392956,315,-371]
}
Add(Hub,13869669,973,476)
{
link(onEvent1,6811877:doOn,[])
link(onEvent2,11595338:doOff,[(1016,489)(1016,517)])
}
Add(Hub,2635980,973,518)
{
link(onEvent1,11595338:doOn,[])
link(onEvent2,6811877:doOff,[(1025,531)(1025,475)])
}
Add(InfoTip,1750162,938,427)
{
Info=#50:Просто некие события - реакция на столкновение или|14:его отсутствие|
Width=281
Height=123
}
Как теперь сделать, чтобы они сталкивались, чтобы не проходили друг через друга насквозь?